[INFO] cloning repository https://github.com/ConnorVoisey/lang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ConnorVoisey/lang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FConnorVoisey%2Flang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FConnorVoisey%2Flang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 81ad789138450aea8a51b0a68e282f9d8d262824
[INFO] testing ConnorVoisey/lang against 1.93.0 for beta-1.94-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FConnorVoisey%2Flang" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ConnorVoisey/lang
[INFO] finished tweaking git repo https://github.com/ConnorVoisey/lang
[INFO] tweaked toml for git repo https://github.com/ConnorVoisey/lang written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ConnorVoisey/lang on toolchain 1.93.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.93.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ConnorVoisey/lang already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.93.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serial_test_derive v3.2.0
[INFO] [stderr]   Downloaded serial_test v3.2.0
[INFO] [stderr]   Downloaded tracing-chrome v0.7.2
[INFO] [stderr]   Downloaded cranelift-srcgen v0.123.2
[INFO] [stderr]   Downloaded sdd v3.0.10
[INFO] [stderr]   Downloaded cranelift-native v0.123.2
[INFO] [stderr]   Downloaded cranelift-bforest v0.123.2
[INFO] [stderr]   Downloaded cranelift-assembler-x64 v0.123.2
[INFO] [stderr]   Downloaded clap v4.5.51
[INFO] [stderr]   Downloaded cranelift-frontend v0.123.2
[INFO] [stderr]   Downloaded cranelift-codegen-meta v0.123.2
[INFO] [stderr]   Downloaded cranelift-isle v0.123.2
[INFO] [stderr]   Downloaded scc v2.4.0
[INFO] [stderr]   Downloaded cranelift-assembler-x64-meta v0.123.2
[INFO] [stderr]   Downloaded clap_builder v4.5.51
[INFO] [stderr]   Downloaded cranelift-object v0.123.2
[INFO] [stderr]   Downloaded serde_core v1.0.223
[INFO] [stderr]   Downloaded cranelift-entity v0.123.2
[INFO] [stderr]   Downloaded wasmtime-internal-math v36.0.2
[INFO] [stderr]   Downloaded cranelift-control v0.123.2
[INFO] [stderr]   Downloaded cranelift-module v0.123.2
[INFO] [stderr]   Downloaded quickscope v0.2.0
[INFO] [stderr]   Downloaded serde_derive v1.0.223
[INFO] [stderr]   Downloaded tracing-tree v0.4.1
[INFO] [stderr]   Downloaded cranelift v0.123.2
[INFO] [stderr]   Downloaded cranelift-codegen-shared v0.123.2
[INFO] [stderr]   Downloaded cranelift-bitset v0.123.2
[INFO] [stderr]   Downloaded serde v1.0.223
[INFO] [stderr]   Downloaded cranelift-codegen v0.123.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+1.93.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 73163f497bbe47d59eeaa407c1c660fcd39e194982aa815959e5d4750b17b8de
[INFO] running `Command { std: "docker" "start" "-a" "73163f497bbe47d59eeaa407c1c660fcd39e194982aa815959e5d4750b17b8de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "73163f497bbe47d59eeaa407c1c660fcd39e194982aa815959e5d4750b17b8de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "73163f497bbe47d59eeaa407c1c660fcd39e194982aa815959e5d4750b17b8de", kill_on_drop: false }`
[INFO] [stdout] 73163f497bbe47d59eeaa407c1c660fcd39e194982aa815959e5d4750b17b8de
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+1.93.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ec5c74000806fd5e039433879b6c548cca6167e6eef953905e2d143f591551ea
[INFO] running `Command { std: "docker" "start" "-a" "ec5c74000806fd5e039433879b6c548cca6167e6eef953905e2d143f591551ea", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling cranelift-srcgen v0.123.2
[INFO] [stderr]    Compiling cranelift-isle v0.123.2
[INFO] [stderr]    Compiling cranelift-codegen-shared v0.123.2
[INFO] [stderr]    Compiling cranelift-bitset v0.123.2
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling target-lexicon v0.13.3
[INFO] [stderr]    Compiling bumpalo v3.19.0
[INFO] [stderr]    Compiling arbitrary v1.4.2
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling wasmtime-internal-math v36.0.2
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling serde_core v1.0.223
[INFO] [stderr]    Compiling cranelift-entity v0.123.2
[INFO] [stderr]    Compiling owo-colors v4.2.2
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling cranelift-assembler-x64-meta v0.123.2
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling gimli v0.31.1
[INFO] [stderr]    Compiling cranelift-bforest v0.123.2
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling indexmap v2.11.1
[INFO] [stderr]    Compiling regalloc2 v0.12.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling cranelift-codegen-meta v0.123.2
[INFO] [stderr]    Compiling rustc-demangle v0.1.26
[INFO] [stderr]    Compiling indenter v0.3.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling cranelift-control v0.123.2
[INFO] [stderr]    Compiling clap_builder v4.5.51
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling unicode-width v0.2.1
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling quickscope v0.2.0
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling codespan-reporting v0.12.0
[INFO] [stderr]    Compiling cranelift-assembler-x64 v0.123.2
[INFO] [stderr]    Compiling tracing-tree v0.4.1
[INFO] [stderr]    Compiling addr2line v0.24.2
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling cranelift-codegen v0.123.2
[INFO] [stderr]    Compiling backtrace v0.3.75
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling tracing-chrome v0.7.2
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling color-eyre v0.6.5
[INFO] [stderr]    Compiling clap v4.5.51
[INFO] [stderr]    Compiling cranelift-native v0.123.2
[INFO] [stderr]    Compiling cranelift-module v0.123.2
[INFO] [stderr]    Compiling cranelift-frontend v0.123.2
[INFO] [stderr]    Compiling cranelift-object v0.123.2
[INFO] [stderr]    Compiling cranelift v0.123.2
[INFO] [stderr]    Compiling lang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `StructLayout` and `self`
[INFO] [stdout]  --> src/rvsdg/builder.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     struct_layout::{self, StructLayout},
[INFO] [stdout]   |                     ^^^^  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/types/mod.rs:313:44
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   params: todo!(),
[INFO] [stdout]     |                               ------- any code following this expression is unreachable
[INFO] [stdout] 313 | ...                   param_symbols: todo!(),
[INFO] [stdout]     |                                      ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cached_node`
[INFO] [stdout]    --> src/rvsdg/builder.rs:152:22
[INFO] [stdout]     |
[INFO] [stdout] 152 |         if let Some(&cached_node) = self.value_cache.get(&key) {
[INFO] [stdout]     |                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cached_node`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/rvsdg/builder.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let ty = value.node; // Placeholder - we'd need to track types properly
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/rvsdg/graphviz.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |             _ => ("white", "rounded"),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/rvsdg/graphviz.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |             NodeKind::Lambda { .. } | NodeKind::Gamma { .. } | NodeKind::Theta { .. } => {
[INFO] [stdout]     |             ------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 103 |             NodeKind::Const { .. } => ("lightgreen", "filled,rounded"),
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] 104 |             NodeKind::Binary { .. } | NodeKind::Unary { .. } => ("lightyellow", "filled,rounded"),
[INFO] [stdout]     |             ------------------------------------------------ matches some of the same values
[INFO] [stdout] 105 |             NodeKind::Call { .. } => ("orange", "filled,rounded"),
[INFO] [stdout]     |             --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 113 |             _ => ("white", "rounded"),
[INFO] [stdout]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outer_state`
[INFO] [stdout]   --> src/rvsdg/lower/theta.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let outer_state = self.current_state;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outer_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/rvsdg/lower/mod.rs:458:31
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Op::DoubleColon { left, right } => {
[INFO] [stdout]     |                               ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/rvsdg/lower/mod.rs:458:37
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Op::DoubleColon { left, right } => {
[INFO] [stdout]     |                                     ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `call_conv`
[INFO] [stdout]    --> src/rvsdg/to_cranelift.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         call_conv: CallConv,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_call_conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/rvsdg/to_cranelift.rs:777:31
[INFO] [stdout]     |
[INFO] [stdout] 777 |             NodeKind::Store { ty, inputs } => {
[INFO] [stdout]     |                               ^^ help: try ignoring the field: `ty: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:439:36
[INFO] [stdout]     |
[INFO] [stdout] 439 |                     SymbolKind::Fn(fn_symbol_data) => todo!(),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_arg_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:440:39
[INFO] [stdout]     |
[INFO] [stdout] 440 |                     SymbolKind::FnArg(fn_arg_symbol_data) => todo!(),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_arg_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:441:37
[INFO] [stdout]     |
[INFO] [stdout] 441 |                     SymbolKind::Var(var_symbol_data) => todo!(),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:445:38
[INFO] [stdout]     |
[INFO] [stdout] 445 |                     SymbolKind::Enum(enum_symbol_data) => todo!(),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek_n_token` is never used
[INFO] [stdout]   --> src/ast/mod.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Ast {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn peek_n_token(&self, amount: usize) -> Option<&Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `StructFieldAddr` is never constructed
[INFO] [stdout]    --> src/rvsdg/mod.rs:631:5
[INFO] [stdout]     |
[INFO] [stdout] 627 | pub(crate) enum NodeKeyKind {
[INFO] [stdout]     |                 ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 631 |     StructFieldAddr { field: FieldId },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NodeKeyKind` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fb` and `region_id` are never read
[INFO] [stdout]   --> src/rvsdg/builder.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct RegionBuilder<'a> {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 57 |     fb: &'a mut FunctionBuilder<'a>,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 58 |     region_id: RegionId,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_function` is never read
[INFO] [stdout]   --> src/rvsdg/to_cranelift.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct RvsdgToCranelift<'a> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     current_function: Option<FunctionId>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `block_map` is never read
[INFO] [stdout]   --> src/rvsdg/to_cranelift.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct FunctionCompiler<'a, 'b> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     block_map: FxHashMap<NodeId, Vec<Block>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_struct_id_from_ptr` is never used
[INFO] [stdout]    --> src/rvsdg/to_cranelift.rs:805:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | impl<'a, 'b> FunctionCompiler<'a, 'b> {
[INFO] [stdout]     | ------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 805 |     fn get_struct_id_from_ptr(&self, ptr_value_id: ValueId) -> color_eyre::Result<StructId> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s
[INFO] running `Command { std: "docker" "inspect" "ec5c74000806fd5e039433879b6c548cca6167e6eef953905e2d143f591551ea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec5c74000806fd5e039433879b6c548cca6167e6eef953905e2d143f591551ea", kill_on_drop: false }`
[INFO] [stdout] ec5c74000806fd5e039433879b6c548cca6167e6eef953905e2d143f591551ea
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+1.93.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8cc830d6b4c1319af98d2f79b7fa680baf9f7280e1ebab3b8fb5cd960a7ea4cf
[INFO] running `Command { std: "docker" "start" "-a" "8cc830d6b4c1319af98d2f79b7fa680baf9f7280e1ebab3b8fb5cd960a7ea4cf", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling sdd v3.0.10
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling scc v2.4.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tracing-chrome v0.7.2
[INFO] [stderr]    Compiling backtrace v0.3.75
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling serial_test v3.2.0
[INFO] [stderr]    Compiling color-eyre v0.6.5
[INFO] [stderr]    Compiling cranelift-object v0.123.2
[INFO] [stderr]    Compiling lang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `StructLayout` and `self`
[INFO] [stdout]  --> src/rvsdg/builder.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     struct_layout::{self, StructLayout},
[INFO] [stdout]   |                     ^^^^  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TokenKind`, `Token`, and `VarType`
[INFO] [stdout]   --> src/ast/ast_import.rs:71:20
[INFO] [stdout]    |
[INFO] [stdout] 71 |         ast::{Ast, VarType},
[INFO] [stdout]    |                    ^^^^^^^
[INFO] [stdout] 72 |         interner::{Interner, SharedInterner},
[INFO] [stdout] 73 |         lexer::{Lexer, Token, TokenKind},
[INFO] [stdout]    |                        ^^^^^  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pretty_assertions::assert_eq`
[INFO] [stdout]   --> src/ast/ast_import.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     use pretty_assertions::assert_eq;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Token`
[INFO] [stdout]    --> src/ast/ast_struct.rs:156:24
[INFO] [stdout]     |
[INFO] [stdout] 156 |         lexer::{Lexer, Token, TokenKind},
[INFO] [stdout]     |                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StructLayout` and `self`
[INFO] [stdout]  --> src/rvsdg/builder.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     struct_layout::{self, StructLayout},
[INFO] [stdout]   |                     ^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/rvsdg/optimize.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/types/mod.rs:313:44
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   params: todo!(),
[INFO] [stdout]     |                               ------- any code following this expression is unreachable
[INFO] [stdout] 313 | ...                   param_symbols: todo!(),
[INFO] [stdout]     |                                      ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cached_node`
[INFO] [stdout]    --> src/rvsdg/builder.rs:152:22
[INFO] [stdout]     |
[INFO] [stdout] 152 |         if let Some(&cached_node) = self.value_cache.get(&key) {
[INFO] [stdout]     |                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cached_node`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/rvsdg/builder.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let ty = value.node; // Placeholder - we'd need to track types properly
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/rvsdg/graphviz.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |             _ => ("white", "rounded"),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/rvsdg/graphviz.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |             NodeKind::Lambda { .. } | NodeKind::Gamma { .. } | NodeKind::Theta { .. } => {
[INFO] [stdout]     |             ------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 103 |             NodeKind::Const { .. } => ("lightgreen", "filled,rounded"),
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] 104 |             NodeKind::Binary { .. } | NodeKind::Unary { .. } => ("lightyellow", "filled,rounded"),
[INFO] [stdout]     |             ------------------------------------------------ matches some of the same values
[INFO] [stdout] 105 |             NodeKind::Call { .. } => ("orange", "filled,rounded"),
[INFO] [stdout]     |             --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 113 |             _ => ("white", "rounded"),
[INFO] [stdout]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outer_state`
[INFO] [stdout]   --> src/rvsdg/lower/theta.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let outer_state = self.current_state;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outer_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/rvsdg/lower/mod.rs:458:31
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Op::DoubleColon { left, right } => {
[INFO] [stdout]     |                               ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/rvsdg/lower/mod.rs:458:37
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Op::DoubleColon { left, right } => {
[INFO] [stdout]     |                                     ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `call_conv`
[INFO] [stdout]    --> src/rvsdg/to_cranelift.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         call_conv: CallConv,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_call_conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/rvsdg/to_cranelift.rs:777:31
[INFO] [stdout]     |
[INFO] [stdout] 777 |             NodeKind::Store { ty, inputs } => {
[INFO] [stdout]     |                               ^^ help: try ignoring the field: `ty: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:439:36
[INFO] [stdout]     |
[INFO] [stdout] 439 |                     SymbolKind::Fn(fn_symbol_data) => todo!(),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_arg_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:440:39
[INFO] [stdout]     |
[INFO] [stdout] 440 |                     SymbolKind::FnArg(fn_arg_symbol_data) => todo!(),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_arg_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:441:37
[INFO] [stdout]     |
[INFO] [stdout] 441 |                     SymbolKind::Var(var_symbol_data) => todo!(),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:445:38
[INFO] [stdout]     |
[INFO] [stdout] 445 |                     SymbolKind::Enum(enum_symbol_data) => todo!(),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek_n_token` is never used
[INFO] [stdout]   --> src/ast/mod.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Ast {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn peek_n_token(&self, amount: usize) -> Option<&Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `StructFieldAddr` is never constructed
[INFO] [stdout]    --> src/rvsdg/mod.rs:631:5
[INFO] [stdout]     |
[INFO] [stdout] 627 | pub(crate) enum NodeKeyKind {
[INFO] [stdout]     |                 ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 631 |     StructFieldAddr { field: FieldId },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NodeKeyKind` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fb` and `region_id` are never read
[INFO] [stdout]   --> src/rvsdg/builder.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct RegionBuilder<'a> {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 57 |     fb: &'a mut FunctionBuilder<'a>,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 58 |     region_id: RegionId,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_function` is never read
[INFO] [stdout]   --> src/rvsdg/to_cranelift.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct RvsdgToCranelift<'a> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     current_function: Option<FunctionId>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `block_map` is never read
[INFO] [stdout]   --> src/rvsdg/to_cranelift.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct FunctionCompiler<'a, 'b> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     block_map: FxHashMap<NodeId, Vec<Block>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_struct_id_from_ptr` is never used
[INFO] [stdout]    --> src/rvsdg/to_cranelift.rs:805:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | impl<'a, 'b> FunctionCompiler<'a, 'b> {
[INFO] [stdout]     | ------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 805 |     fn get_struct_id_from_ptr(&self, ptr_value_id: ValueId) -> color_eyre::Result<StructId> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/types/mod.rs:313:44
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   params: todo!(),
[INFO] [stdout]     |                               ------- any code following this expression is unreachable
[INFO] [stdout] 313 | ...                   param_symbols: todo!(),
[INFO] [stdout]     |                                      ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/ast/ast_import.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let i = shared_interner.write();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args_mapped`
[INFO] [stdout]   --> src/ast/ast_import.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let args_mapped = args
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_args_mapped`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ast/ast_struct.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let mut i = shared_interner.write();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lexer/mod.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let mut i = shared_interner.write();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/lexer/mod.rs:476:13
[INFO] [stdout]     |
[INFO] [stdout] 476 |         let mut i = shared_interner.write();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cached_node`
[INFO] [stdout]    --> src/rvsdg/builder.rs:152:22
[INFO] [stdout]     |
[INFO] [stdout] 152 |         if let Some(&cached_node) = self.value_cache.get(&key) {
[INFO] [stdout]     |                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cached_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/rvsdg/builder.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let ty = value.node; // Placeholder - we'd need to track types properly
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/rvsdg/graphviz.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |             _ => ("white", "rounded"),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/rvsdg/graphviz.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |             NodeKind::Lambda { .. } | NodeKind::Gamma { .. } | NodeKind::Theta { .. } => {
[INFO] [stdout]     |             ------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 103 |             NodeKind::Const { .. } => ("lightgreen", "filled,rounded"),
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] 104 |             NodeKind::Binary { .. } | NodeKind::Unary { .. } => ("lightyellow", "filled,rounded"),
[INFO] [stdout]     |             ------------------------------------------------ matches some of the same values
[INFO] [stdout] 105 |             NodeKind::Call { .. } => ("orange", "filled,rounded"),
[INFO] [stdout]     |             --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 113 |             _ => ("white", "rounded"),
[INFO] [stdout]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outer_state`
[INFO] [stdout]   --> src/rvsdg/lower/theta.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let outer_state = self.current_state;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outer_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/rvsdg/lower/mod.rs:458:31
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Op::DoubleColon { left, right } => {
[INFO] [stdout]     |                               ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/rvsdg/lower/mod.rs:458:37
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Op::DoubleColon { left, right } => {
[INFO] [stdout]     |                                     ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `call_conv`
[INFO] [stdout]    --> src/rvsdg/to_cranelift.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         call_conv: CallConv,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_call_conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/rvsdg/to_cranelift.rs:777:31
[INFO] [stdout]     |
[INFO] [stdout] 777 |             NodeKind::Store { ty, inputs } => {
[INFO] [stdout]     |                               ^^ help: try ignoring the field: `ty: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:439:36
[INFO] [stdout]     |
[INFO] [stdout] 439 |                     SymbolKind::Fn(fn_symbol_data) => todo!(),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_arg_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:440:39
[INFO] [stdout]     |
[INFO] [stdout] 440 |                     SymbolKind::FnArg(fn_arg_symbol_data) => todo!(),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_arg_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:441:37
[INFO] [stdout]     |
[INFO] [stdout] 441 |                     SymbolKind::Var(var_symbol_data) => todo!(),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_symbol_data`
[INFO] [stdout]    --> src/symbols/mod.rs:445:38
[INFO] [stdout]     |
[INFO] [stdout] 445 |                     SymbolKind::Enum(enum_symbol_data) => todo!(),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_symbol_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek_n_token` is never used
[INFO] [stdout]   --> src/ast/mod.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Ast {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn peek_n_token(&self, amount: usize) -> Option<&Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `StructFieldAddr` is never constructed
[INFO] [stdout]    --> src/rvsdg/mod.rs:631:5
[INFO] [stdout]     |
[INFO] [stdout] 627 | pub(crate) enum NodeKeyKind {
[INFO] [stdout]     |                 ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 631 |     StructFieldAddr { field: FieldId },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NodeKeyKind` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fb` and `region_id` are never read
[INFO] [stdout]   --> src/rvsdg/builder.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct RegionBuilder<'a> {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 57 |     fb: &'a mut FunctionBuilder<'a>,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 58 |     region_id: RegionId,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_function` is never read
[INFO] [stdout]   --> src/rvsdg/to_cranelift.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct RvsdgToCranelift<'a> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     current_function: Option<FunctionId>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `block_map` is never read
[INFO] [stdout]   --> src/rvsdg/to_cranelift.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct FunctionCompiler<'a, 'b> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     block_map: FxHashMap<NodeId, Vec<Block>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_struct_id_from_ptr` is never used
[INFO] [stdout]    --> src/rvsdg/to_cranelift.rs:805:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | impl<'a, 'b> FunctionCompiler<'a, 'b> {
[INFO] [stdout]     | ------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 805 |     fn get_struct_id_from_ptr(&self, ptr_value_id: ValueId) -> color_eyre::Result<StructId> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ast` and `arena` are never read
[INFO] [stdout]    --> src/type_checker/mod.rs:896:9
[INFO] [stdout]     |
[INFO] [stdout] 894 |     struct TypeCheckResult {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 895 |         errors: Vec<TypeCheckingError>,
[INFO] [stdout] 896 |         ast: Ast,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 897 |         arena: TypeArena,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 14.82s
[INFO] running `Command { std: "docker" "inspect" "8cc830d6b4c1319af98d2f79b7fa680baf9f7280e1ebab3b8fb5cd960a7ea4cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8cc830d6b4c1319af98d2f79b7fa680baf9f7280e1ebab3b8fb5cd960a7ea4cf", kill_on_drop: false }`
[INFO] [stdout] 8cc830d6b4c1319af98d2f79b7fa680baf9f7280e1ebab3b8fb5cd960a7ea4cf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+1.93.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] cac1716635104c16f80ed51f5d1f942adacb71e4c5e967b57d059d8e1af8d64a
[INFO] running `Command { std: "docker" "start" "-a" "cac1716635104c16f80ed51f5d1f942adacb71e4c5e967b57d059d8e1af8d64a", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `StructLayout` and `self`
[INFO] [stderr]  --> src/rvsdg/builder.rs:6:21
[INFO] [stderr]   |
[INFO] [stderr] 6 |     struct_layout::{self, StructLayout},
[INFO] [stderr]   |                     ^^^^  ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/types/mod.rs:313:44
[INFO] [stderr]     |
[INFO] [stderr] 312 | ...                   params: todo!(),
[INFO] [stderr]     |                               ------- any code following this expression is unreachable
[INFO] [stderr] 313 | ...                   param_symbols: todo!(),
[INFO] [stderr]     |                                      ^^^^^^^ unreachable expression
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cached_node`
[INFO] [stderr]    --> src/rvsdg/builder.rs:152:22
[INFO] [stderr]     |
[INFO] [stderr] 152 |         if let Some(&cached_node) = self.value_cache.get(&key) {
[INFO] [stderr]     |                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cached_node`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ty`
[INFO] [stderr]    --> src/rvsdg/builder.rs:431:13
[INFO] [stderr]     |
[INFO] [stderr] 431 |         let ty = value.node; // Placeholder - we'd need to track types properly
[INFO] [stderr]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/rvsdg/graphviz.rs:113:13
[INFO] [stderr]     |
[INFO] [stderr] 113 |             _ => ("white", "rounded"),
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/rvsdg/graphviz.rs:113:13
[INFO] [stderr]     |
[INFO] [stderr] 100 |             NodeKind::Lambda { .. } | NodeKind::Gamma { .. } | NodeKind::Theta { .. } => {
[INFO] [stderr]     |             ------------------------------------------------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 103 |             NodeKind::Const { .. } => ("lightgreen", "filled,rounded"),
[INFO] [stderr]     |             ---------------------- matches some of the same values
[INFO] [stderr] 104 |             NodeKind::Binary { .. } | NodeKind::Unary { .. } => ("lightyellow", "filled,rounded"),
[INFO] [stderr]     |             ------------------------------------------------ matches some of the same values
[INFO] [stderr] 105 |             NodeKind::Call { .. } => ("orange", "filled,rounded"),
[INFO] [stderr]     |             --------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 113 |             _ => ("white", "rounded"),
[INFO] [stderr]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `outer_state`
[INFO] [stderr]   --> src/rvsdg/lower/theta.rs:48:13
[INFO] [stderr]    |
[INFO] [stderr] 48 |         let outer_state = self.current_state;
[INFO] [stderr]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outer_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `left`
[INFO] [stderr]    --> src/rvsdg/lower/mod.rs:458:31
[INFO] [stderr]     |
[INFO] [stderr] 458 |             Op::DoubleColon { left, right } => {
[INFO] [stderr]     |                               ^^^^ help: try ignoring the field: `left: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `right`
[INFO] [stderr]    --> src/rvsdg/lower/mod.rs:458:37
[INFO] [stderr]     |
[INFO] [stderr] 458 |             Op::DoubleColon { left, right } => {
[INFO] [stderr]     |                                     ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `call_conv`
[INFO] [stderr]    --> src/rvsdg/to_cranelift.rs:201:9
[INFO] [stderr]     |
[INFO] [stderr] 201 |         call_conv: CallConv,
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_call_conv`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ty`
[INFO] [stderr]    --> src/rvsdg/to_cranelift.rs:777:31
[INFO] [stderr]     |
[INFO] [stderr] 777 |             NodeKind::Store { ty, inputs } => {
[INFO] [stderr]     |                               ^^ help: try ignoring the field: `ty: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fn_symbol_data`
[INFO] [stderr]    --> src/symbols/mod.rs:439:36
[INFO] [stderr]     |
[INFO] [stderr] 439 |                     SymbolKind::Fn(fn_symbol_data) => todo!(),
[INFO] [stderr]     |                                    ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_symbol_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fn_arg_symbol_data`
[INFO] [stderr]    --> src/symbols/mod.rs:440:39
[INFO] [stderr]     |
[INFO] [stderr] 440 |                     SymbolKind::FnArg(fn_arg_symbol_data) => todo!(),
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_arg_symbol_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `var_symbol_data`
[INFO] [stderr]    --> src/symbols/mod.rs:441:37
[INFO] [stderr]     |
[INFO] [stderr] 441 |                     SymbolKind::Var(var_symbol_data) => todo!(),
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_symbol_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `enum_symbol_data`
[INFO] [stderr]    --> src/symbols/mod.rs:445:38
[INFO] [stderr]     |
[INFO] [stderr] 445 |                     SymbolKind::Enum(enum_symbol_data) => todo!(),
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_symbol_data`
[INFO] [stderr] 
[INFO] [stderr] warning: method `peek_n_token` is never used
[INFO] [stderr]   --> src/ast/mod.rs:63:8
[INFO] [stderr]    |
[INFO] [stderr] 47 | impl Ast {
[INFO] [stderr]    | -------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 63 |     fn peek_n_token(&self, amount: usize) -> Option<&Token> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `StructFieldAddr` is never constructed
[INFO] [stderr]    --> src/rvsdg/mod.rs:631:5
[INFO] [stderr]     |
[INFO] [stderr] 627 | pub(crate) enum NodeKeyKind {
[INFO] [stderr]     |                 ----------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 631 |     StructFieldAddr { field: FieldId },
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NodeKeyKind` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `fb` and `region_id` are never read
[INFO] [stderr]   --> src/rvsdg/builder.rs:57:5
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub struct RegionBuilder<'a> {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] 57 |     fb: &'a mut FunctionBuilder<'a>,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 58 |     region_id: RegionId,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `current_function` is never read
[INFO] [stderr]   --> src/rvsdg/to_cranelift.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub struct RvsdgToCranelift<'a> {
[INFO] [stderr]    |            ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 59 |     current_function: Option<FunctionId>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `block_map` is never read
[INFO] [stderr]   --> src/rvsdg/to_cranelift.rs:73:5
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub struct FunctionCompiler<'a, 'b> {
[INFO] [stderr]    |            ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 73 |     block_map: FxHashMap<NodeId, Vec<Block>>,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_struct_id_from_ptr` is never used
[INFO] [stderr]    --> src/rvsdg/to_cranelift.rs:805:8
[INFO] [stderr]     |
[INFO] [stderr] 237 | impl<'a, 'b> FunctionCompiler<'a, 'b> {
[INFO] [stderr]     | ------------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 805 |     fn get_struct_id_from_ptr(&self, ptr_value_id: ValueId) -> color_eyre::Result<StructId> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `lang` (lib) generated 20 warnings (run `cargo fix --lib -p lang` to apply 12 suggestions)
[INFO] [stderr] warning: unused imports: `TokenKind`, `Token`, and `VarType`
[INFO] [stderr]   --> src/ast/ast_import.rs:71:20
[INFO] [stderr]    |
[INFO] [stderr] 71 |         ast::{Ast, VarType},
[INFO] [stderr]    |                    ^^^^^^^
[INFO] [stderr] 72 |         interner::{Interner, SharedInterner},
[INFO] [stderr] 73 |         lexer::{Lexer, Token, TokenKind},
[INFO] [stderr]    |                        ^^^^^  ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `pretty_assertions::assert_eq`
[INFO] [stderr]   --> src/ast/ast_import.rs:77:9
[INFO] [stderr]    |
[INFO] [stderr] 77 |     use pretty_assertions::assert_eq;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Token`
[INFO] [stderr]    --> src/ast/ast_struct.rs:156:24
[INFO] [stderr]     |
[INFO] [stderr] 156 |         lexer::{Lexer, Token, TokenKind},
[INFO] [stderr]     |                        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `StructLayout` and `self`
[INFO] [stderr]  --> src/rvsdg/builder.rs:6:21
[INFO] [stderr]   |
[INFO] [stderr] 6 |     struct_layout::{self, StructLayout},
[INFO] [stderr]   |                     ^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> src/rvsdg/optimize.rs:151:9
[INFO] [stderr]     |
[INFO] [stderr] 151 |     use super::*;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/ast/ast_import.rs:91:13
[INFO] [stderr]    |
[INFO] [stderr] 91 |         let i = shared_interner.write();
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `args_mapped`
[INFO] [stderr]   --> src/ast/ast_import.rs:92:13
[INFO] [stderr]    |
[INFO] [stderr] 92 |         let args_mapped = args
[INFO] [stderr]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_args_mapped`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/ast/ast_struct.rs:179:13
[INFO] [stderr]     |
[INFO] [stderr] 179 |         let mut i = shared_interner.write();
[INFO] [stderr]     |             ----^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lexer/mod.rs:476:13
[INFO] [stderr]     |
[INFO] [stderr] 476 |         let mut i = shared_interner.write();
[INFO] [stderr]     |             ----^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/lexer/mod.rs:476:13
[INFO] [stderr]     |
[INFO] [stderr] 476 |         let mut i = shared_interner.write();
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cached_node`
[INFO] [stderr]    --> src/rvsdg/builder.rs:152:22
[INFO] [stderr]     |
[INFO] [stderr] 152 |         if let Some(&cached_node) = self.value_cache.get(&key) {
[INFO] [stderr]     |                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cached_node`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `ast` and `arena` are never read
[INFO] [stderr]    --> src/type_checker/mod.rs:896:9
[INFO] [stderr]     |
[INFO] [stderr] 894 |     struct TypeCheckResult {
[INFO] [stderr]     |            --------------- fields in this struct
[INFO] [stderr] 895 |         errors: Vec<TypeCheckingError>,
[INFO] [stderr] 896 |         ast: Ast,
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 897 |         arena: TypeArena,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `lang` (lib test) generated 30 warnings (18 duplicates) (run `cargo fix --lib -p lang --tests` to apply 11 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lang-7c33b43b64849e13)
[INFO] [stdout] 
[INFO] [stdout] running 275 tests
[INFO] [stdout] test ast::ast_enum::test::basic_enum ... ok
[INFO] [stdout] test ast::ast_enum::test::enum_with_basic_union ... ok
[INFO] [stdout] test ast::ast_expr::array::test::access_with_identifier ... ok
[INFO] [stdout] test ast::ast_expr::array::test::array_init_then_access ... ok
[INFO] [stdout] test ast::ast_enum::test::enum_with_struct ... ok
[INFO] [stdout] test ast::ast_enum::test::enum_with_enum ... ok
[INFO] [stdout] test ast::ast_expr::array::test::array_trailing_comma ... ok
[INFO] [stdout] test ast::ast_expr::array::test::empty_array ... ok
[INFO] [stdout] test ast::ast_expr::array::test::chained_access ... ok
[INFO] [stdout] test ast::ast_expr::array::test::single_element_array ... ok
[INFO] [stdout] test ast::ast_expr::array::test::struct_field_array_access ... ok
[INFO] [stdout] test ast::ast_expr::array::test::function_return_array_access ... ok
[INFO] [stdout] test ast::ast_expr::func::test::fn_call_multi_param ... ok
[INFO] [stdout] test ast::ast_expr::func::test::fn_call ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_identifier_then_block_not_struct ... ok
[INFO] [stdout] test ast::ast_expr::array::test::nested_arrays ... ok
[INFO] [stdout] test ast::ast_expr::array::test::array_with_expressions ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_arithmetic_in_condition ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_in_arithmetic ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_array_literal_in_condition ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_array_access_comparison ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_as_function_argument ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_else_if_chain ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_array_access_condition ... ok
[INFO] [stdout] test ast::ast_expr::array::test::access_with_expression ... ok
[INFO] [stdout] test ast::ast_expr::func::test::nested_fn_calls ... ok
[INFO] [stdout] test ast::ast_expr::array::test::multiple_elements ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_chained_comparison ... ok
[INFO] [stdout] test ast::ast_expr::array::test::simple_access ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_in_array_literal ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_chained_method_call ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_comparison ... ok
[INFO] [stdout] test ast::ast_expr::array::test::array_with_identifiers ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_dot_access_condition ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_empty_array_in_condition ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_eq ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_explicit_struct_in_parens ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_function_call_with_args ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_identifier_condition ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_multiple_statements_in_block ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_function_call_condition ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_chained_dot_access ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_negation ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_nested_blocks ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_parenthesized_condition ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_struct_field_comparison ... ok
[INFO] [stdout] test ast::ast_expr::test::all_binary_operators_mixed ... ok
[INFO] [stdout] test ast::ast_expr::struct_create::test::struct_create_chained_with_dot ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::multiple_else_if_no_final_else ... ok
[INFO] [stdout] test ast::ast_expr::struct_create::test::struct_create_empty ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_with_reference ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::nested_if_expressions ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_add_left_assoc ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_all_comparisons_same ... ok
[INFO] [stdout] test ast::ast_expr::struct_create::test::struct_create_trailing_comma ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::simple_if_with_bool ... ok
[INFO] [stdout] test ast::ast_expr::struct_create::test::struct_create_multiple_fields ... ok
[INFO] [stdout] test ast::ast_expr::struct_create::test::struct_create_with_expressions ... ok
[INFO] [stdout] test ast::ast_expr::struct_create::test::struct_create_single_field ... ok
[INFO] [stdout] test ast::ast_expr::struct_create::test::struct_create_nested ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_call_same_as_dot ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_comparison_over_arithmetic ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_mul_over_add ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_div_over_sub ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_prefix_over_infix ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_prefix_over_mul ... ok
[INFO] [stdout] test ast::ast_expr::test::block_in_arithmetic ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_dot_same_as_postfix ... ok
[INFO] [stdout] test ast::ast_expr::test::bracketed ... ok
[INFO] [stdout] test ast::ast_expr::test::comparison_of_comparisons ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_postfix_over_prefix ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_ref_over_dot ... ok
[INFO] [stdout] test ast::ast_expr::test::chained_greater_than ... ok
[INFO] [stdout] test ast::ast_expr::test::block_as_function_argument ... ok
[INFO] [stdout] test ast::ast_expr::test::chained_dots ... ok
[INFO] [stdout] test ast::ast_expr::test::deeply_nested_field_access ... ok
[INFO] [stdout] test ast::ast_expr::test::deeply_nested_function_calls ... ok
[INFO] [stdout] test ast::ast_expr::test::chained_double_colons ... ok
[INFO] [stdout] test ast::ast_expr::test::complex_postfix_chain ... ok
[INFO] [stdout] test ast::ast_expr::test::deeply_nested_parens ... ok
[INFO] [stdout] test ast::ast_expr::test::division_left_assoc ... ok
[INFO] [stdout] test ast::ast_expr::test::complex_parens_with_multiple_operators ... ok
[INFO] [stdout] test ast::ast_expr::test::double_negation_in_expression ... ok
[INFO] [stdout] test ast::ast_expr::test::double_negation ... ok
[INFO] [stdout] test ast::ast_expr::test::empty_function_call ... ok
[INFO] [stdout] test ast::ast_expr::test::equivalence ... ok
[INFO] [stdout] test ast::ast_expr::test::greater_than_basic ... ok
[INFO] [stdout] test ast::ast_expr::test::just_false ... ok
[INFO] [stdout] test ast::ast_expr::test::just_identifier ... ok
[INFO] [stdout] test ast::ast_expr::test::greater_than_with_arithmetic ... ok
[INFO] [stdout] test ast::ast_expr::test::just_integer ... ok
[INFO] [stdout] test ast::ast_expr::test::just_true ... ok
[INFO] [stdout] test ast::ast_expr::test::mixed_add_sub_left_assoc ... ok
[INFO] [stdout] test ast::ast_expr::test::less_than ... ok
[INFO] [stdout] test ast::ast_expr::test::negation_of_negation_multiply ... ok
[INFO] [stdout] test ast::ast_expr::test::mixed_call_index_dot ... ok
[INFO] [stdout] test ast::ast_expr::test::mixed_mul_div_left_assoc ... ok
[INFO] [stdout] test ast::ast_expr::test::negation_of_reference ... ok
[INFO] [stdout] test ast::ast_expr::test::nested_blocks ... ok
[INFO] [stdout] test ast::ast_expr::test::multi_squared_brackets ... ok
[INFO] [stdout] test ast::ast_expr::test::precedence_mixed ... ok
[INFO] [stdout] test ast::ast_expr::test::prefix_and_postfix_together ... ok
[INFO] [stdout] test ast::ast_expr::test::greater_than_eq_basic ... ok
[INFO] [stdout] test ast::ast_expr::test::function_with_complex_args ... ok
[INFO] [stdout] test ast::ast_expr::test::reference_in_arithmetic ... ok
[INFO] [stdout] test ast::ast_expr::test::reference_of_expression ... ok
[INFO] [stdout] test ast::ast_expr::test::squared_brackets ... ok
[INFO] [stdout] test ast::ast_expr::test::subtraction_left_assoc ... ok
[INFO] [stdout] test ast::ast_expr::test::unary_negation ... ok
[INFO] [stdout] test ast::ast_struct::test::basic_struct ... ok
[INFO] [stdout] test ast::ast_import::test::basic_fn_params ... ok
[INFO] [stdout] test ast::ast_expr::test::unary_not ... ok
[INFO] [stdout] test lexer::test::keyword_no_space ... ok
[INFO] [stdout] test lexer::test::basic_lexing ... ok
[INFO] [stdout] test rvsdg::optimize::tests::test_dce_removes_unused_const ... ok
[INFO] [stdout] test struct_layout::dfs::tests::complex_dag ... ok
[INFO] [stdout] test struct_layout::dfs::tests::cycle_with_independent_nodes ... ok
[INFO] [stdout] test struct_layout::dfs::tests::dag_with_back_references ... ok
[INFO] [stdout] test struct_layout::dfs::tests::diamond_pattern ... ok
[INFO] [stdout] test struct_layout::dfs::tests::empty_graph ... ok
[INFO] [stdout] test struct_layout::dfs::tests::independent_nodes ... ok
[INFO] [stdout] test struct_layout::dfs::tests::linear_chain ... ok
[INFO] [stdout] test struct_layout::dfs::tests::multiple_roots ... ok
[INFO] [stdout] test struct_layout::dfs::tests::partial_cycle ... ok
[INFO] [stdout] test struct_layout::dfs::tests::simple_cycle ... ok
[INFO] [stdout] test struct_layout::dfs::tests::self_loop ... ok
[INFO] [stdout] test struct_layout::dfs::tests::single_node ... ok
[INFO] [stdout] test type_checker::test::test_arithmetic_with_function_result ... ok
[INFO] [stdout] test type_checker::test::test_arithmetic_with_variables ... ok
[INFO] [stdout] test type_checker::test::test_array_init_empty ... ok
[INFO] [stdout] test type_checker::test::test_array_init_heterogeneous ... ok
[INFO] [stdout] test type_checker::test::test_array_init_homogeneous_bools ... ok
[INFO] [stdout] test type_checker::test::test_array_init_homogeneous_ints ... ok
[INFO] [stdout] test type_checker::test::test_array_mixed_expr_types ... ok
[INFO] [stdout] test type_checker::test::test_array_with_expressions ... ok
[INFO] [stdout] test type_checker::test::test_array_with_function_results ... ok
[INFO] [stdout] test type_checker::test::test_assignment_arithmetic_result ... ok
[INFO] [stdout] test ast::ast_expr::test::reference_of_negation ... ok
[INFO] [stdout] test ast::ast_expr::test::triple_negation ... ok
[INFO] [stdout] test type_checker::test::test_assignment_compatible_type ... ok
[INFO] [stdout] test ast::ast_expr::test::string_and_cstr_literals ... ok
[INFO] [stdout] test type_checker::test::test_assignment_function_result ... ok
[INFO] [stdout] test type_checker::test::test_assignment_incompatible_bool_to_int ... ok
[INFO] [stdout] test type_checker::test::test_assignment_incompatible_int_to_bool ... ok
[INFO] [stdout] test type_checker::test::test_block_in_arithmetic ... ok
[INFO] [stdout] test type_checker::test::test_assignment_to_if_result ... ok
[INFO] [stdout] test type_checker::test::test_block_return_mismatched ... ok
[INFO] [stdout] test type_checker::test::test_block_with_return_value ... ok
[INFO] [stdout] test type_checker::test::test_boolean_expression ... ok
[INFO] [stdout] test type_checker::test::test_block_multiple_statements ... ok
[INFO] [stdout] test type_checker::test::test_block_return_matching ... ok
[INFO] [stdout] test type_checker::test::test_break_inside_while ... ok
[INFO] [stdout] test type_checker::test::test_block_single_statement ... ok
[INFO] [stdout] test ast::ast_expr::test::parens_override_precedence ... ok
[INFO] [stdout] test type_checker::test::test_chained_comparisons ... ok
[INFO] [stdout] test type_checker::test::test_call_variable_not_function ... ok
[INFO] [stdout] test type_checker::test::test_break_outside_while ... ok
[INFO] [stdout] test type_checker::test::test_comparison_complex_left ... ok
[INFO] [stdout] test type_checker::test::test_comparison_with_variables ... ok
[INFO] [stdout] test type_checker::test::test_break_inside_nested_while ... ok
[INFO] [stdout] test type_checker::test::test_complex_boolean_expression ... ok
[INFO] [stdout] test type_checker::test::test_complex_arithmetic_chain ... ok
[INFO] [stdout] test type_checker::test::test_complex_nested_expression ... ok
[INFO] [stdout] test type_checker::test::test_comparison_both_function_calls ... ok
[INFO] [stdout] test ast::ast_expr::array::test::array_access_in_arithmetic ... ok
[INFO] [stdout] test type_checker::test::test_division_valid ... ok
[INFO] [stdout] test type_checker::test::test_comparison_with_function_call ... ok
[INFO] [stdout] test type_checker::test::test_double_negation ... ok
[INFO] [stdout] test type_checker::test::test_deeply_nested_arithmetic ... ok
[INFO] [stdout] test type_checker::test::test_empty_struct ... ok
[INFO] [stdout] test type_checker::test::test_early_return_wrong_type ... ok
[INFO] [stdout] test type_checker::test::test_empty_block ... ok
[INFO] [stdout] test type_checker::test::test_explicit_return_matching ... ok
[INFO] [stdout] test type_checker::test::test_function_call_result_in_expr ... ok
[INFO] [stdout] test type_checker::test::test_explicit_return_mismatched ... ok
[INFO] [stdout] test type_checker::test::test_field_access_on_non_struct ... ok
[INFO] [stdout] test type_checker::test::test_function_no_args ... ok
[INFO] [stdout] test type_checker::test::test_function_calling_function ... ok
[INFO] [stdout] test type_checker::test::test_function_multiple_wrong_args ... ok
[INFO] [stdout] test type_checker::test::test_division_left_string ... ok
[INFO] [stdout] test type_checker::test::test_function_three_args ... ok
[INFO] [stdout] test type_checker::test::test_function_wrong_arg_count ... ok
[INFO] [stdout] test ast::ast_expr::test::array_of_function_results ... ok
[INFO] [stdout] test type_checker::test::test_function_wrong_second_arg ... ok
[INFO] [stdout] test type_checker::test::test_deep_nesting ... ok
[INFO] [stdout] test type_checker::test::test_function_too_many_args ... ok
[INFO] [stdout] test type_checker::test::test_greater_than_eq_valid ... ok
[INFO] [stdout] test type_checker::test::test_function_returning_struct ... ok
[INFO] [stdout] test type_checker::test::test_greater_than_eq_mixed ... ok
[INFO] [stdout] test type_checker::test::test_greater_than_valid ... ok
[INFO] [stdout] test type_checker::test::test_function_wrong_middle_arg ... ok
[INFO] [stdout] test type_checker::test::test_if_as_function_arg ... ok
[INFO] [stdout] test type_checker::test::test_function_wrong_first_arg ... ok
[INFO] [stdout] test type_checker::test::test_if_else_branch_mismatch ... ok
[INFO] [stdout] test type_checker::test::test_if_comparison_condition ... ok
[INFO] [stdout] test type_checker::test::test_function_with_struct_param ... ok
[INFO] [stdout] test type_checker::test::test_if_bool_literal ... ok
[INFO] [stdout] test type_checker::test::test_if_else_matching_types ... ok
[INFO] [stdout] test ast::ast_expr::test::parens_with_division ... ok
[INFO] [stdout] test ast::ast_expr::test::not_equivalence ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_mul_left_assoc ... ok
[INFO] [stdout] test type_checker::test::test_if_else_if_non_bool_condition ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_complex_expression ... ok
[INFO] [stdout] test ast::ast_expr::test::binding_comparison_same_precedence ... ok
[INFO] [stdout] test ast::ast_expr::test::basic_expr ... ok
[INFO] [stdout] test ast::ast_expr::if_expr::test::if_else_basic ... ok
[INFO] [stdout] test type_checker::test::test_if_else_type_mismatch_bool_int ... ok
[INFO] [stdout] test type_checker::test::test_if_non_bool_condition ... ok
[INFO] [stdout] test type_checker::test::test_if_string_condition ... ok
[INFO] [stdout] test type_checker::test::test_if_with_block_body ... ok
[INFO] [stdout] test type_checker::test::test_if_in_arithmetic ... ok
[INFO] [stdout] test type_checker::test::test_if_without_else ... ok
[INFO] [stdout] test type_checker::test::test_less_than_eq_mixed ... ok
[INFO] [stdout] test type_checker::test::test_if_only_else_if_no_final_else ... ok
[INFO] [stdout] test type_checker::test::test_less_than_eq_valid ... ok
[INFO] [stdout] test type_checker::test::test_less_than_left_bool ... ok
[INFO] [stdout] test type_checker::test::test_less_than_right_bool ... ok
[INFO] [stdout] test type_checker::test::test_less_than_valid ... ok
[INFO] [stdout] test type_checker::test::test_mixed_type_arithmetic ... ok
[INFO] [stdout] test type_checker::test::test_mixed_control_flow ... ok
[INFO] [stdout] test type_checker::test::test_multiple_assignments ... ok
[INFO] [stdout] test type_checker::test::test_multiple_else_if_mismatched ... ok
[INFO] [stdout] test type_checker::test::test_multiple_var_decls ... ok
[INFO] [stdout] test type_checker::test::test_multiplication_valid ... ok
[INFO] [stdout] test type_checker::test::test_negation_on_bool ... ok
[INFO] [stdout] test type_checker::test::test_multiple_else_if_matching ... ok
[INFO] [stdout] test type_checker::test::test_negation_on_expression ... ok
[INFO] [stdout] test type_checker::test::test_negation_on_int ... ok
[INFO] [stdout] test type_checker::test::test_multiple_errors_in_function ... ok
[INFO] [stdout] test type_checker::test::test_negation_on_string ... ok
[INFO] [stdout] test type_checker::test::test_nested_arithmetic ... ok
[INFO] [stdout] test type_checker::test::test_nested_arrays ... ok
[INFO] [stdout] test type_checker::test::test_multiple_function_calls_in_expr ... ok
[INFO] [stdout] test type_checker::test::test_nested_blocks ... ok
[INFO] [stdout] test type_checker::test::test_nested_if_expressions ... ok
[INFO] [stdout] test type_checker::test::test_comparison_complex_right ... ok
[INFO] [stdout] test type_checker::test::test_nested_reference ... ok
[INFO] [stdout] test type_checker::test::test_nested_struct_field_access ... ok
[INFO] [stdout] test type_checker::test::test_comparison_with_expressions ... ok
[INFO] [stdout] test type_checker::test::test_reassignment_same_type ... ok
[INFO] [stdout] test type_checker::test::test_reference_on_bool ... ok
[INFO] [stdout] test type_checker::test::test_reference_on_int ... ok
[INFO] [stdout] test type_checker::test::test_multiple_returns_all_matching ... ok
[INFO] [stdout] test type_checker::test::test_nested_function_calls ... ok
[INFO] [stdout] test type_checker::test::test_return_in_else_branch ... ok
[INFO] [stdout] test type_checker::test::test_return_with_expression ... ok
[INFO] [stdout] test type_checker::test::test_return_in_nested_block ... ok
[INFO] [stdout] test type_checker::test::test_simple_addition ... ok
[INFO] [stdout] test type_checker::test::test_reference_in_arithmetic ... ok
[INFO] [stdout] test type_checker::test::test_greater_than_both_bool ... ok
[INFO] [stdout] test type_checker::test::test_struct_field_in_arithmetic ... ok
[INFO] [stdout] test type_checker::test::test_struct_creation_all_fields ... ok
[INFO] [stdout] test type_checker::test::test_struct_as_function_param ... ok
[INFO] [stdout] test type_checker::test::test_struct_field_access ... ok
[INFO] [stdout] test type_checker::test::test_subtraction_left_bool ... ok
[INFO] [stdout] test type_checker::test::test_struct_creation_missing_field ... ok
[INFO] [stdout] test type_checker::test::test_subtraction_both_sides_wrong ... ok
[INFO] [stdout] test type_checker::test::test_subtraction_valid ... ok
[INFO] [stdout] test type_checker::test::test_struct_creation_extra_field ... ok
[INFO] [stdout] test type_checker::test::test_triple_negation ... ok
[INFO] [stdout] test type_checker::test::test_struct_creation_duplicate_field ... ok
[INFO] [stdout] test type_checker::test::test_var_decl_complex_expr ... ok
[INFO] [stdout] test type_checker::test::test_var_decl_bool ... ok
[INFO] [stdout] test type_checker::test::test_struct_creation_wrong_field_type ... ok
[INFO] [stdout] test type_checker::test::test_while_comparison_condition ... ok
[INFO] [stdout] test type_checker::test::test_var_decl_with_arithmetic ... ok
[INFO] [stdout] test type_checker::test::test_while_int_condition ... ok
[INFO] [stdout] test type_checker::test::test_var_decl_int ... ok
[INFO] [stdout] test type_checker::test::test_while_empty_body ... ok
[INFO] [stdout] test type_checker::test::test_while_with_body ... ok
[INFO] [stdout] test type_checker::test::test_while_bool_condition ... ok
[INFO] [stdout] test type_checker::test::test_program_with_multiple_functions ... ok
[INFO] [stdout] test type_checker::test::test_var_decl_with_function_call ... ok
[INFO] [stdout] test type_checker::test::test_multiplication_right_bool ... ok
[INFO] [stdout] test type_checker::test::test_return_in_if_branch ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 275 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lang-173b555bd2db8e88)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/example_dir_test.rs (/opt/rustwide/target/debug/deps/example_dir_test-e1229604b281d2e0)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test compile_example_add ... FAILED
[INFO] [stdout] test compile_example_fn_add ... FAILED
[INFO] [stdout] test compile_example_while ... FAILED
[INFO] [stdout] test compile_example_yes ... FAILED
[INFO] [stdout] test compile_example_fib ... FAILED
[INFO] [stdout] test compile_example_cat ... FAILED
[INFO] [stdout] test compile_example_hello ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- compile_example_add stdout ----
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [],
[INFO] [stdout]     extern_fns: [],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 14,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 15,
[INFO] [stdout]                 end: 19,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 20,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 20,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 22,
[INFO] [stdout]                 end: 25,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 26,
[INFO] [stdout]                 end: 27,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 32,
[INFO] [stdout]                 end: 35,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 36,
[INFO] [stdout]                 end: 39,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 40,
[INFO] [stdout]                 end: 41,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 42,
[INFO] [stdout]                 end: 43,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 43,
[INFO] [stdout]                 end: 44,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 49,
[INFO] [stdout]                 end: 52,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 53,
[INFO] [stdout]                 end: 56,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 57,
[INFO] [stdout]                 end: 58,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 59,
[INFO] [stdout]                 end: 60,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 61,
[INFO] [stdout]                 end: 62,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 63,
[INFO] [stdout]                 end: 66,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 66,
[INFO] [stdout]                 end: 67,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 72,
[INFO] [stdout]                 end: 73,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 74,
[INFO] [stdout]                 end: 75,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 13,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "foo": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "bar": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "foo",
[INFO] [stdout]                 "bar",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [],
[INFO] [stdout]     extern_fns: [],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 14,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 15,
[INFO] [stdout]                 end: 19,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 20,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 20,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 22,
[INFO] [stdout]                 end: 25,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 26,
[INFO] [stdout]                 end: 27,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 32,
[INFO] [stdout]                 end: 35,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 36,
[INFO] [stdout]                 end: 39,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 40,
[INFO] [stdout]                 end: 41,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 42,
[INFO] [stdout]                 end: 43,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 43,
[INFO] [stdout]                 end: 44,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 49,
[INFO] [stdout]                 end: 52,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 53,
[INFO] [stdout]                 end: 56,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 57,
[INFO] [stdout]                 end: 58,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 59,
[INFO] [stdout]                 end: 60,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 61,
[INFO] [stdout]                 end: 62,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 63,
[INFO] [stdout]                 end: 66,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 66,
[INFO] [stdout]                 end: 67,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 72,
[INFO] [stdout]                 end: 73,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 74,
[INFO] [stdout]                 end: 75,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 18,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "foo": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "bar": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "foo",
[INFO] [stdout]                 "bar",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [],
[INFO] [stdout]     extern_fns: [],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 14,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 15,
[INFO] [stdout]                 end: 19,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 20,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 20,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 22,
[INFO] [stdout]                 end: 25,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 26,
[INFO] [stdout]                 end: 27,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 32,
[INFO] [stdout]                 end: 35,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 36,
[INFO] [stdout]                 end: 39,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 40,
[INFO] [stdout]                 end: 41,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 42,
[INFO] [stdout]                 end: 43,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 43,
[INFO] [stdout]                 end: 44,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 49,
[INFO] [stdout]                 end: 52,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 53,
[INFO] [stdout]                 end: 56,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 57,
[INFO] [stdout]                 end: 58,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 59,
[INFO] [stdout]                 end: 60,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 61,
[INFO] [stdout]                 end: 62,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 63,
[INFO] [stdout]                 end: 66,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 66,
[INFO] [stdout]                 end: 67,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 72,
[INFO] [stdout]                 end: 73,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 74,
[INFO] [stdout]                 end: 75,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 20,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "foo": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "bar": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "foo",
[INFO] [stdout]                 "bar",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [],
[INFO] [stdout]     extern_fns: [],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 14,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 15,
[INFO] [stdout]                 end: 19,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 20,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 20,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 22,
[INFO] [stdout]                 end: 25,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 26,
[INFO] [stdout]                 end: 27,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 32,
[INFO] [stdout]                 end: 35,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 36,
[INFO] [stdout]                 end: 39,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 40,
[INFO] [stdout]                 end: 41,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 42,
[INFO] [stdout]                 end: 43,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 43,
[INFO] [stdout]                 end: 44,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 49,
[INFO] [stdout]                 end: 52,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 53,
[INFO] [stdout]                 end: 56,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 57,
[INFO] [stdout]                 end: 58,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 59,
[INFO] [stdout]                 end: 60,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 61,
[INFO] [stdout]                 end: 62,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 63,
[INFO] [stdout]                 end: 66,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 66,
[INFO] [stdout]                 end: 67,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 72,
[INFO] [stdout]                 end: 73,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 74,
[INFO] [stdout]                 end: 75,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 22,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "foo": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "bar": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "foo",
[INFO] [stdout]                 "bar",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] RVSDG module created with 1 functions
[INFO] [stdout] 
[INFO] [stdout] thread 'compile_example_add' (302) panicked at src/lib.rs:181:45:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5cf2508d1612 - std::backtrace_rs::backtrace::libunwind::trace::h90e89fac33585832
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5cf2508d1612 - std::backtrace_rs::backtrace::trace_unsynchronized::heebcf2380a8e7359
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5cf2508d1612 - std::sys::backtrace::_print_fmt::hdf3e2a22d2f810db
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/sys/backtrace.rs:68:9
[INFO] [stdout]    3:     0x5cf2508d1612 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hac1d885928ba8582
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/sys/backtrace.rs:38:26
[INFO] [stdout]    4:     0x5cf2508e29f7 - core::fmt::rt::Argument::fmt::h6901eb7c19abebe8
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5cf2508e29f7 - core::fmt::write::h83ebb4d32483be9e
[INFO] [stdout]    6:     0x5cf25089eb56 - std::io::default_write_fmt::h751a79cdae495f10
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5cf25089eb56 - std::io::Write::write_fmt::h9ef514f8700ff7b2
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5cf2508afed9 - std::sys::backtrace::BacktraceLock::print::hcc2e1a3ac996c911
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/sys/backtrace.rs:41:9
[INFO] [stdout]    9:     0x5cf2508afed9 - std::panicking::default_hook::{{closure}}::h8e9c4d1276f0925f
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5cf2508afd71 - std::panicking::default_hook::h2b2078d38b534dfb
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5cf24ffac60e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h39d051e7dedac6a7
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5cf24ffac60e - test::test_main_with_exit_callback::{{closure}}::h4b005fe75814c302
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5cf2508b0152 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hd426070722c13cbf
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5cf2508b0152 - std::panicking::panic_with_hook::h39b739724e701bfd
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5cf2508aff98 - std::panicking::panic_handler::{{closure}}::he540c4833054e458
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5cf2508aaa99 - std::sys::backtrace::__rust_end_short_backtrace::hfa179d89deec8aed
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/sys/backtrace.rs:176:18
[INFO] [stdout]   17:     0x5cf250892c8d - __rustc[d131491b17107b07]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5cf2508ead2c - core::panicking::panic_fmt::ha564519d657d9c46
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5cf2508ea2e2 - core::result::unwrap_failed::h23873bb39ca9a844
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5cf25005773a - core::result::Result<T,E>::unwrap::hcc2d0922ddcb971e
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5cf25005773a - lang::ModParser::parse_file_with_config::hf2de8c06ad40cc97
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:181:45
[INFO] [stdout]   22:     0x5cf250053398 - lang::ModParser::parse_file::h80698e379aedebf7
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:65:9
[INFO] [stdout]   23:     0x5cf24ff8ac38 - example_dir_test::compile_example::hf77aae3adafb4809
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/example_dir_test.rs:14:5
[INFO] [stdout]   24:     0x5cf24ff8ad4f - example_dir_test::compile_example_add::{{closure}}::h05985b71f2ee16e8
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/example_dir_test.rs:20:5
[INFO] [stdout]   25:     0x5cf24ff8bd0e - core::ops::function::FnOnce::call_once::h5b31742e2ea41057
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x5cf24ffcc86e - serial_test::serial_code_lock::local_serial_core::h6e77a5f077f6eee5
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serial_test-3.2.0/src/serial_code_lock.rs:36:5
[INFO] [stdout]   27:     0x5cf24ff8ad1a - example_dir_test::compile_example_add::h8cb7d4fca2aa1550
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/example_dir_test.rs:18:1
[INFO] [stdout]   28:     0x5cf24ff8adf7 - example_dir_test::compile_example_add::{{closure}}::h947a43a3619ba2c1
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/example_dir_test.rs:19:25
[INFO] [stdout]   29:     0x5cf24ff8bf06 - core::ops::function::FnOnce::call_once::he5b3942a83b60fb8
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   30:     0x5cf24ffac43b - core::ops::function::FnOnce::call_once::h0217b30cfdee2e67
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   31:     0x5cf24ffac43b - test::__rust_begin_short_backtrace::h6d98714a1e28f556
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/test/src/lib.rs:663:18
[INFO] [stdout]   32:     0x5cf24ffbfdca - test::run_test_in_process::{{closure}}::he2c70d2634d3a3cc
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/test/src/lib.rs:686:74
[INFO] [stdout]   33:     0x5cf24ffbfdca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h40a0a825bcf17fdd
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   34:     0x5cf24ffbfdca - std::panicking::catch_unwind::do_call::h6c8eb5dd6e7b5975
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:581:40
[INFO] [stdout]   35:     0x5cf24ffbfdca - std::panicking::catch_unwind::h55455eac2972ad1e
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:544:19
[INFO] [stdout]   36:     0x5cf24ffbfdca - std::panic::catch_unwind::h0025465150a5e558
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panic.rs:359:14
[INFO] [stdout]   37:     0x5cf24ffbfdca - test::run_test_in_process::hb61e682f9b630fbc
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/test/src/lib.rs:686:27
[INFO] [stdout]   38:     0x5cf24ffbfdca - test::run_test::{{closure}}::hc2c2a7a38ab176e2
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/test/src/lib.rs:607:43
[INFO] [stdout]   39:     0x5cf24ff9a064 - test::run_test::{{closure}}::ha91867b85cd2a911
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/test/src/lib.rs:637:41
[INFO] [stdout]   40:     0x5cf24ff9a064 - std::sys::backtrace::__rust_begin_short_backtrace::ha00a9fe02049c339
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/sys/backtrace.rs:160:18
[INFO] [stdout]   41:     0x5cf24ff9d992 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd629fba9153dfb55
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/thread/lifecycle.rs:92:13
[INFO] [stdout]   42:     0x5cf24ff9d992 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4189018816a5c5d9
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   43:     0x5cf24ff9d992 - std::panicking::catch_unwind::do_call::hf9fcdbca3c2e9877
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:581:40
[INFO] [stdout]   44:     0x5cf24ff9d992 - std::panicking::catch_unwind::h97b92d88631c7c64
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panicking.rs:544:19
[INFO] [stdout]   45:     0x5cf24ff9d992 - std::panic::catch_unwind::ha77cdbb68e725e5e
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/panic.rs:359:14
[INFO] [stdout]   46:     0x5cf24ff9d992 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h511f05bc1a132253
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/thread/lifecycle.rs:90:26
[INFO] [stdout]   47:     0x5cf24ff9d992 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6b68b31e9b685cb8
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   48:     0x5cf2508a604f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h22a27d165e4e871d
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   49:     0x5cf2508a604f - std::sys::thread::unix::Thread::new::thread_start::h45cc87bb053add0f
[INFO] [stdout]                                at /rustc/254b59607d4417e9dffbc307138ae5c86280fe4c/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   50:     0x74def9e9daa4 - <unknown>
[INFO] [stdout]   51:     0x74def9f2aa64 - clone
[INFO] [stdout]   52:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- compile_example_fn_add stdout ----
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [],
[INFO] [stdout]     extern_fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 6,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 3,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         0,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         3,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         4,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         2,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             body: None,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 18,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ExternKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Str(
[INFO] [stdout]                 "C",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 23,
[INFO] [stdout]                 end: 24,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 113,
[INFO] [stdout]                 end: 115,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 116,
[INFO] [stdout]                 end: 122,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 122,
[INFO] [stdout]                 end: 123,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 123,
[INFO] [stdout]                 end: 126,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 127,
[INFO] [stdout]                 end: 128,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 128,
[INFO] [stdout]                 end: 132,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 132,
[INFO] [stdout]                 end: 133,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 134,
[INFO] [stdout]                 end: 141,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 142,
[INFO] [stdout]                 end: 143,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 143,
[INFO] [stdout]                 end: 147,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 147,
[INFO] [stdout]                 end: 148,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 149,
[INFO] [stdout]                 end: 154,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 155,
[INFO] [stdout]                 end: 158,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 158,
[INFO] [stdout]                 end: 159,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 163,
[INFO] [stdout]                 end: 164,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 165,
[INFO] [stdout]                 end: 166,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 168,
[INFO] [stdout]                 end: 170,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 171,
[INFO] [stdout]                 end: 175,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 175,
[INFO] [stdout]                 end: 176,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 176,
[INFO] [stdout]                 end: 177,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 182,
[INFO] [stdout]                 end: 183,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 188,
[INFO] [stdout]                 end: 192,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 192,
[INFO] [stdout]                 end: 193,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 193,
[INFO] [stdout]                 end: 194,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 194,
[INFO] [stdout]                 end: 215,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "testing calculation",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 216,
[INFO] [stdout]                 end: 217,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 217,
[INFO] [stdout]                 end: 218,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 219,
[INFO] [stdout]                 end: 220,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 222,
[INFO] [stdout]                 end: 224,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 225,
[INFO] [stdout]                 end: 228,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 228,
[INFO] [stdout]                 end: 229,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 229,
[INFO] [stdout]                 end: 233,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 234,
[INFO] [stdout]                 end: 237,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 237,
[INFO] [stdout]                 end: 238,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 239,
[INFO] [stdout]                 end: 243,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 244,
[INFO] [stdout]                 end: 247,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 247,
[INFO] [stdout]                 end: 248,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 253,
[INFO] [stdout]                 end: 254,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 259,
[INFO] [stdout]                 end: 263,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 264,
[INFO] [stdout]                 end: 265,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 266,
[INFO] [stdout]                 end: 270,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 271,
[INFO] [stdout]                 end: 272,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 274,
[INFO] [stdout]                 end: 276,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 277,
[INFO] [stdout]                 end: 281,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 281,
[INFO] [stdout]                 end: 282,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 282,
[INFO] [stdout]                 end: 289,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 290,
[INFO] [stdout]                 end: 291,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 291,
[INFO] [stdout]                 end: 295,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 295,
[INFO] [stdout]                 end: 296,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 297,
[INFO] [stdout]                 end: 300,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 301,
[INFO] [stdout]                 end: 302,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 307,
[INFO] [stdout]                 end: 310,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 311,
[INFO] [stdout]                 end: 312,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 313,
[INFO] [stdout]                 end: 314,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 315,
[INFO] [stdout]                 end: 316,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 316,
[INFO] [stdout]                 end: 317,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 322,
[INFO] [stdout]                 end: 325,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 326,
[INFO] [stdout]                 end: 327,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 328,
[INFO] [stdout]                 end: 329,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 330,
[INFO] [stdout]                 end: 331,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 332,
[INFO] [stdout]                 end: 333,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 334,
[INFO] [stdout]                 end: 335,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 335,
[INFO] [stdout]                 end: 336,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 341,
[INFO] [stdout]                 end: 344,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 345,
[INFO] [stdout]                 end: 346,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 347,
[INFO] [stdout]                 end: 348,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 349,
[INFO] [stdout]                 end: 352,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 352,
[INFO] [stdout]                 end: 353,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 353,
[INFO] [stdout]                 end: 354,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 354,
[INFO] [stdout]                 end: 355,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 356,
[INFO] [stdout]                 end: 357,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 358,
[INFO] [stdout]                 end: 359,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 360,
[INFO] [stdout]                 end: 361,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 361,
[INFO] [stdout]                 end: 362,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 362,
[INFO] [stdout]                 end: 363,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 368,
[INFO] [stdout]                 end: 374,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 374,
[INFO] [stdout]                 end: 375,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 375,
[INFO] [stdout]                 end: 376,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 376,
[INFO] [stdout]                 end: 388,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "%s z: %d\n",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 389,
[INFO] [stdout]                 end: 390,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 391,
[INFO] [stdout]                 end: 398,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 398,
[INFO] [stdout]                 end: 399,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 400,
[INFO] [stdout]                 end: 401,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 401,
[INFO] [stdout]                 end: 402,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 403,
[INFO] [stdout]                 end: 404,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 30,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "CStr": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "printf": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "calc": IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num2": IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "message": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num1": IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "str": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "z": IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "y": IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "add": IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "x": IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "total": IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "printf",
[INFO] [stdout]                 "str",
[INFO] [stdout]                 "CStr",
[INFO] [stdout]                 "message",
[INFO] [stdout]                 "total",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "calc",
[INFO] [stdout]                 "add",
[INFO] [stdout]                 "num1",
[INFO] [stdout]                 "num2",
[INFO] [stdout]                 "x",
[INFO] [stdout]                 "y",
[INFO] [stdout]                 "z",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [],
[INFO] [stdout]     extern_fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 6,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 3,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         0,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         3,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         4,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         2,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             body: None,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 18,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ExternKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Str(
[INFO] [stdout]                 "C",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 23,
[INFO] [stdout]                 end: 24,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 113,
[INFO] [stdout]                 end: 115,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 116,
[INFO] [stdout]                 end: 122,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 122,
[INFO] [stdout]                 end: 123,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 123,
[INFO] [stdout]                 end: 126,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 127,
[INFO] [stdout]                 end: 128,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 128,
[INFO] [stdout]                 end: 132,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 132,
[INFO] [stdout]                 end: 133,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 134,
[INFO] [stdout]                 end: 141,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 142,
[INFO] [stdout]                 end: 143,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 143,
[INFO] [stdout]                 end: 147,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 147,
[INFO] [stdout]                 end: 148,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 149,
[INFO] [stdout]                 end: 154,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 155,
[INFO] [stdout]                 end: 158,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 158,
[INFO] [stdout]                 end: 159,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 163,
[INFO] [stdout]                 end: 164,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 165,
[INFO] [stdout]                 end: 166,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 168,
[INFO] [stdout]                 end: 170,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 171,
[INFO] [stdout]                 end: 175,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 175,
[INFO] [stdout]                 end: 176,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 176,
[INFO] [stdout]                 end: 177,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 182,
[INFO] [stdout]                 end: 183,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 188,
[INFO] [stdout]                 end: 192,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 192,
[INFO] [stdout]                 end: 193,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 193,
[INFO] [stdout]                 end: 194,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 194,
[INFO] [stdout]                 end: 215,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "testing calculation",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 216,
[INFO] [stdout]                 end: 217,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 217,
[INFO] [stdout]                 end: 218,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 219,
[INFO] [stdout]                 end: 220,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 222,
[INFO] [stdout]                 end: 224,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 225,
[INFO] [stdout]                 end: 228,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 228,
[INFO] [stdout]                 end: 229,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 229,
[INFO] [stdout]                 end: 233,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 234,
[INFO] [stdout]                 end: 237,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 237,
[INFO] [stdout]                 end: 238,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 239,
[INFO] [stdout]                 end: 243,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 244,
[INFO] [stdout]                 end: 247,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 247,
[INFO] [stdout]                 end: 248,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 253,
[INFO] [stdout]                 end: 254,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 259,
[INFO] [stdout]                 end: 263,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 264,
[INFO] [stdout]                 end: 265,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 266,
[INFO] [stdout]                 end: 270,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 271,
[INFO] [stdout]                 end: 272,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 274,
[INFO] [stdout]                 end: 276,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 277,
[INFO] [stdout]                 end: 281,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 281,
[INFO] [stdout]                 end: 282,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 282,
[INFO] [stdout]                 end: 289,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 290,
[INFO] [stdout]                 end: 291,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 291,
[INFO] [stdout]                 end: 295,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 295,
[INFO] [stdout]                 end: 296,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 297,
[INFO] [stdout]                 end: 300,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 301,
[INFO] [stdout]                 end: 302,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 307,
[INFO] [stdout]                 end: 310,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 311,
[INFO] [stdout]                 end: 312,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 313,
[INFO] [stdout]                 end: 314,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 315,
[INFO] [stdout]                 end: 316,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 316,
[INFO] [stdout]                 end: 317,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 322,
[INFO] [stdout]                 end: 325,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 326,
[INFO] [stdout]                 end: 327,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 328,
[INFO] [stdout]                 end: 329,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 330,
[INFO] [stdout]                 end: 331,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 332,
[INFO] [stdout]                 end: 333,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 334,
[INFO] [stdout]                 end: 335,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 335,
[INFO] [stdout]                 end: 336,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 341,
[INFO] [stdout]                 end: 344,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 345,
[INFO] [stdout]                 end: 346,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 347,
[INFO] [stdout]                 end: 348,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 349,
[INFO] [stdout]                 end: 352,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 352,
[INFO] [stdout]                 end: 353,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 353,
[INFO] [stdout]                 end: 354,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 354,
[INFO] [stdout]                 end: 355,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 356,
[INFO] [stdout]                 end: 357,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 358,
[INFO] [stdout]                 end: 359,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 360,
[INFO] [stdout]                 end: 361,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 361,
[INFO] [stdout]                 end: 362,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 362,
[INFO] [stdout]                 end: 363,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 368,
[INFO] [stdout]                 end: 374,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 374,
[INFO] [stdout]                 end: 375,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 375,
[INFO] [stdout]                 end: 376,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 376,
[INFO] [stdout]                 end: 388,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "%s z: %d\n",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 389,
[INFO] [stdout]                 end: 390,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 391,
[INFO] [stdout]                 end: 398,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 398,
[INFO] [stdout]                 end: 399,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 400,
[INFO] [stdout]                 end: 401,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 401,
[INFO] [stdout]                 end: 402,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 403,
[INFO] [stdout]                 end: 404,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 32,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "CStr": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "printf": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "calc": IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num2": IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "message": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num1": IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "str": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "z": IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "y": IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "add": IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "x": IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "total": IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "printf",
[INFO] [stdout]                 "str",
[INFO] [stdout]                 "CStr",
[INFO] [stdout]                 "message",
[INFO] [stdout]                 "total",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "calc",
[INFO] [stdout]                 "add",
[INFO] [stdout]                 "num1",
[INFO] [stdout]                 "num2",
[INFO] [stdout]                 "x",
[INFO] [stdout]                 "y",
[INFO] [stdout]                 "z",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [],
[INFO] [stdout]     extern_fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 6,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 3,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         0,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         3,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         4,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         2,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             body: None,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 18,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ExternKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Str(
[INFO] [stdout]                 "C",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 23,
[INFO] [stdout]                 end: 24,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 113,
[INFO] [stdout]                 end: 115,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 116,
[INFO] [stdout]                 end: 122,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 122,
[INFO] [stdout]                 end: 123,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 123,
[INFO] [stdout]                 end: 126,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 127,
[INFO] [stdout]                 end: 128,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 128,
[INFO] [stdout]                 end: 132,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 132,
[INFO] [stdout]                 end: 133,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 134,
[INFO] [stdout]                 end: 141,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 142,
[INFO] [stdout]                 end: 143,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 143,
[INFO] [stdout]                 end: 147,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 147,
[INFO] [stdout]                 end: 148,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 149,
[INFO] [stdout]                 end: 154,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 155,
[INFO] [stdout]                 end: 158,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 158,
[INFO] [stdout]                 end: 159,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 163,
[INFO] [stdout]                 end: 164,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 165,
[INFO] [stdout]                 end: 166,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 168,
[INFO] [stdout]                 end: 170,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 171,
[INFO] [stdout]                 end: 175,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 175,
[INFO] [stdout]                 end: 176,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 176,
[INFO] [stdout]                 end: 177,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 182,
[INFO] [stdout]                 end: 183,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 188,
[INFO] [stdout]                 end: 192,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 192,
[INFO] [stdout]                 end: 193,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 193,
[INFO] [stdout]                 end: 194,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 194,
[INFO] [stdout]                 end: 215,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "testing calculation",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 216,
[INFO] [stdout]                 end: 217,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 217,
[INFO] [stdout]                 end: 218,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 219,
[INFO] [stdout]                 end: 220,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 222,
[INFO] [stdout]                 end: 224,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 225,
[INFO] [stdout]                 end: 228,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 228,
[INFO] [stdout]                 end: 229,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 229,
[INFO] [stdout]                 end: 233,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 234,
[INFO] [stdout]                 end: 237,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 237,
[INFO] [stdout]                 end: 238,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 239,
[INFO] [stdout]                 end: 243,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 244,
[INFO] [stdout]                 end: 247,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 247,
[INFO] [stdout]                 end: 248,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 253,
[INFO] [stdout]                 end: 254,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 259,
[INFO] [stdout]                 end: 263,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 264,
[INFO] [stdout]                 end: 265,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 266,
[INFO] [stdout]                 end: 270,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 271,
[INFO] [stdout]                 end: 272,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 274,
[INFO] [stdout]                 end: 276,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 277,
[INFO] [stdout]                 end: 281,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 281,
[INFO] [stdout]                 end: 282,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 282,
[INFO] [stdout]                 end: 289,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 290,
[INFO] [stdout]                 end: 291,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 291,
[INFO] [stdout]                 end: 295,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 295,
[INFO] [stdout]                 end: 296,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 297,
[INFO] [stdout]                 end: 300,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 301,
[INFO] [stdout]                 end: 302,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 307,
[INFO] [stdout]                 end: 310,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 311,
[INFO] [stdout]                 end: 312,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 313,
[INFO] [stdout]                 end: 314,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 315,
[INFO] [stdout]                 end: 316,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 316,
[INFO] [stdout]                 end: 317,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 322,
[INFO] [stdout]                 end: 325,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 326,
[INFO] [stdout]                 end: 327,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 328,
[INFO] [stdout]                 end: 329,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 330,
[INFO] [stdout]                 end: 331,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 332,
[INFO] [stdout]                 end: 333,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 334,
[INFO] [stdout]                 end: 335,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 335,
[INFO] [stdout]                 end: 336,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 341,
[INFO] [stdout]                 end: 344,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 345,
[INFO] [stdout]                 end: 346,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 347,
[INFO] [stdout]                 end: 348,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 349,
[INFO] [stdout]                 end: 352,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 352,
[INFO] [stdout]                 end: 353,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 353,
[INFO] [stdout]                 end: 354,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 354,
[INFO] [stdout]                 end: 355,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 356,
[INFO] [stdout]                 end: 357,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 358,
[INFO] [stdout]                 end: 359,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 360,
[INFO] [stdout]                 end: 361,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 361,
[INFO] [stdout]                 end: 362,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 362,
[INFO] [stdout]                 end: 363,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 368,
[INFO] [stdout]                 end: 374,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 374,
[INFO] [stdout]                 end: 375,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 375,
[INFO] [stdout]                 end: 376,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 376,
[INFO] [stdout]                 end: 388,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "%s z: %d\n",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 389,
[INFO] [stdout]                 end: 390,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 391,
[INFO] [stdout]                 end: 398,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 398,
[INFO] [stdout]                 end: 399,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 400,
[INFO] [stdout]                 end: 401,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 401,
[INFO] [stdout]                 end: 402,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 403,
[INFO] [stdout]                 end: 404,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 33,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "CStr": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "printf": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "calc": IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num2": IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "message": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num1": IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "str": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "z": IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "y": IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "add": IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "x": IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "total": IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "printf",
[INFO] [stdout]                 "str",
[INFO] [stdout]                 "CStr",
[INFO] [stdout]                 "message",
[INFO] [stdout]                 "total",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "calc",
[INFO] [stdout]                 "add",
[INFO] [stdout]                 "num1",
[INFO] [stdout]                 "num2",
[INFO] [stdout]                 "x",
[INFO] [stdout]                 "y",
[INFO] [stdout]                 "z",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 23,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 6,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 4,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             body: Some(
[INFO] [stdout]                 AstBlock {
[INFO] [stdout]                     block_open_token_at: 28,
[INFO] [stdout]                     block_close_token_at: 35,
[INFO] [stdout]                     statements: [
[INFO] [stdout]                         AstStatement {
[INFO] [stdout]                             start_token_at: 29,
[INFO] [stdout]                             kind: Expr(
[INFO] [stdout]                                 AstExpr {
[INFO] [stdout]                                     span: Span {
[INFO] [stdout]                                         start: 188,
[INFO] [stdout]                                         end: 218,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     kind: Op(
[INFO] [stdout]                                         FnCall {
[INFO] [stdout]                                             ident: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 188,
[INFO] [stdout]                                                     end: 192,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 7,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                             args: [
[INFO] [stdout]                                                 AstExpr {
[INFO] [stdout]                                                     span: Span {
[INFO] [stdout]                                                         start: 193,
[INFO] [stdout]                                                         end: 215,
[INFO] [stdout]                                                     },
[INFO] [stdout]                                                     kind: Op(
[INFO] [stdout]                                                         Ref(
[INFO] [stdout]                                                             AstExpr {
[INFO] [stdout]                                                                 span: Span {
[INFO] [stdout]                                                                     start: 194,
[INFO] [stdout]                                                                     end: 215,
[INFO] [stdout]                                                                 },
[INFO] [stdout]                                                                 kind: Atom(
[INFO] [stdout]                                                                     CStr(
[INFO] [stdout]                                                                         32,
[INFO] [stdout]                                                                     ),
[INFO] [stdout]                                                                 ),
[INFO] [stdout]                                                                 type_id: None,
[INFO] [stdout]                                                                 expr_count: 1,
[INFO] [stdout]                                                             },
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                     type_id: None,
[INFO] [stdout]                                                     expr_count: 2,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                             ],
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     type_id: None,
[INFO] [stdout]                                     expr_count: 3,
[INFO] [stdout]                                 },
[INFO] [stdout]                             ),
[INFO] [stdout]                             expr_count: 3,
[INFO] [stdout]                         },
[INFO] [stdout]                     ],
[INFO] [stdout]                     type_id: None,
[INFO] [stdout]                     expr_count: 4,
[INFO] [stdout]                 },
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     extern_fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 6,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 3,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         0,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         3,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         4,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         2,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             body: None,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 18,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ExternKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Str(
[INFO] [stdout]                 "C",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 23,
[INFO] [stdout]                 end: 24,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 113,
[INFO] [stdout]                 end: 115,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 116,
[INFO] [stdout]                 end: 122,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 122,
[INFO] [stdout]                 end: 123,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 123,
[INFO] [stdout]                 end: 126,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 127,
[INFO] [stdout]                 end: 128,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 128,
[INFO] [stdout]                 end: 132,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 132,
[INFO] [stdout]                 end: 133,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 134,
[INFO] [stdout]                 end: 141,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 142,
[INFO] [stdout]                 end: 143,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 143,
[INFO] [stdout]                 end: 147,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 147,
[INFO] [stdout]                 end: 148,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 149,
[INFO] [stdout]                 end: 154,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 155,
[INFO] [stdout]                 end: 158,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 158,
[INFO] [stdout]                 end: 159,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 163,
[INFO] [stdout]                 end: 164,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 165,
[INFO] [stdout]                 end: 166,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 168,
[INFO] [stdout]                 end: 170,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 171,
[INFO] [stdout]                 end: 175,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 175,
[INFO] [stdout]                 end: 176,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 176,
[INFO] [stdout]                 end: 177,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 182,
[INFO] [stdout]                 end: 183,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 188,
[INFO] [stdout]                 end: 192,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 192,
[INFO] [stdout]                 end: 193,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 193,
[INFO] [stdout]                 end: 194,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 194,
[INFO] [stdout]                 end: 215,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "testing calculation",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 216,
[INFO] [stdout]                 end: 217,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 217,
[INFO] [stdout]                 end: 218,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 219,
[INFO] [stdout]                 end: 220,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 222,
[INFO] [stdout]                 end: 224,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 225,
[INFO] [stdout]                 end: 228,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 228,
[INFO] [stdout]                 end: 229,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 229,
[INFO] [stdout]                 end: 233,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 234,
[INFO] [stdout]                 end: 237,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 237,
[INFO] [stdout]                 end: 238,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 239,
[INFO] [stdout]                 end: 243,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 244,
[INFO] [stdout]                 end: 247,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 247,
[INFO] [stdout]                 end: 248,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 253,
[INFO] [stdout]                 end: 254,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 259,
[INFO] [stdout]                 end: 263,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 264,
[INFO] [stdout]                 end: 265,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 266,
[INFO] [stdout]                 end: 270,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 271,
[INFO] [stdout]                 end: 272,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 274,
[INFO] [stdout]                 end: 276,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 277,
[INFO] [stdout]                 end: 281,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 281,
[INFO] [stdout]                 end: 282,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 282,
[INFO] [stdout]                 end: 289,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 290,
[INFO] [stdout]                 end: 291,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 291,
[INFO] [stdout]                 end: 295,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 295,
[INFO] [stdout]                 end: 296,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 297,
[INFO] [stdout]                 end: 300,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 301,
[INFO] [stdout]                 end: 302,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 307,
[INFO] [stdout]                 end: 310,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 311,
[INFO] [stdout]                 end: 312,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 313,
[INFO] [stdout]                 end: 314,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 315,
[INFO] [stdout]                 end: 316,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 316,
[INFO] [stdout]                 end: 317,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 322,
[INFO] [stdout]                 end: 325,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 326,
[INFO] [stdout]                 end: 327,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 328,
[INFO] [stdout]                 end: 329,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 330,
[INFO] [stdout]                 end: 331,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 332,
[INFO] [stdout]                 end: 333,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 334,
[INFO] [stdout]                 end: 335,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 335,
[INFO] [stdout]                 end: 336,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 341,
[INFO] [stdout]                 end: 344,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 345,
[INFO] [stdout]                 end: 346,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 347,
[INFO] [stdout]                 end: 348,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 349,
[INFO] [stdout]                 end: 352,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 352,
[INFO] [stdout]                 end: 353,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 353,
[INFO] [stdout]                 end: 354,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 354,
[INFO] [stdout]                 end: 355,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 356,
[INFO] [stdout]                 end: 357,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 358,
[INFO] [stdout]                 end: 359,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 360,
[INFO] [stdout]                 end: 361,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 361,
[INFO] [stdout]                 end: 362,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 362,
[INFO] [stdout]                 end: 363,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 368,
[INFO] [stdout]                 end: 374,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 374,
[INFO] [stdout]                 end: 375,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 375,
[INFO] [stdout]                 end: 376,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 376,
[INFO] [stdout]                 end: 388,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "%s z: %d\n",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 389,
[INFO] [stdout]                 end: 390,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 391,
[INFO] [stdout]                 end: 398,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 398,
[INFO] [stdout]                 end: 399,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 400,
[INFO] [stdout]                 end: 401,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 401,
[INFO] [stdout]                 end: 402,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 403,
[INFO] [stdout]                 end: 404,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 48,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "CStr": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "printf": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "calc": IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num2": IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "message": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num1": IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "str": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "z": IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "y": IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "add": IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "x": IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "total": IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "printf",
[INFO] [stdout]                 "str",
[INFO] [stdout]                 "CStr",
[INFO] [stdout]                 "message",
[INFO] [stdout]                 "total",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "calc",
[INFO] [stdout]                 "add",
[INFO] [stdout]                 "num1",
[INFO] [stdout]                 "num2",
[INFO] [stdout]                 "x",
[INFO] [stdout]                 "y",
[INFO] [stdout]                 "z",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 23,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 6,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 4,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             body: Some(
[INFO] [stdout]                 AstBlock {
[INFO] [stdout]                     block_open_token_at: 28,
[INFO] [stdout]                     block_close_token_at: 35,
[INFO] [stdout]                     statements: [
[INFO] [stdout]                         AstStatement {
[INFO] [stdout]                             start_token_at: 29,
[INFO] [stdout]                             kind: Expr(
[INFO] [stdout]                                 AstExpr {
[INFO] [stdout]                                     span: Span {
[INFO] [stdout]                                         start: 188,
[INFO] [stdout]                                         end: 218,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     kind: Op(
[INFO] [stdout]                                         FnCall {
[INFO] [stdout]                                             ident: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 188,
[INFO] [stdout]                                                     end: 192,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 7,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                             args: [
[INFO] [stdout]                                                 AstExpr {
[INFO] [stdout]                                                     span: Span {
[INFO] [stdout]                                                         start: 193,
[INFO] [stdout]                                                         end: 215,
[INFO] [stdout]                                                     },
[INFO] [stdout]                                                     kind: Op(
[INFO] [stdout]                                                         Ref(
[INFO] [stdout]                                                             AstExpr {
[INFO] [stdout]                                                                 span: Span {
[INFO] [stdout]                                                                     start: 194,
[INFO] [stdout]                                                                     end: 215,
[INFO] [stdout]                                                                 },
[INFO] [stdout]                                                                 kind: Atom(
[INFO] [stdout]                                                                     CStr(
[INFO] [stdout]                                                                         32,
[INFO] [stdout]                                                                     ),
[INFO] [stdout]                                                                 ),
[INFO] [stdout]                                                                 type_id: None,
[INFO] [stdout]                                                                 expr_count: 1,
[INFO] [stdout]                                                             },
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                     type_id: None,
[INFO] [stdout]                                                     expr_count: 2,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                             ],
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     type_id: None,
[INFO] [stdout]                                     expr_count: 3,
[INFO] [stdout]                                 },
[INFO] [stdout]                             ),
[INFO] [stdout]                             expr_count: 3,
[INFO] [stdout]                         },
[INFO] [stdout]                     ],
[INFO] [stdout]                     type_id: None,
[INFO] [stdout]                     expr_count: 4,
[INFO] [stdout]                 },
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     extern_fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 6,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 3,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         0,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         3,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         4,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         2,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             body: None,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 18,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ExternKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Str(
[INFO] [stdout]                 "C",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 23,
[INFO] [stdout]                 end: 24,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 113,
[INFO] [stdout]                 end: 115,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 116,
[INFO] [stdout]                 end: 122,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 122,
[INFO] [stdout]                 end: 123,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 123,
[INFO] [stdout]                 end: 126,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 127,
[INFO] [stdout]                 end: 128,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 128,
[INFO] [stdout]                 end: 132,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 132,
[INFO] [stdout]                 end: 133,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 134,
[INFO] [stdout]                 end: 141,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 142,
[INFO] [stdout]                 end: 143,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 143,
[INFO] [stdout]                 end: 147,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 147,
[INFO] [stdout]                 end: 148,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 149,
[INFO] [stdout]                 end: 154,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 155,
[INFO] [stdout]                 end: 158,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 158,
[INFO] [stdout]                 end: 159,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 163,
[INFO] [stdout]                 end: 164,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 165,
[INFO] [stdout]                 end: 166,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 168,
[INFO] [stdout]                 end: 170,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 171,
[INFO] [stdout]                 end: 175,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 175,
[INFO] [stdout]                 end: 176,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 176,
[INFO] [stdout]                 end: 177,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 182,
[INFO] [stdout]                 end: 183,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 188,
[INFO] [stdout]                 end: 192,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 192,
[INFO] [stdout]                 end: 193,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 193,
[INFO] [stdout]                 end: 194,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 194,
[INFO] [stdout]                 end: 215,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "testing calculation",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 216,
[INFO] [stdout]                 end: 217,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 217,
[INFO] [stdout]                 end: 218,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 219,
[INFO] [stdout]                 end: 220,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 222,
[INFO] [stdout]                 end: 224,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 225,
[INFO] [stdout]                 end: 228,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 228,
[INFO] [stdout]                 end: 229,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 229,
[INFO] [stdout]                 end: 233,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 234,
[INFO] [stdout]                 end: 237,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 237,
[INFO] [stdout]                 end: 238,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 239,
[INFO] [stdout]                 end: 243,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 244,
[INFO] [stdout]                 end: 247,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 247,
[INFO] [stdout]                 end: 248,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 253,
[INFO] [stdout]                 end: 254,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 259,
[INFO] [stdout]                 end: 263,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 264,
[INFO] [stdout]                 end: 265,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 266,
[INFO] [stdout]                 end: 270,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 271,
[INFO] [stdout]                 end: 272,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 274,
[INFO] [stdout]                 end: 276,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 277,
[INFO] [stdout]                 end: 281,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 281,
[INFO] [stdout]                 end: 282,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 282,
[INFO] [stdout]                 end: 289,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 290,
[INFO] [stdout]                 end: 291,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 291,
[INFO] [stdout]                 end: 295,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 295,
[INFO] [stdout]                 end: 296,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 297,
[INFO] [stdout]                 end: 300,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 301,
[INFO] [stdout]                 end: 302,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 307,
[INFO] [stdout]                 end: 310,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 311,
[INFO] [stdout]                 end: 312,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 313,
[INFO] [stdout]                 end: 314,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 315,
[INFO] [stdout]                 end: 316,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 316,
[INFO] [stdout]                 end: 317,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 322,
[INFO] [stdout]                 end: 325,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 326,
[INFO] [stdout]                 end: 327,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 328,
[INFO] [stdout]                 end: 329,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 330,
[INFO] [stdout]                 end: 331,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 332,
[INFO] [stdout]                 end: 333,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 334,
[INFO] [stdout]                 end: 335,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 335,
[INFO] [stdout]                 end: 336,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 341,
[INFO] [stdout]                 end: 344,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 345,
[INFO] [stdout]                 end: 346,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 347,
[INFO] [stdout]                 end: 348,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 349,
[INFO] [stdout]                 end: 352,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 352,
[INFO] [stdout]                 end: 353,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 353,
[INFO] [stdout]                 end: 354,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 354,
[INFO] [stdout]                 end: 355,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 356,
[INFO] [stdout]                 end: 357,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 358,
[INFO] [stdout]                 end: 359,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 360,
[INFO] [stdout]                 end: 361,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 361,
[INFO] [stdout]                 end: 362,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 362,
[INFO] [stdout]                 end: 363,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 368,
[INFO] [stdout]                 end: 374,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 374,
[INFO] [stdout]                 end: 375,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 375,
[INFO] [stdout]                 end: 376,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 376,
[INFO] [stdout]                 end: 388,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "%s z: %d\n",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 389,
[INFO] [stdout]                 end: 390,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 391,
[INFO] [stdout]                 end: 398,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 398,
[INFO] [stdout]                 end: 399,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 400,
[INFO] [stdout]                 end: 401,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 401,
[INFO] [stdout]                 end: 402,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 403,
[INFO] [stdout]                 end: 404,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 50,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "CStr": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "printf": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "calc": IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num2": IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "message": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num1": IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "str": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "z": IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "y": IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "add": IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "x": IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "total": IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "printf",
[INFO] [stdout]                 "str",
[INFO] [stdout]                 "CStr",
[INFO] [stdout]                 "message",
[INFO] [stdout]                 "total",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "calc",
[INFO] [stdout]                 "add",
[INFO] [stdout]                 "num1",
[INFO] [stdout]                 "num2",
[INFO] [stdout]                 "x",
[INFO] [stdout]                 "y",
[INFO] [stdout]                 "z",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 23,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 6,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 4,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             body: Some(
[INFO] [stdout]                 AstBlock {
[INFO] [stdout]                     block_open_token_at: 28,
[INFO] [stdout]                     block_close_token_at: 35,
[INFO] [stdout]                     statements: [
[INFO] [stdout]                         AstStatement {
[INFO] [stdout]                             start_token_at: 29,
[INFO] [stdout]                             kind: Expr(
[INFO] [stdout]                                 AstExpr {
[INFO] [stdout]                                     span: Span {
[INFO] [stdout]                                         start: 188,
[INFO] [stdout]                                         end: 218,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     kind: Op(
[INFO] [stdout]                                         FnCall {
[INFO] [stdout]                                             ident: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 188,
[INFO] [stdout]                                                     end: 192,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 7,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                             args: [
[INFO] [stdout]                                                 AstExpr {
[INFO] [stdout]                                                     span: Span {
[INFO] [stdout]                                                         start: 193,
[INFO] [stdout]                                                         end: 215,
[INFO] [stdout]                                                     },
[INFO] [stdout]                                                     kind: Op(
[INFO] [stdout]                                                         Ref(
[INFO] [stdout]                                                             AstExpr {
[INFO] [stdout]                                                                 span: Span {
[INFO] [stdout]                                                                     start: 194,
[INFO] [stdout]                                                                     end: 215,
[INFO] [stdout]                                                                 },
[INFO] [stdout]                                                                 kind: Atom(
[INFO] [stdout]                                                                     CStr(
[INFO] [stdout]                                                                         32,
[INFO] [stdout]                                                                     ),
[INFO] [stdout]                                                                 ),
[INFO] [stdout]                                                                 type_id: None,
[INFO] [stdout]                                                                 expr_count: 1,
[INFO] [stdout]                                                             },
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                     type_id: None,
[INFO] [stdout]                                                     expr_count: 2,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                             ],
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     type_id: None,
[INFO] [stdout]                                     expr_count: 3,
[INFO] [stdout]                                 },
[INFO] [stdout]                             ),
[INFO] [stdout]                             expr_count: 3,
[INFO] [stdout]                         },
[INFO] [stdout]                     ],
[INFO] [stdout]                     type_id: None,
[INFO] [stdout]                     expr_count: 4,
[INFO] [stdout]                 },
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 36,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 8,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 7,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         9,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         5,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         10,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         6,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             body: Some(
[INFO] [stdout]                 AstBlock {
[INFO] [stdout]                     block_open_token_at: 46,
[INFO] [stdout]                     block_close_token_at: 50,
[INFO] [stdout]                     statements: [
[INFO] [stdout]                         AstStatement {
[INFO] [stdout]                             start_token_at: 47,
[INFO] [stdout]                             kind: BlockReturn {
[INFO] [stdout]                                 expr: AstExpr {
[INFO] [stdout]                                     span: Span {
[INFO] [stdout]                                         start: 259,
[INFO] [stdout]                                         end: 272,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     kind: Op(
[INFO] [stdout]                                         Add {
[INFO] [stdout]                                             left: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 259,
[INFO] [stdout]                                                     end: 263,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 9,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                             right: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 266,
[INFO] [stdout]                                                     end: 270,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 10,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     type_id: None,
[INFO] [stdout]                                     expr_count: 3,
[INFO] [stdout]                                 },
[INFO] [stdout]                                 is_fn_return: true,
[INFO] [stdout]                             },
[INFO] [stdout]                             expr_count: 3,
[INFO] [stdout]                         },
[INFO] [stdout]                     ],
[INFO] [stdout]                     type_id: None,
[INFO] [stdout]                     expr_count: 4,
[INFO] [stdout]                 },
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     extern_fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 6,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 3,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         0,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         3,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         4,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         2,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             body: None,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 18,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ExternKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Str(
[INFO] [stdout]                 "C",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 23,
[INFO] [stdout]                 end: 24,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 113,
[INFO] [stdout]                 end: 115,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 116,
[INFO] [stdout]                 end: 122,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 122,
[INFO] [stdout]                 end: 123,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 123,
[INFO] [stdout]                 end: 126,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 127,
[INFO] [stdout]                 end: 128,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 128,
[INFO] [stdout]                 end: 132,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 132,
[INFO] [stdout]                 end: 133,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 134,
[INFO] [stdout]                 end: 141,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 142,
[INFO] [stdout]                 end: 143,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 143,
[INFO] [stdout]                 end: 147,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 147,
[INFO] [stdout]                 end: 148,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 149,
[INFO] [stdout]                 end: 154,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 155,
[INFO] [stdout]                 end: 158,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 158,
[INFO] [stdout]                 end: 159,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 163,
[INFO] [stdout]                 end: 164,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 165,
[INFO] [stdout]                 end: 166,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 168,
[INFO] [stdout]                 end: 170,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 171,
[INFO] [stdout]                 end: 175,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 175,
[INFO] [stdout]                 end: 176,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 176,
[INFO] [stdout]                 end: 177,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 182,
[INFO] [stdout]                 end: 183,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 188,
[INFO] [stdout]                 end: 192,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 192,
[INFO] [stdout]                 end: 193,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 193,
[INFO] [stdout]                 end: 194,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 194,
[INFO] [stdout]                 end: 215,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "testing calculation",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 216,
[INFO] [stdout]                 end: 217,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 217,
[INFO] [stdout]                 end: 218,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 219,
[INFO] [stdout]                 end: 220,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 222,
[INFO] [stdout]                 end: 224,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 225,
[INFO] [stdout]                 end: 228,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 228,
[INFO] [stdout]                 end: 229,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 229,
[INFO] [stdout]                 end: 233,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 234,
[INFO] [stdout]                 end: 237,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 237,
[INFO] [stdout]                 end: 238,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 239,
[INFO] [stdout]                 end: 243,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 244,
[INFO] [stdout]                 end: 247,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 247,
[INFO] [stdout]                 end: 248,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 253,
[INFO] [stdout]                 end: 254,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 259,
[INFO] [stdout]                 end: 263,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 264,
[INFO] [stdout]                 end: 265,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 266,
[INFO] [stdout]                 end: 270,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 271,
[INFO] [stdout]                 end: 272,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 274,
[INFO] [stdout]                 end: 276,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 277,
[INFO] [stdout]                 end: 281,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 281,
[INFO] [stdout]                 end: 282,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 282,
[INFO] [stdout]                 end: 289,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 290,
[INFO] [stdout]                 end: 291,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 291,
[INFO] [stdout]                 end: 295,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 295,
[INFO] [stdout]                 end: 296,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 297,
[INFO] [stdout]                 end: 300,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 301,
[INFO] [stdout]                 end: 302,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 307,
[INFO] [stdout]                 end: 310,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 311,
[INFO] [stdout]                 end: 312,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 313,
[INFO] [stdout]                 end: 314,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 315,
[INFO] [stdout]                 end: 316,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 316,
[INFO] [stdout]                 end: 317,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 322,
[INFO] [stdout]                 end: 325,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 326,
[INFO] [stdout]                 end: 327,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 328,
[INFO] [stdout]                 end: 329,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 330,
[INFO] [stdout]                 end: 331,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 332,
[INFO] [stdout]                 end: 333,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 334,
[INFO] [stdout]                 end: 335,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 335,
[INFO] [stdout]                 end: 336,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 341,
[INFO] [stdout]                 end: 344,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 345,
[INFO] [stdout]                 end: 346,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 347,
[INFO] [stdout]                 end: 348,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 349,
[INFO] [stdout]                 end: 352,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 352,
[INFO] [stdout]                 end: 353,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 353,
[INFO] [stdout]                 end: 354,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 354,
[INFO] [stdout]                 end: 355,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 356,
[INFO] [stdout]                 end: 357,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 358,
[INFO] [stdout]                 end: 359,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 360,
[INFO] [stdout]                 end: 361,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 361,
[INFO] [stdout]                 end: 362,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 362,
[INFO] [stdout]                 end: 363,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 368,
[INFO] [stdout]                 end: 374,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 374,
[INFO] [stdout]                 end: 375,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 375,
[INFO] [stdout]                 end: 376,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 376,
[INFO] [stdout]                 end: 388,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "%s z: %d\n",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 389,
[INFO] [stdout]                 end: 390,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 391,
[INFO] [stdout]                 end: 398,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 398,
[INFO] [stdout]                 end: 399,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 400,
[INFO] [stdout]                 end: 401,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 401,
[INFO] [stdout]                 end: 402,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 403,
[INFO] [stdout]                 end: 404,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 64,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "CStr": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "printf": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "calc": IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num2": IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "message": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num1": IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "str": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "z": IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "y": IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "add": IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "x": IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "total": IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "printf",
[INFO] [stdout]                 "str",
[INFO] [stdout]                 "CStr",
[INFO] [stdout]                 "message",
[INFO] [stdout]                 "total",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "calc",
[INFO] [stdout]                 "add",
[INFO] [stdout]                 "num1",
[INFO] [stdout]                 "num2",
[INFO] [stdout]                 "x",
[INFO] [stdout]                 "y",
[INFO] [stdout]                 "z",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 23,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 6,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 4,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             body: Some(
[INFO] [stdout]                 AstBlock {
[INFO] [stdout]                     block_open_token_at: 28,
[INFO] [stdout]                     block_close_token_at: 35,
[INFO] [stdout]                     statements: [
[INFO] [stdout]                         AstStatement {
[INFO] [stdout]                             start_token_at: 29,
[INFO] [stdout]                             kind: Expr(
[INFO] [stdout]                                 AstExpr {
[INFO] [stdout]                                     span: Span {
[INFO] [stdout]                                         start: 188,
[INFO] [stdout]                                         end: 218,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     kind: Op(
[INFO] [stdout]                                         FnCall {
[INFO] [stdout]                                             ident: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 188,
[INFO] [stdout]                                                     end: 192,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 7,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                             args: [
[INFO] [stdout]                                                 AstExpr {
[INFO] [stdout]                                                     span: Span {
[INFO] [stdout]                                                         start: 193,
[INFO] [stdout]                                                         end: 215,
[INFO] [stdout]                                                     },
[INFO] [stdout]                                                     kind: Op(
[INFO] [stdout]                                                         Ref(
[INFO] [stdout]                                                             AstExpr {
[INFO] [stdout]                                                                 span: Span {
[INFO] [stdout]                                                                     start: 194,
[INFO] [stdout]                                                                     end: 215,
[INFO] [stdout]                                                                 },
[INFO] [stdout]                                                                 kind: Atom(
[INFO] [stdout]                                                                     CStr(
[INFO] [stdout]                                                                         32,
[INFO] [stdout]                                                                     ),
[INFO] [stdout]                                                                 ),
[INFO] [stdout]                                                                 type_id: None,
[INFO] [stdout]                                                                 expr_count: 1,
[INFO] [stdout]                                                             },
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                     type_id: None,
[INFO] [stdout]                                                     expr_count: 2,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                             ],
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     type_id: None,
[INFO] [stdout]                                     expr_count: 3,
[INFO] [stdout]                                 },
[INFO] [stdout]                             ),
[INFO] [stdout]                             expr_count: 3,
[INFO] [stdout]                         },
[INFO] [stdout]                     ],
[INFO] [stdout]                     type_id: None,
[INFO] [stdout]                     expr_count: 4,
[INFO] [stdout]                 },
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 36,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 8,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 7,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         9,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         5,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         10,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         6,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             body: Some(
[INFO] [stdout]                 AstBlock {
[INFO] [stdout]                     block_open_token_at: 46,
[INFO] [stdout]                     block_close_token_at: 50,
[INFO] [stdout]                     statements: [
[INFO] [stdout]                         AstStatement {
[INFO] [stdout]                             start_token_at: 47,
[INFO] [stdout]                             kind: BlockReturn {
[INFO] [stdout]                                 expr: AstExpr {
[INFO] [stdout]                                     span: Span {
[INFO] [stdout]                                         start: 259,
[INFO] [stdout]                                         end: 272,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     kind: Op(
[INFO] [stdout]                                         Add {
[INFO] [stdout]                                             left: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 259,
[INFO] [stdout]                                                     end: 263,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 9,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                             right: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 266,
[INFO] [stdout]                                                     end: 270,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 10,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     type_id: None,
[INFO] [stdout]                                     expr_count: 3,
[INFO] [stdout]                                 },
[INFO] [stdout]                                 is_fn_return: true,
[INFO] [stdout]                             },
[INFO] [stdout]                             expr_count: 3,
[INFO] [stdout]                         },
[INFO] [stdout]                     ],
[INFO] [stdout]                     type_id: None,
[INFO] [stdout]                     expr_count: 4,
[INFO] [stdout]                 },
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     extern_fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 6,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 3,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         0,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         3,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         4,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         2,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             body: None,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 18,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ExternKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Str(
[INFO] [stdout]                 "C",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 23,
[INFO] [stdout]                 end: 24,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 113,
[INFO] [stdout]                 end: 115,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 116,
[INFO] [stdout]                 end: 122,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 122,
[INFO] [stdout]                 end: 123,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 123,
[INFO] [stdout]                 end: 126,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 127,
[INFO] [stdout]                 end: 128,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 128,
[INFO] [stdout]                 end: 132,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 132,
[INFO] [stdout]                 end: 133,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 134,
[INFO] [stdout]                 end: 141,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 142,
[INFO] [stdout]                 end: 143,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 143,
[INFO] [stdout]                 end: 147,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 147,
[INFO] [stdout]                 end: 148,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 149,
[INFO] [stdout]                 end: 154,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 155,
[INFO] [stdout]                 end: 158,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 158,
[INFO] [stdout]                 end: 159,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 163,
[INFO] [stdout]                 end: 164,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 165,
[INFO] [stdout]                 end: 166,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 168,
[INFO] [stdout]                 end: 170,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 171,
[INFO] [stdout]                 end: 175,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 175,
[INFO] [stdout]                 end: 176,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 176,
[INFO] [stdout]                 end: 177,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 182,
[INFO] [stdout]                 end: 183,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 188,
[INFO] [stdout]                 end: 192,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 192,
[INFO] [stdout]                 end: 193,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 193,
[INFO] [stdout]                 end: 194,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 194,
[INFO] [stdout]                 end: 215,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "testing calculation",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 216,
[INFO] [stdout]                 end: 217,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 217,
[INFO] [stdout]                 end: 218,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 219,
[INFO] [stdout]                 end: 220,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 222,
[INFO] [stdout]                 end: 224,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 225,
[INFO] [stdout]                 end: 228,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 228,
[INFO] [stdout]                 end: 229,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 229,
[INFO] [stdout]                 end: 233,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 234,
[INFO] [stdout]                 end: 237,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 237,
[INFO] [stdout]                 end: 238,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 239,
[INFO] [stdout]                 end: 243,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 244,
[INFO] [stdout]                 end: 247,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 247,
[INFO] [stdout]                 end: 248,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 253,
[INFO] [stdout]                 end: 254,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 259,
[INFO] [stdout]                 end: 263,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 264,
[INFO] [stdout]                 end: 265,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 266,
[INFO] [stdout]                 end: 270,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 271,
[INFO] [stdout]                 end: 272,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 274,
[INFO] [stdout]                 end: 276,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 277,
[INFO] [stdout]                 end: 281,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 281,
[INFO] [stdout]                 end: 282,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 282,
[INFO] [stdout]                 end: 289,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 290,
[INFO] [stdout]                 end: 291,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 291,
[INFO] [stdout]                 end: 295,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 295,
[INFO] [stdout]                 end: 296,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 297,
[INFO] [stdout]                 end: 300,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 301,
[INFO] [stdout]                 end: 302,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 307,
[INFO] [stdout]                 end: 310,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 311,
[INFO] [stdout]                 end: 312,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 313,
[INFO] [stdout]                 end: 314,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 315,
[INFO] [stdout]                 end: 316,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 316,
[INFO] [stdout]                 end: 317,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 322,
[INFO] [stdout]                 end: 325,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 326,
[INFO] [stdout]                 end: 327,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 328,
[INFO] [stdout]                 end: 329,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 330,
[INFO] [stdout]                 end: 331,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 332,
[INFO] [stdout]                 end: 333,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 334,
[INFO] [stdout]                 end: 335,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 2,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 335,
[INFO] [stdout]                 end: 336,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 341,
[INFO] [stdout]                 end: 344,
[INFO] [stdout]             },
[INFO] [stdout]             kind: LetKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 345,
[INFO] [stdout]                 end: 346,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 347,
[INFO] [stdout]                 end: 348,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Assign,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 349,
[INFO] [stdout]                 end: 352,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 352,
[INFO] [stdout]                 end: 353,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 353,
[INFO] [stdout]                 end: 354,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 354,
[INFO] [stdout]                 end: 355,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 356,
[INFO] [stdout]                 end: 357,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 358,
[INFO] [stdout]                 end: 359,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Add,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 360,
[INFO] [stdout]                 end: 361,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Int(
[INFO] [stdout]                 5,
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 361,
[INFO] [stdout]                 end: 362,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 362,
[INFO] [stdout]                 end: 363,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 368,
[INFO] [stdout]                 end: 374,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 374,
[INFO] [stdout]                 end: 375,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 375,
[INFO] [stdout]                 end: 376,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 376,
[INFO] [stdout]                 end: 388,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "%s z: %d\n",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 389,
[INFO] [stdout]                 end: 390,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 391,
[INFO] [stdout]                 end: 398,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 398,
[INFO] [stdout]                 end: 399,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 400,
[INFO] [stdout]                 end: 401,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 401,
[INFO] [stdout]                 end: 402,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 403,
[INFO] [stdout]                 end: 404,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     next_token_i: 69,
[INFO] [stdout]     interner: RwLock {
[INFO] [stdout]         data: Interner {
[INFO] [stdout]             map: {
[INFO] [stdout]                 "CStr": IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "Int": IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "printf": IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "calc": IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num2": IdentId(
[INFO] [stdout]                     10,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "message": IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "main": IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "num1": IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "str": IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "z": IdentId(
[INFO] [stdout]                     13,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "y": IdentId(
[INFO] [stdout]                     12,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "add": IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "x": IdentId(
[INFO] [stdout]                     11,
[INFO] [stdout]                 ),
[INFO] [stdout]                 "total": IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             vec: [
[INFO] [stdout]                 "printf",
[INFO] [stdout]                 "str",
[INFO] [stdout]                 "CStr",
[INFO] [stdout]                 "message",
[INFO] [stdout]                 "total",
[INFO] [stdout]                 "Int",
[INFO] [stdout]                 "main",
[INFO] [stdout]                 "calc",
[INFO] [stdout]                 "add",
[INFO] [stdout]                 "num1",
[INFO] [stdout]                 "num2",
[INFO] [stdout]                 "x",
[INFO] [stdout]                 "y",
[INFO] [stdout]                 "z",
[INFO] [stdout]             ],
[INFO] [stdout]         },
[INFO] [stdout]     },
[INFO] [stdout] }
[INFO] [stdout] [src/ast/ast_expr/mod.rs:128:9] &self = Ast {
[INFO] [stdout]     errs: [],
[INFO] [stdout]     imports: [],
[INFO] [stdout]     fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 23,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 6,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 4,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             body: Some(
[INFO] [stdout]                 AstBlock {
[INFO] [stdout]                     block_open_token_at: 28,
[INFO] [stdout]                     block_close_token_at: 35,
[INFO] [stdout]                     statements: [
[INFO] [stdout]                         AstStatement {
[INFO] [stdout]                             start_token_at: 29,
[INFO] [stdout]                             kind: Expr(
[INFO] [stdout]                                 AstExpr {
[INFO] [stdout]                                     span: Span {
[INFO] [stdout]                                         start: 188,
[INFO] [stdout]                                         end: 218,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     kind: Op(
[INFO] [stdout]                                         FnCall {
[INFO] [stdout]                                             ident: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 188,
[INFO] [stdout]                                                     end: 192,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 7,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                             args: [
[INFO] [stdout]                                                 AstExpr {
[INFO] [stdout]                                                     span: Span {
[INFO] [stdout]                                                         start: 193,
[INFO] [stdout]                                                         end: 215,
[INFO] [stdout]                                                     },
[INFO] [stdout]                                                     kind: Op(
[INFO] [stdout]                                                         Ref(
[INFO] [stdout]                                                             AstExpr {
[INFO] [stdout]                                                                 span: Span {
[INFO] [stdout]                                                                     start: 194,
[INFO] [stdout]                                                                     end: 215,
[INFO] [stdout]                                                                 },
[INFO] [stdout]                                                                 kind: Atom(
[INFO] [stdout]                                                                     CStr(
[INFO] [stdout]                                                                         32,
[INFO] [stdout]                                                                     ),
[INFO] [stdout]                                                                 ),
[INFO] [stdout]                                                                 type_id: None,
[INFO] [stdout]                                                                 expr_count: 1,
[INFO] [stdout]                                                             },
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                     type_id: None,
[INFO] [stdout]                                                     expr_count: 2,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                             ],
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     type_id: None,
[INFO] [stdout]                                     expr_count: 3,
[INFO] [stdout]                                 },
[INFO] [stdout]                             ),
[INFO] [stdout]                             expr_count: 3,
[INFO] [stdout]                         },
[INFO] [stdout]                     ],
[INFO] [stdout]                     type_id: None,
[INFO] [stdout]                     expr_count: 4,
[INFO] [stdout]                 },
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 36,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 8,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 7,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         9,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         5,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         10,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         6,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 249,
[INFO] [stdout]                 end: 252,
[INFO] [stdout]             },
[INFO] [stdout]             body: Some(
[INFO] [stdout]                 AstBlock {
[INFO] [stdout]                     block_open_token_at: 46,
[INFO] [stdout]                     block_close_token_at: 50,
[INFO] [stdout]                     statements: [
[INFO] [stdout]                         AstStatement {
[INFO] [stdout]                             start_token_at: 47,
[INFO] [stdout]                             kind: BlockReturn {
[INFO] [stdout]                                 expr: AstExpr {
[INFO] [stdout]                                     span: Span {
[INFO] [stdout]                                         start: 259,
[INFO] [stdout]                                         end: 272,
[INFO] [stdout]                                     },
[INFO] [stdout]                                     kind: Op(
[INFO] [stdout]                                         Add {
[INFO] [stdout]                                             left: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 259,
[INFO] [stdout]                                                     end: 263,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 9,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                             right: AstExpr {
[INFO] [stdout]                                                 span: Span {
[INFO] [stdout]                                                     start: 266,
[INFO] [stdout]                                                     end: 270,
[INFO] [stdout]                                                 },
[INFO] [stdout]                                                 kind: Atom(
[INFO] [stdout]                                                     Ident(
[INFO] [stdout]                                                         (
[INFO] [stdout]                                                             IdentId(
[INFO] [stdout]                                                                 10,
[INFO] [stdout]                                                             ),
[INFO] [stdout]                                                             None,
[INFO] [stdout]                                                         ),
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 type_id: None,
[INFO] [stdout]                                                 expr_count: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     type_id: None,
[INFO] [stdout]                                     expr_count: 3,
[INFO] [stdout]                                 },
[INFO] [stdout]                                 is_fn_return: true,
[INFO] [stdout]                             },
[INFO] [stdout]                             expr_count: 3,
[INFO] [stdout]                         },
[INFO] [stdout]                     ],
[INFO] [stdout]                     type_id: None,
[INFO] [stdout]                     expr_count: 4,
[INFO] [stdout]                 },
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     extern_fns: [
[INFO] [stdout]         AstFunc {
[INFO] [stdout]             fn_token_at: 6,
[INFO] [stdout]             ident_id: IdentId(
[INFO] [stdout]                 0,
[INFO] [stdout]             ),
[INFO] [stdout]             symbol_id: SymbolId(
[INFO] [stdout]                 3,
[INFO] [stdout]             ),
[INFO] [stdout]             args: [
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         0,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         3,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Ref(
[INFO] [stdout]                         CStr,
[INFO] [stdout]                     ),
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         1,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]                 AstFnArg {
[INFO] [stdout]                     ident_id: IdentId(
[INFO] [stdout]                         4,
[INFO] [stdout]                     ),
[INFO] [stdout]                     var_type: Int,
[INFO] [stdout]                     symbol_id: SymbolId(
[INFO] [stdout]                         2,
[INFO] [stdout]                     ),
[INFO] [stdout]                 },
[INFO] [stdout]             ],
[INFO] [stdout]             return_type: Int,
[INFO] [stdout]             return_type_span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             body: None,
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout]     enums: [],
[INFO] [stdout]     structs: [],
[INFO] [stdout]     tokens: [
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 0,
[INFO] [stdout]                 end: 6,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ImportKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 7,
[INFO] [stdout]                 end: 8,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 9,
[INFO] [stdout]                 end: 10,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 12,
[INFO] [stdout]                 end: 18,
[INFO] [stdout]             },
[INFO] [stdout]             kind: ExternKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 19,
[INFO] [stdout]                 end: 21,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Str(
[INFO] [stdout]                 "C",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 23,
[INFO] [stdout]                 end: 24,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 113,
[INFO] [stdout]                 end: 115,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 116,
[INFO] [stdout]                 end: 122,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     0,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 122,
[INFO] [stdout]                 end: 123,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 123,
[INFO] [stdout]                 end: 126,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     1,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 127,
[INFO] [stdout]                 end: 128,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 128,
[INFO] [stdout]                 end: 132,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 132,
[INFO] [stdout]                 end: 133,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 134,
[INFO] [stdout]                 end: 141,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     3,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 142,
[INFO] [stdout]                 end: 143,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 143,
[INFO] [stdout]                 end: 147,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     2,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 147,
[INFO] [stdout]                 end: 148,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 149,
[INFO] [stdout]                 end: 154,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     4,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 155,
[INFO] [stdout]                 end: 158,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 158,
[INFO] [stdout]                 end: 159,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 160,
[INFO] [stdout]                 end: 163,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 163,
[INFO] [stdout]                 end: 164,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 165,
[INFO] [stdout]                 end: 166,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 168,
[INFO] [stdout]                 end: 170,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 171,
[INFO] [stdout]                 end: 175,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     6,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 175,
[INFO] [stdout]                 end: 176,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 176,
[INFO] [stdout]                 end: 177,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 178,
[INFO] [stdout]                 end: 181,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 182,
[INFO] [stdout]                 end: 183,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 188,
[INFO] [stdout]                 end: 192,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     7,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 192,
[INFO] [stdout]                 end: 193,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 193,
[INFO] [stdout]                 end: 194,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Amp,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 194,
[INFO] [stdout]                 end: 215,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CStr(
[INFO] [stdout]                 "testing calculation",
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 216,
[INFO] [stdout]                 end: 217,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 217,
[INFO] [stdout]                 end: 218,
[INFO] [stdout]             },
[INFO] [stdout]             kind: SemiColon,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 219,
[INFO] [stdout]                 end: 220,
[INFO] [stdout]             },
[INFO] [stdout]             kind: CurlyBracketClose,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 222,
[INFO] [stdout]                 end: 224,
[INFO] [stdout]             },
[INFO] [stdout]             kind: FnKeyWord,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 225,
[INFO] [stdout]                 end: 228,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     8,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 228,
[INFO] [stdout]                 end: 229,
[INFO] [stdout]             },
[INFO] [stdout]             kind: BracketOpen,
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 229,
[INFO] [stdout]                 end: 233,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     9,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 234,
[INFO] [stdout]                 end: 237,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Ident(
[INFO] [stdout]                 IdentId(
[INFO] [stdout]                     5,
[INFO] [stdout]                 ),
[INFO] [stdout]             ),
[INFO] [stdout]         },
[INFO] [stdout]         Token {
[INFO] [stdout]             span: Span {
[INFO] [stdout]                 start: 237,
[INFO] [stdout]                 end: 238,
[INFO] [stdout]             },
[INFO] [stdout]             kind: Comma,
[INFO] [stdout]         },
[WARN] too many lines in the log, truncating it
