[INFO] fetching crate vyder_core 0.3.4...
[INFO] testing vyder_core-0.3.4 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] extracting crate vyder_core 0.3.4 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate vyder_core 0.3.4
[INFO] finished tweaking crates.io crate vyder_core 0.3.4
[INFO] tweaked toml for crates.io crate vyder_core 0.3.4 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate vyder_core 0.3.4 on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate vyder_core 0.3.4 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded enum_downcast_derive v0.2.0
[INFO] [stderr]   Downloaded vyder_macros v0.3.4
[INFO] [stderr]   Downloaded clap_derive v4.5.8
[INFO] [stderr]   Downloaded enum_downcast v0.2.0
[INFO] [stderr]   Downloaded clap v4.5.9
[INFO] [stderr]   Downloaded clap_builder v4.5.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a0957c4b3151226e84beb40360e44acc6ca5f49e1e79410b645f123bc006d7fa
[INFO] running `Command { std: "docker" "start" "-a" "a0957c4b3151226e84beb40360e44acc6ca5f49e1e79410b645f123bc006d7fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a0957c4b3151226e84beb40360e44acc6ca5f49e1e79410b645f123bc006d7fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a0957c4b3151226e84beb40360e44acc6ca5f49e1e79410b645f123bc006d7fa", kill_on_drop: false }`
[INFO] [stdout] a0957c4b3151226e84beb40360e44acc6ca5f49e1e79410b645f123bc006d7fa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bc55dfc17318a3f915dfce719091f63d55218f04cf73f3013ab3a3bc348b2f52
[INFO] running `Command { std: "docker" "start" "-a" "bc55dfc17318a3f915dfce719091f63d55218f04cf73f3013ab3a3bc348b2f52", kill_on_drop: false }`
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling anstyle-parse v0.2.4
[INFO] [stderr]    Compiling anstyle-query v1.1.0
[INFO] [stderr]    Compiling colorchoice v1.0.1
[INFO] [stderr]    Compiling anstyle v1.0.7
[INFO] [stderr]    Compiling pin-project-lite v0.2.14
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.0
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling clap_lex v0.7.1
[INFO] [stderr]    Compiling colored v2.1.0
[INFO] [stderr]    Compiling anstream v0.6.14
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling thread_local v1.1.8
[INFO] [stderr]    Compiling clap_builder v4.5.9
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling regex-automata v0.4.7
[INFO] [stderr]    Compiling regex v1.10.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling clap_derive v4.5.8
[INFO] [stderr]    Compiling enum_downcast_derive v0.2.0
[INFO] [stderr]    Compiling tracing-test-macro v0.2.5
[INFO] [stderr]    Compiling vyder_macros v0.3.4
[INFO] [stderr]    Compiling enum_downcast v0.2.0
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling clap v4.5.9
[INFO] [stderr]    Compiling tracing-test v0.2.5
[INFO] [stderr]    Compiling vyder_core v0.3.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/value/values.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | #[derive(Clone, Debug, IntoValueEnum, PartialEq)]
[INFO] [stdout]    |                                       --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 43 |         function: fn(&[ValueResult], Span) -> Result<(ValueResult, Option<ExitCode>)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.99s
[INFO] running `Command { std: "docker" "inspect" "bc55dfc17318a3f915dfce719091f63d55218f04cf73f3013ab3a3bc348b2f52", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bc55dfc17318a3f915dfce719091f63d55218f04cf73f3013ab3a3bc348b2f52", kill_on_drop: false }`
[INFO] [stdout] bc55dfc17318a3f915dfce719091f63d55218f04cf73f3013ab3a3bc348b2f52
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 64330e12662676dc894a03e941bb176d79a72ddac1540ae3798b187ba31c693a
[INFO] running `Command { std: "docker" "start" "-a" "64330e12662676dc894a03e941bb176d79a72ddac1540ae3798b187ba31c693a", kill_on_drop: false }`
[INFO] [stderr]    Compiling vyder_core v0.3.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/value/values.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | #[derive(Clone, Debug, IntoValueEnum, PartialEq)]
[INFO] [stdout]    |                                       --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 43 |         function: fn(&[ValueResult], Span) -> Result<(ValueResult, Option<ExitCode>)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/value/values.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | #[derive(Clone, Debug, IntoValueEnum, PartialEq)]
[INFO] [stdout]    |                                       --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 43 |         function: fn(&[ValueResult], Span) -> Result<(ValueResult, Option<ExitCode>)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.17s
[INFO] running `Command { std: "docker" "inspect" "64330e12662676dc894a03e941bb176d79a72ddac1540ae3798b187ba31c693a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "64330e12662676dc894a03e941bb176d79a72ddac1540ae3798b187ba31c693a", kill_on_drop: false }`
[INFO] [stdout] 64330e12662676dc894a03e941bb176d79a72ddac1540ae3798b187ba31c693a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fb8c53869dffde5e6b5208ddb5b093e33ac24b9ce21d96f661e9e9ab6fdd2c27
[INFO] running `Command { std: "docker" "start" "-a" "fb8c53869dffde5e6b5208ddb5b093e33ac24b9ce21d96f661e9e9ab6fdd2c27", kill_on_drop: false }`
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> src/value/values.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 35 | #[derive(Clone, Debug, IntoValueEnum, PartialEq)]
[INFO] [stderr]    |                                       --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 43 |         function: fn(&[ValueResult], Span) -> Result<(ValueResult, Option<ExitCode>)>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `vyder_core` (lib) generated 1 warning
[INFO] [stderr] warning: `vyder_core` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vyder_core-518c7ff98e1b577d)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test expression::tests::expect_test ... ok
[INFO] [stdout] test environment::tests::environments_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.011120Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.011467Z[0m [32m INFO[0m [2mvyder_core::interpreter[0m[2m:[0m evaluating 'not'
[INFO] [stdout] [2m2026-05-15T06:51:26.011539Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.011709Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '#'
[INFO] [stdout] [2m2026-05-15T06:51:26.011738Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:26.011749Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 1 is '!'
[INFO] [stdout] [2m2026-05-15T06:51:26.011773Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:26.011784Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 2 is 'v'
[INFO] [stdout] [2m2026-05-15T06:51:26.011793Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:26.011847Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]   ^^^ here
[INFO] [stdout] test interpreter::tests::not_test ... [2m2026-05-15T06:51:26.012933Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.011677Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.012897Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.012986Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo.bar;
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.013015Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.013043Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is '!' at test 1:1
[INFO] [stdout] | !-foo;
[INFO] [stdout]   
[INFO] [stdout]   ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.013055Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.013065Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.013010Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.013121Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.013148Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.013182Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.013225Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.013264Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.013275Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.013297Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.013320Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.013324Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.013339Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.012860Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is 'y'
[INFO] [stdout] [2m2026-05-15T06:51:26.013098Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.013369Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:26.013405Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is 'd'
[INFO] [stdout] [2m2026-05-15T06:51:26.013416Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] [2m2026-05-15T06:51:26.013427Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'e'
[INFO] [stdout] [2m2026-05-15T06:51:26.013437Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:26.013447Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:26.013461Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:26.013472Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is '
[INFO] [stdout] '
[INFO] [stdout] [2m2026-05-15T06:51:26.013500Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.013511Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 8
[INFO] [stdout] [2m2026-05-15T06:51:26.013534Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.013548Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is '
[INFO] [stdout] '
[INFO] [stdout] [2m2026-05-15T06:51:26.013566Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.013576Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 1
[INFO] [stdout] [2m2026-05-15T06:51:26.013586Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:26.013603Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is '+'
[INFO] [stdout] [2m2026-05-15T06:51:26.013614Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 8 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.013626Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '+'
[INFO] [stdout] [2m2026-05-15T06:51:26.013663Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 9
[INFO] [stdout] [2m2026-05-15T06:51:26.013683Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.013693Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 2
[INFO] [stdout] [2m2026-05-15T06:51:26.013704Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:26.013718Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.013729Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] [2m2026-05-15T06:51:26.013729Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '+'
[INFO] [stdout] [2m2026-05-15T06:51:26.013753Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.013762Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.013763Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 3
[INFO] [stdout] [2m2026-05-15T06:51:26.013771Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 1
[INFO] [stdout] [2m2026-05-15T06:51:26.013774Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:26.013781Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.013788Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:26.013827Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.013379Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.013925Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.013942Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.013960Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.013972Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.013995Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo.bar;
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.013346Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014100Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.014116Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.014136Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is '1' at test 1:1
[INFO] [stdout] | 1..3;
[INFO] [stdout]   
[INFO] [stdout]   ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014156Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.014175Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.014192Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.014207Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.014226Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.014243Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.014262Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.014278Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.013889Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 10 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:26.014311Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.014319Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is '1' at test 1:1
[INFO] [stdout] | 1..3;
[INFO] [stdout]   
[INFO] [stdout]   ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.013864Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.014356Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.014352Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.014376Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.014395Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.014332Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.014439Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.014455Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.014458Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014460Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.014467Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.014483Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014478Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is '1' at test 1:1
[INFO] [stdout] | 1..3;
[INFO] [stdout]   
[INFO] [stdout]   ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014471Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.014510Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is '!' at test 1:1
[INFO] [stdout] | !-foo;
[INFO] [stdout]   
[INFO] [stdout]   ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014514Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.014519Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '..'
[INFO] [stdout] [2m2026-05-15T06:51:26.014526Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014527Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '-'
[INFO] [stdout] [2m2026-05-15T06:51:26.014541Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '..' at test 1:2 - 1:3 (2 chars)
[INFO] [stdout] | 1..3;
[INFO] [stdout]    ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014545Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014549Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014560Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '..' at test 1:2 - 1:3 (2 chars)
[INFO] [stdout] | 1..3;
[INFO] [stdout]    ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014562Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '-' at test 1:2
[INFO] [stdout] | !-foo;
[INFO] [stdout]    
[INFO] [stdout]    ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014565Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014573Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: 'foo'
[INFO] [stdout] [2m2026-05-15T06:51:26.014577Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '..' at test 1:2 - 1:3 (2 chars)
[INFO] [stdout] | 1..3;
[INFO] [stdout]    ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014583Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.014584Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo.bar;
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014588Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014594Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '..' at test 1:2 - 1:3 (2 chars)
[INFO] [stdout] | 1..3;
[INFO] [stdout]    ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014596Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '.'
[INFO] [stdout] [2m2026-05-15T06:51:26.014607Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: '3'
[INFO] [stdout] [2m2026-05-15T06:51:26.014610Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is 'foo' at test 1:3 - 1:5 (3 chars)
[INFO] [stdout] | !-foo;
[INFO] [stdout]     ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014612Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '.' at test 1:4
[INFO] [stdout] | foo.bar;
[INFO] [stdout]      
[INFO] [stdout]      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014617Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.014622Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: 'bar'
[INFO] [stdout] [2m2026-05-15T06:51:26.014626Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.014635Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014640Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is 'bar' at test 1:5 - 1:7 (3 chars)
[INFO] [stdout] | foo.bar;
[INFO] [stdout]       ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014650Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is '3' at test 1:4
[INFO] [stdout] | 1..3;
[INFO] [stdout]      
[INFO] [stdout]      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014651Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: ';'
[INFO] [stdout] [2m2026-05-15T06:51:26.014655Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.014670Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.014681Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014681Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014689Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014696Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is '3' at test 1:4
[INFO] [stdout] | 1..3;
[INFO] [stdout]      
[INFO] [stdout]      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014700Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014698Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m ending branch for field access at token Some(Token { value: Semicolon(Semicolon), span: Span { start_location: Location { line: 1, column: 8, char_index: 7 }, end_location: None, module_name: "test", snippet: Some("foo.bar;") } })
[INFO] [stdout] [2m2026-05-15T06:51:26.014708Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: ';'
[INFO] [stdout] [2m2026-05-15T06:51:26.014710Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '='
[INFO] [stdout] [2m2026-05-15T06:51:26.014720Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014724Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014726Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014742Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014742Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014744Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014757Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014757Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014764Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.014421Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.014776Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014787Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is 'foo' at test 1:3 - 1:5 (3 chars)
[INFO] [stdout] | !-foo;
[INFO] [stdout]     ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014787Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo[1];
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014796Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014820Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: ';'
[INFO] [stdout] ok
[INFO] [stdout] [2m2026-05-15T06:51:26.014828Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014830Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.014839Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014846Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014848Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.014861Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014861Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014873Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: '('
[INFO] [stdout] [2m2026-05-15T06:51:26.013793Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '+'
[INFO] [stdout] [2m2026-05-15T06:51:26.014884Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.014892Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014895Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 0 is '='
[INFO] [stdout] test interpreter::tests::group_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.014909Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014911Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:26.014922Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '+='
[INFO] [stdout] [2m2026-05-15T06:51:26.014929Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014941Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:26.014947Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014955Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.014963Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014964Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 3
[INFO] [stdout] [2m2026-05-15T06:51:26.014975Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.014978Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014986Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 2 is '
[INFO] [stdout] '
[INFO] [stdout] [2m2026-05-15T06:51:26.014997Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] test statement::tests::expect_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.015006Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 1
[INFO] [stdout] [2m2026-05-15T06:51:26.015004Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''Not' at test 1:1 - 1:5 (5 chars)
[INFO] [stdout] | !-foo;
[INFO] [stdout]   ^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.015029Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015037Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:26.015051Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is '-'
[INFO] [stdout] [2m2026-05-15T06:51:26.015061Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015062Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 3 is '-'
[INFO] [stdout] [2m2026-05-15T06:51:26.015065Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.015074Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 3 is '-'
[INFO] [stdout] [2m2026-05-15T06:51:26.015085Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '-'
[INFO] [stdout] [2m2026-05-15T06:51:26.015083Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m token after statement parse is '';' at test 1:6
[INFO] [stdout] | !-foo;
[INFO] [stdout]        
[INFO] [stdout]        ^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.015088Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015097Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:26.015099Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.015107Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.015116Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 2
[INFO] [stdout] [2m2026-05-15T06:51:26.015117Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:26.014894Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.015126Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:26.015139Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is '-'
[INFO] [stdout] [2m2026-05-15T06:51:26.015150Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 4 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.015148Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m parsed statement ''Not;' at test 1:1 - 1:6 (6 chars)
[INFO] [stdout] | !-foo;
[INFO] [stdout]   ^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.015161Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 4 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.015168Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.015171Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '-'
[INFO] [stdout] [2m2026-05-15T06:51:26.015178Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is None
[INFO] [stdout] [2m2026-05-15T06:51:26.015183Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] [2m2026-05-15T06:51:26.015195Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.015203Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 3
[INFO] [stdout] [2m2026-05-15T06:51:26.015212Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:26.015223Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.015240Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:26.015250Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.015102Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '('
[INFO] [stdout] [2m2026-05-15T06:51:26.015265Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 4
[INFO] [stdout] [2m2026-05-15T06:51:26.015275Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:26.015286Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '(' at test 1:4
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]      
[INFO] [stdout]      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015294Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:26.015305Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 6 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:26.015299Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: 'bar'
[INFO] [stdout] [2m2026-05-15T06:51:26.015315Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 6 is 'None'
[INFO] [stdout] test parser::tests::unary_test ... [2m2026-05-15T06:51:26.015329Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is 'bar' at test 1:5 - 1:7 (3 chars)
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]       ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015325Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '/'
[INFO] [stdout] [2m2026-05-15T06:51:26.015341Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.015349Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] ok
[INFO] [stdout] [2m2026-05-15T06:51:26.015359Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.015378Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.015389Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.015383Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:26.015399Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.015406Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.015409Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.015415Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 1
[INFO] [stdout] [2m2026-05-15T06:51:26.015419Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.015424Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.015435Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:26.015438Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is 'bar' at test 1:5 - 1:7 (3 chars)
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]       ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015444Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_number function
[INFO] [stdout] [2m2026-05-15T06:51:26.015454Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:26.015456Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.015463Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:26.015473Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 1 is '2'
[INFO] [stdout] [2m2026-05-15T06:51:26.015483Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:26.015492Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 2 is '.'
[INFO] [stdout] [2m2026-05-15T06:51:26.015502Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 2 is '5'
[INFO] [stdout] [2m2026-05-15T06:51:26.015512Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:26.015522Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is '5'
[INFO] [stdout] [2m2026-05-15T06:51:26.015531Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:26.015541Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is '.'
[INFO] [stdout] [2m2026-05-15T06:51:26.015543Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.015551Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '12.5'
[INFO] [stdout] [2m2026-05-15T06:51:26.015564Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:26.015564Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is 'bar' at test 1:5 - 1:7 (3 chars)
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]       ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015573Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.015575Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: '('
[INFO] [stdout] [2m2026-05-15T06:51:26.015582Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 5
[INFO] [stdout] [2m2026-05-15T06:51:26.015591Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.015591Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is '(' at test 1:8
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015601Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: ')'
[INFO] [stdout] [2m2026-05-15T06:51:26.015601Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is '.'
[INFO] [stdout] [2m2026-05-15T06:51:26.015612Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 4 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:26.015614Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ')' at test 1:13
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]               
[INFO] [stdout]               ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015622Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '.'
[INFO] [stdout] [2m2026-05-15T06:51:26.015625Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 5: ')'
[INFO] [stdout] [2m2026-05-15T06:51:26.015633Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] [2m2026-05-15T06:51:26.015640Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015642Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.015651Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 6
[INFO] [stdout] [2m2026-05-15T06:51:26.015655Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015660Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.015670Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015670Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:26.015681Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:26.015685Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015691Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:26.015701Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:26.015702Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015710Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:26.015719Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015720Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:26.015734Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015729Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 8
[INFO] [stdout] [2m2026-05-15T06:51:26.015747Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.015749Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015757Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'foo'
[INFO] [stdout] [2m2026-05-15T06:51:26.015768Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 8
[INFO] [stdout] [2m2026-05-15T06:51:26.015759Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''Call(bar)' at test 1:5 - 1:13 (9 chars)
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]       ^^^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.015777Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.015786Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 9
[INFO] [stdout] [2m2026-05-15T06:51:26.015796Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.014760Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015836Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ')' at test 1:14
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015849Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 6: ';'
[INFO] [stdout] [2m2026-05-15T06:51:26.015854Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015863Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015874Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015880Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015890Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015895Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015904Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015911Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015921Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015929Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015933Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''FieldAccess' at test 1:1 - 1:7 (7 chars)
[INFO] [stdout] | foo.bar;
[INFO] [stdout]   ^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.015944Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015955Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015959Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] test token::tests::expect_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.014863Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.015989Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.015969Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.015999Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.016004Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.016010Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.016005Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.016019Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.016023Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.016013Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m token after statement parse is '';' at test 1:8
[INFO] [stdout] | foo.bar;
[INFO] [stdout]          
[INFO] [stdout]          ^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.016032Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.016036Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.016039Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.016038Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.016042Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016049Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:26.016053Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.016058Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is '(' at test 1:7
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016057Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.016071Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.016061Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m parsed statement ''FieldAccess;' at test 1:1 - 1:8 (8 chars)
[INFO] [stdout] | foo.bar;
[INFO] [stdout]   ^^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.016073Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016077Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.016083Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.016086Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.016093Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo[1];
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016094Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016094Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is None
[INFO] [stdout] [2m2026-05-15T06:51:26.016105Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.016112Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is '(' at test 1:7
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016120Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.016123Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: 'import'
[INFO] [stdout] [2m2026-05-15T06:51:26.016131Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.016137Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016143Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.016158Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016157Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.016176Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.016192Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.016206Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.016225Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.016235Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016239Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] test parser::tests::field_access_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.016254Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo[1];
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016256Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.016266Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '['
[INFO] [stdout] [2m2026-05-15T06:51:26.016268Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016281Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '[' at test 1:4
[INFO] [stdout] | foo[1];
[INFO] [stdout]      
[INFO] [stdout]      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016289Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is 'import' at test 1:8 - 1:13 (6 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]          ^^^^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016292Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: '1'
[INFO] [stdout] [2m2026-05-15T06:51:26.016292Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016302Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.016313Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.016317Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 0 is 'foo' at test 1:1 - 1:3 (3 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]   ^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016322Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.016323Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.016329Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '='
[INFO] [stdout] [2m2026-05-15T06:51:26.016333Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.016345Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.016348Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016355Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.016364Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016365Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.016376Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016379Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016391Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is '1' at test 1:5
[INFO] [stdout] | foo[1];
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016394Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016409Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.016412Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016423Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016427Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016441Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016442Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is 'import' at test 1:8 - 1:13 (6 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]          ^^^^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016455Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: '('
[INFO] [stdout] [2m2026-05-15T06:51:26.016455Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 1 is '=' at test 1:5
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016471Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: '12'
[INFO] [stdout] [2m2026-05-15T06:51:26.016472Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is '(' at test 1:14
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016485Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.016504Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is '1' at test 1:5
[INFO] [stdout] | foo[1];
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016512Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 5: '"std"'
[INFO] [stdout] [2m2026-05-15T06:51:26.016481Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.015796Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.016531Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is '"std"' at test 1:15 - 1:19 (5 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                 ^^^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016516Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: ']'
[INFO] [stdout] [2m2026-05-15T06:51:26.016542Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:26.016541Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.016554Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.016556Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 9
[INFO] [stdout] [2m2026-05-15T06:51:26.016563Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.016565Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.016563Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ']' at test 1:6
[INFO] [stdout] | foo[1];
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016573Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.016574Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 10
[INFO] [stdout] [2m2026-05-15T06:51:26.016583Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.016584Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.016585Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ']' at test 1:6
[INFO] [stdout] | foo[1];
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016592Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.016594Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:26.016601Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ']' at test 1:6
[INFO] [stdout] | foo[1];
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016603Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_number function
[INFO] [stdout] [2m2026-05-15T06:51:26.015975Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016617Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ']' at test 1:6
[INFO] [stdout] | foo[1];
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016619Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:26.016630Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] [2m2026-05-15T06:51:26.016622Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''Call(foo)' at test 1:1 - 1:14 (14 chars)
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]   ^^^^^^^^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.016639Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ']' at test 1:6
[INFO] [stdout] | foo[1];
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016641Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is '2'
[INFO] [stdout] [2m2026-05-15T06:51:26.016649Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016652Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:26.016656Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ']' at test 1:6
[INFO] [stdout] | foo[1];
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016662Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 11 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:26.016664Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016672Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ']' at test 1:6
[INFO] [stdout] | foo[1];
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016673Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '12'
[INFO] [stdout] [2m2026-05-15T06:51:26.016675Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m token after statement parse is '';' at test 1:15
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]                 
[INFO] [stdout]                 ^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.016688Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:26.016690Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 7: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.016690Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ']' at test 1:6
[INFO] [stdout] | foo[1];
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016697Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.016699Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:26.016707Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 12
[INFO] [stdout] [2m2026-05-15T06:51:26.016704Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''1' at test 1:5
[INFO] [stdout] | foo[1];
[INFO] [stdout]       
[INFO] [stdout]       ^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.016710Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m parsed statement ''Call(foo);' at test 1:1 - 1:15 (15 chars)
[INFO] [stdout] | foo(bar(    ));
[INFO] [stdout]   ^^^^^^^^^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.016735Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.015357Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:26.016745Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 7 is None
[INFO] [stdout] [2m2026-05-15T06:51:26.016749Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.016759Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 5
[INFO] [stdout] [2m2026-05-15T06:51:26.016759Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ']' at test 1:6
[INFO] [stdout] | foo[1];
[INFO] [stdout]        
[INFO] [stdout]        ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016768Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:26.016775Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: ';'
[INFO] [stdout] [2m2026-05-15T06:51:26.016781Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:26.016791Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016792Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.016717Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.016887Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 11 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:26.016602Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] test parser::tests::calls_test ... ok
[INFO] [stdout] test lexer::tests::operators_test ... [2m2026-05-15T06:51:26.016946Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] ok
[INFO] [stdout] [2m2026-05-15T06:51:26.016958Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.016977Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is '"std"' at test 1:15 - 1:19 (5 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                 ^^^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.016999Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] test lexer::tests::numbers_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.017085Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.017110Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is '"std"' at test 1:15 - 1:19 (5 chars)
[INFO] [stderr]      Running unittests src/bin/vyder_debug_cli/main.rs (/opt/rustwide/target/debug/deps/vyder_debug_cli-a71b3b86b4c00cfd)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                 ^^^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017126Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 6: ')'
[INFO] [stdout] [2m2026-05-15T06:51:26.017143Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017159Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017174Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017190Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017209Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017224Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017240Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017256Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017266Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''"std"' at test 1:15 - 1:19 (5 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                 ^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.017295Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017314Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is ')' at test 1:20
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                      
[INFO] [stdout]                      ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017325Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 7: '.'
[INFO] [stdout] [2m2026-05-15T06:51:26.017340Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 7 is '.' at test 1:21
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                       
[INFO] [stdout]                       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017350Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 8: 'argc'
[INFO] [stdout] [2m2026-05-15T06:51:26.017367Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 8 is 'argc' at test 1:22 - 1:25 (4 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                        ^^^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017378Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 9: '+'
[INFO] [stdout] [2m2026-05-15T06:51:26.017395Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 9 is '+' at test 1:27
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                             
[INFO] [stdout]                             ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017404Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m ending branch for field access at token Some(Token { value: Plus(Plus), span: Span { start_location: Location { line: 1, column: 27, char_index: 26 }, end_location: None, module_name: "test", snippet: Some("foo = (import('std').argc + 2) + 2;") } })
[INFO] [stdout] [2m2026-05-15T06:51:26.017426Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 9 is '+' at test 1:27
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                             
[INFO] [stdout]                             ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017443Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 9 is '+' at test 1:27
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                             
[INFO] [stdout]                             ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017461Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 9 is '+' at test 1:27
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                             
[INFO] [stdout]                             ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017473Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 10: '2'
[INFO] [stdout] [2m2026-05-15T06:51:26.017495Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.017504Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.017514Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.017530Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 10 is '2' at test 1:29
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                               
[INFO] [stdout]                               ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017548Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.017558Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.017574Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 10 is '2' at test 1:29
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                               
[INFO] [stdout]                               ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017586Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 11: ')'
[INFO] [stdout] [2m2026-05-15T06:51:26.017602Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 11 is ')' at test 1:30
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                
[INFO] [stdout]                                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017618Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 11 is ')' at test 1:30
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                
[INFO] [stdout]                                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017636Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 11 is ')' at test 1:30
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                
[INFO] [stdout]                                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017654Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 11 is ')' at test 1:30
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                
[INFO] [stdout]                                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017678Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 11 is ')' at test 1:30
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                
[INFO] [stdout]                                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017696Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 11 is ')' at test 1:30
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                
[INFO] [stdout]                                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017713Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 11 is ')' at test 1:30
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                
[INFO] [stdout]                                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017728Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 11 is ')' at test 1:30
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                
[INFO] [stdout]                                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017741Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''Addition' at test 1:8 - 1:29 (22 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]          ^^^^^^^^^^^^^^^^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.017768Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 11 is ')' at test 1:30
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                
[INFO] [stdout]                                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.017782Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 12: '+'
[INFO] [stdout] [2m2026-05-15T06:51:26.017843Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 10 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:26.017861Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:26.017873Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 11 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.017884Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 12
[INFO] [stdout] [2m2026-05-15T06:51:26.017895Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 12 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:26.017880Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:26.017906Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 13
[INFO] [stdout] [2m2026-05-15T06:51:26.017916Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 13 is 'e'
[INFO] [stdout] [2m2026-05-15T06:51:26.017940Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 14
[INFO] [stdout] [2m2026-05-15T06:51:26.017951Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 14 is 's'
[INFO] [stdout] [2m2026-05-15T06:51:26.017969Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 15
[INFO] [stdout] [2m2026-05-15T06:51:26.017984Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 15 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:26.017999Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 16
[INFO] [stdout] [2m2026-05-15T06:51:26.018009Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 16 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.018008Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 12 is '+' at test 1:32
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                  
[INFO] [stdout]                                  ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018018Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 17
[INFO] [stdout] [2m2026-05-15T06:51:26.018028Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 17 is '2'
[INFO] [stdout] [2m2026-05-15T06:51:26.018037Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 18
[INFO] [stdout] [2m2026-05-15T06:51:26.018046Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 18 is '
[INFO] [stdout] '
[INFO] [stdout] [2m2026-05-15T06:51:26.018055Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 19
[INFO] [stdout] [2m2026-05-15T06:51:26.018062Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 20
[INFO] [stdout] [2m2026-05-15T06:51:26.018060Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 12 is '+' at test 1:32
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                  
[INFO] [stdout]                                  ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018072Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.018081Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 3, column 1
[INFO] [stdout] [2m2026-05-15T06:51:26.018081Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 12 is '+' at test 1:32
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                  
[INFO] [stdout]                                  ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018090Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 2
[INFO] [stdout] [2m2026-05-15T06:51:26.018094Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 13: '2'
[INFO] [stdout] [2m2026-05-15T06:51:26.018103Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.018103Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 20 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:26.018112Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.018115Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 20 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:26.018121Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.018125Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 20 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:26.018133Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 21
[INFO] [stdout] [2m2026-05-15T06:51:26.018137Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 13 is '2' at test 1:34
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                    
[INFO] [stdout]                                    ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018143Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 21 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.018151Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 22
[INFO] [stdout] [2m2026-05-15T06:51:26.018156Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.018161Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 22 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:26.018168Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.018170Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 23
[INFO] [stdout] [2m2026-05-15T06:51:26.018181Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 23 is 'e'
[INFO] [stdout] [2m2026-05-15T06:51:26.018189Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 24
[INFO] [stdout] [2m2026-05-15T06:51:26.018190Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 13 is '2' at test 1:34
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                    
[INFO] [stdout]                                    ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018199Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 24 is 's'
[INFO] [stdout] [2m2026-05-15T06:51:26.018202Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 14: ';'
[INFO] [stdout] [2m2026-05-15T06:51:26.018208Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 25
[INFO] [stdout] [2m2026-05-15T06:51:26.018218Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 25 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:26.018218Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018227Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 26
[INFO] [stdout] [2m2026-05-15T06:51:26.018235Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018236Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 26 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.018245Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 27
[INFO] [stdout] [2m2026-05-15T06:51:26.018250Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018255Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 27 is '3'
[INFO] [stdout] [2m2026-05-15T06:51:26.018265Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 28
[INFO] [stdout] [2m2026-05-15T06:51:26.018267Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018275Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 28 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:26.018286Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018285Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.018301Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 3, column 9
[INFO] [stdout] [2m2026-05-15T06:51:26.018303Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018311Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 2
[INFO] [stdout] [2m2026-05-15T06:51:26.018320Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018324Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 28 is '3'
[INFO] [stdout] [2m2026-05-15T06:51:26.018334Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_number function
[INFO] [stdout] [2m2026-05-15T06:51:26.018337Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018344Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 28 is '3'
[INFO] [stdout] [2m2026-05-15T06:51:26.018355Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 29
[INFO] [stdout] [2m2026-05-15T06:51:26.018365Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 29 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:26.018353Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''Assignment' at test 1:1 - 1:34 (34 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.018378Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '3'
[INFO] [stdout] [2m2026-05-15T06:51:26.018386Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018392Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 29
[INFO] [stdout] [2m2026-05-15T06:51:26.018401Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.018401Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 14 is ';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018411Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 3, column 10
[INFO] [stdout] [2m2026-05-15T06:51:26.018414Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m token after statement parse is '';' at test 1:35
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]                                     
[INFO] [stdout]                                     ^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.018421Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 2
[INFO] [stdout] [2m2026-05-15T06:51:26.018429Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 15: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.018434Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 29 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:26.018440Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:26.018444Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.018451Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m parsed statement ''Assignment;' at test 1:1 - 1:35 (35 chars)
[INFO] [stdout] | foo = (import('std').argc + 2) + 2;
[INFO] [stdout]   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.018494Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.018506Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 15 is None
[INFO] [stdout] test interpreter::tests::negate_test ... ok
[INFO] [stdout] test lexer::tests::comments_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.018632Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '+'
[INFO] [stdout] [2m2026-05-15T06:51:26.018662Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.018672Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 1
[INFO] [stdout] [2m2026-05-15T06:51:26.018682Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.018694Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '+'
[INFO] [stdout] test parser::tests::import_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.018705Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 0 is '"'
[INFO] [stdout] [2m2026-05-15T06:51:26.018718Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '+'
[INFO] [stdout] [2m2026-05-15T06:51:26.018742Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:26.018755Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.018764Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 2
[INFO] [stdout] [2m2026-05-15T06:51:26.018773Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.018785Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 1 is '"'
[INFO] [stdout] [2m2026-05-15T06:51:26.018819Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_string function
[INFO] [stdout] [2m2026-05-15T06:51:26.014792Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018828Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:26.018838Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 2 is 'H'
[INFO] [stdout] [2m2026-05-15T06:51:26.018860Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:26.018856Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018870Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is 'e'
[INFO] [stdout] [2m2026-05-15T06:51:26.018879Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:26.018873Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.018881Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.018889Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is 'l'
[INFO] [stdout] [2m2026-05-15T06:51:26.018894Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.018898Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] [2m2026-05-15T06:51:26.018905Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.018931Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.018941Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.018963Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.018974Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.019008Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is '12' at test 1:7 - 1:8 (2 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]         ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019038Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.019065Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] test interpreter::tests::number_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.019093Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 2 is '12' at test 1:7 - 1:8 (2 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]         ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019105Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: 'or'
[INFO] [stdout] [2m2026-05-15T06:51:26.019123Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is 'or' at test 1:10 - 1:11 (2 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]            ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019152Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is 'or' at test 1:10 - 1:11 (2 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]            ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019179Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is 'or' at test 1:10 - 1:11 (2 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]            ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019206Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is 'or' at test 1:10 - 1:11 (2 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]            ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019226Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is 'or' at test 1:10 - 1:11 (2 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]            ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019246Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is 'or' at test 1:10 - 1:11 (2 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]            ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019262Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is 'or' at test 1:10 - 1:11 (2 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]            ^^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019281Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: '3'
[INFO] [stdout] [2m2026-05-15T06:51:26.019291Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:26.019313Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:26.019322Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:26.019332Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:26.019341Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:26.019350Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:26.019358Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:26.019381Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is '3' at test 1:13
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]               
[INFO] [stdout]               ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019400Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:26.019427Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:26.019457Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is '3' at test 1:13
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]               
[INFO] [stdout]               ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019483Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 5: ';'
[INFO] [stdout] [2m2026-05-15T06:51:26.019501Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019517Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019536Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019552Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019580Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019608Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019623Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019660Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019677Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''Assignment' at test 1:1 - 1:13 (13 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]   ^^^^^^^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.019702Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019732Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is ';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.019745Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m token after statement parse is '';' at test 1:14
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]                
[INFO] [stdout]                ^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.019767Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 6: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.019777Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:26.019787Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m parsed statement ''Assignment;' at test 1:1 - 1:14 (14 chars)
[INFO] [stdout] | foo = 12 or 3;
[INFO] [stdout]   ^^^^^^^^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.018908Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'l'
[INFO] [stdout] [2m2026-05-15T06:51:26.019982Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:26.019832Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020099Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020119Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020152Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020180Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020197Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020217Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020229Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''Index' at test 1:1 - 1:6 (6 chars)
[INFO] [stdout] | foo[1];
[INFO] [stdout]   ^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.020263Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020278Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is ';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020298Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m token after statement parse is '';' at test 1:7
[INFO] [stdout] | foo[1];
[INFO] [stdout]         
[INFO] [stdout]         ^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.020313Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 5: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.020323Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:26.020334Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m parsed statement ''Index;' at test 1:1 - 1:7 (7 chars)
[INFO] [stdout] | foo[1];
[INFO] [stdout]   ^^^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.020368Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.020378Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is None
[INFO] [stdout] test parser::tests::index_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.018905Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020795Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Parsed expression ''Range' at test 1:1 - 1:4 (4 chars)
[INFO] [stdout] | 1..3;
[INFO] [stdout]   ^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.020878Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020899Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 3 is ';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here
[INFO] [stdout] [2m2026-05-15T06:51:26.020915Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m token after statement parse is '';' at test 1:5
[INFO] [stdout] | 1..3;
[INFO] [stdout]       
[INFO] [stdout]       ^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.020931Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.020941Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:26.020952Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m parsed statement ''Range;' at test 1:1 - 1:5 (5 chars)
[INFO] [stdout] | 1..3;
[INFO] [stderr]    Doc-tests vyder_core
[INFO] [stdout]   ^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:26.020977Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.020987Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is None
[INFO] [stdout] test parser::tests::ranges_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:26.020001Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:26.021153Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:26.021167Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is ','
[INFO] [stdout] [2m2026-05-15T06:51:26.021205Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 8
[INFO] [stdout] [2m2026-05-15T06:51:26.021245Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.021295Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 9
[INFO] [stdout] [2m2026-05-15T06:51:26.021330Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is 'W'
[INFO] [stdout] [2m2026-05-15T06:51:26.021368Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] [2m2026-05-15T06:51:26.017916Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.021426Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:26.021484Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 1
[INFO] [stdout] [2m2026-05-15T06:51:26.021520Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.021537Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:26.021551Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:26.021575Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:26.021587Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 1 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:26.021597Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:26.021608Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 2 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:26.021631Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:26.021642Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.021655Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'foo'
[INFO] [stdout] [2m2026-05-15T06:51:26.021699Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:26.021718Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.021727Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 4
[INFO] [stdout] [2m2026-05-15T06:51:26.021737Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.021749Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:26.021769Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:26.021779Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.021788Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 5
[INFO] [stdout] [2m2026-05-15T06:51:26.021799Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.021839Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:26.021851Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:26.021861Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] [2m2026-05-15T06:51:26.021882Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'e'
[INFO] [stdout] [2m2026-05-15T06:51:26.022211Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:26.022225Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:26.022235Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:26.022246Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is 'u'
[INFO] [stdout] [2m2026-05-15T06:51:26.022255Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 8
[INFO] [stdout] [2m2026-05-15T06:51:26.022295Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:26.022306Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 9
[INFO] [stdout] [2m2026-05-15T06:51:26.022316Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is 'n'
[INFO] [stdout] [2m2026-05-15T06:51:26.022338Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] [2m2026-05-15T06:51:26.022349Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is ')'
[INFO] [stdout] [2m2026-05-15T06:51:26.022361Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'return'
[INFO] [stdout] [2m2026-05-15T06:51:26.022375Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] [2m2026-05-15T06:51:26.022394Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.022404Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 11
[INFO] [stdout] [2m2026-05-15T06:51:26.022414Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.022440Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is ')'
[INFO] [stdout] [2m2026-05-15T06:51:26.022451Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is ')'
[INFO] [stdout] [2m2026-05-15T06:51:26.022464Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:26.022491Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.022501Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 12
[INFO] [stdout] [2m2026-05-15T06:51:26.022522Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.022535Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 11 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:26.022545Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:26.021510Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:26.023944Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 11 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:26.025119Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 12
[INFO] [stdout] [2m2026-05-15T06:51:26.025203Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 12 is 'l'
[INFO] [stdout] [2m2026-05-15T06:51:26.023987Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:26.025313Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is None
[INFO] [stdout] [2m2026-05-15T06:51:26.025242Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 13
[INFO] [stdout] [2m2026-05-15T06:51:26.025523Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 13 is 'd'
[INFO] [stdout] [2m2026-05-15T06:51:26.025646Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 14
[INFO] [stdout] [2m2026-05-15T06:51:26.025686Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 14 is '!'
[INFO] [stdout] [2m2026-05-15T06:51:26.025783Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 15
[INFO] [stdout] [2m2026-05-15T06:51:26.025921Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 15 is '"'
[INFO] [stdout] [2m2026-05-15T06:51:26.025961Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '"Hello, World!"'
[INFO] [stdout] [2m2026-05-15T06:51:26.026044Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 16
[INFO] [stdout] [2m2026-05-15T06:51:26.026082Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.026146Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 17
[INFO] [stdout] [2m2026-05-15T06:51:26.026183Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.026245Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 16 is '''
[INFO] [stdout] [2m2026-05-15T06:51:26.026281Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_string function
[INFO] [stdout] [2m2026-05-15T06:51:26.026380Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 17
[INFO] [stdout] [2m2026-05-15T06:51:26.026418Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 17 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:26.026479Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 18
[INFO] [stdout] [2m2026-05-15T06:51:26.026514Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 18 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:26.026573Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 19
[INFO] [stdout] [2m2026-05-15T06:51:26.026636Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 19 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:26.026672Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 20
[INFO] [stdout] [2m2026-05-15T06:51:26.026740Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 20 is '\'
[INFO] [stdout] [2m2026-05-15T06:51:26.026791Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 20 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:26.026881Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 21 without increasing column
[INFO] [stdout] [2m2026-05-15T06:51:26.026922Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 22
[INFO] [stdout] [2m2026-05-15T06:51:26.026996Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 22 is '''
[INFO] [stdout] [2m2026-05-15T06:51:26.027033Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '"foo	"'
[INFO] [stdout] [2m2026-05-15T06:51:26.027095Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 23
[INFO] [stdout] [2m2026-05-15T06:51:26.027133Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.027200Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 23
[INFO] [stdout] [2m2026-05-15T06:51:26.027237Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.027481Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 23 is '('
[INFO] [stdout] [2m2026-05-15T06:51:26.027553Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '('
[INFO] [stdout] [2m2026-05-15T06:51:26.027600Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 24
[INFO] [stdout] [2m2026-05-15T06:51:26.027682Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:26.027728Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 24
[INFO] [stdout] [2m2026-05-15T06:51:26.027799Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:26.027909Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 24 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:26.027950Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] test lexer::tests::identifiers_test ... ok
[INFO] [stdout] test parser::tests::assignment_test ... ok
[INFO] [stdout] test lexer::tests::strings_test ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[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] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/expression/mod.rs - expression::Expression::expect (line 23) ... ok
[INFO] [stdout] test src/statement/mod.rs - statement::Statement::expect (line 23) ... ok
[INFO] [stdout] test src/token/mod.rs - token::Token::expect (line 22) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fb8c53869dffde5e6b5208ddb5b093e33ac24b9ce21d96f661e9e9ab6fdd2c27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb8c53869dffde5e6b5208ddb5b093e33ac24b9ce21d96f661e9e9ab6fdd2c27", kill_on_drop: false }`
[INFO] [stdout] fb8c53869dffde5e6b5208ddb5b093e33ac24b9ce21d96f661e9e9ab6fdd2c27
