[INFO] fetching crate vyder_core 0.3.4...
[INFO] testing vyder_core-0.3.4 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate vyder_core 0.3.4 into /workspace/builds/worker-2-tc2/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-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate vyder_core 0.3.4 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 322b278ade83c7c54e982bcdb9fb9e016c0917fa61f8b3d368d333102e722179
[INFO] running `Command { std: "docker" "start" "-a" "322b278ade83c7c54e982bcdb9fb9e016c0917fa61f8b3d368d333102e722179", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "322b278ade83c7c54e982bcdb9fb9e016c0917fa61f8b3d368d333102e722179", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "322b278ade83c7c54e982bcdb9fb9e016c0917fa61f8b3d368d333102e722179", kill_on_drop: false }`
[INFO] [stdout] 322b278ade83c7c54e982bcdb9fb9e016c0917fa61f8b3d368d333102e722179
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c3217a30cea4e5fa2469ba82a0fc882a6128fb39128255179a702b53c4a4f09f
[INFO] running `Command { std: "docker" "start" "-a" "c3217a30cea4e5fa2469ba82a0fc882a6128fb39128255179a702b53c4a4f09f", kill_on_drop: false }`
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling pin-project-lite v0.2.14
[INFO] [stderr]    Compiling anstyle v1.0.7
[INFO] [stderr]    Compiling colorchoice v1.0.1
[INFO] [stderr]    Compiling anstyle-query v1.1.0
[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 anstyle-parse v0.2.4
[INFO] [stderr]    Compiling clap_lex v0.7.1
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling colored v2.1.0
[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 anstream v0.6.14
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling clap_builder v4.5.9
[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 enum_downcast_derive v0.2.0
[INFO] [stderr]    Compiling tracing-test-macro v0.2.5
[INFO] [stderr]    Compiling clap_derive v4.5.8
[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.14s
[INFO] running `Command { std: "docker" "inspect" "c3217a30cea4e5fa2469ba82a0fc882a6128fb39128255179a702b53c4a4f09f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c3217a30cea4e5fa2469ba82a0fc882a6128fb39128255179a702b53c4a4f09f", kill_on_drop: false }`
[INFO] [stdout] c3217a30cea4e5fa2469ba82a0fc882a6128fb39128255179a702b53c4a4f09f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2141ef4a5c21ae97a15bfbb5c810219d25b9b26915d58660dae72704d570c614
[INFO] running `Command { std: "docker" "start" "-a" "2141ef4a5c21ae97a15bfbb5c810219d25b9b26915d58660dae72704d570c614", kill_on_drop: false }`
[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]    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 `test` profile [unoptimized + debuginfo] target(s) in 3.25s
[INFO] running `Command { std: "docker" "inspect" "2141ef4a5c21ae97a15bfbb5c810219d25b9b26915d58660dae72704d570c614", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2141ef4a5c21ae97a15bfbb5c810219d25b9b26915d58660dae72704d570c614", kill_on_drop: false }`
[INFO] [stdout] 2141ef4a5c21ae97a15bfbb5c810219d25b9b26915d58660dae72704d570c614
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 32fcffdf87ff8c3fea34af2734b82904e7345eed493584f20ce7d1701017acab
[INFO] running `Command { std: "docker" "start" "-a" "32fcffdf87ff8c3fea34af2734b82904e7345eed493584f20ce7d1701017acab", 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.08s
[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:51.351225Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '#'
[INFO] [stdout] [2m2026-05-15T06:51:51.351589Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '+'
[INFO] [stdout] [2m2026-05-15T06:51:51.351657Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.353883Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.353899Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 1
[INFO] [stdout] [2m2026-05-15T06:51:51.353910Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.353922Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '+'
[INFO] [stdout] [2m2026-05-15T06:51:51.353933Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 0 is '='
[INFO] [stdout] [2m2026-05-15T06:51:51.353942Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:51.353952Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '+='
[INFO] [stdout] [2m2026-05-15T06:51:51.353977Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:51.353986Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.353994Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 3
[INFO] [stdout] [2m2026-05-15T06:51:51.354003Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.354012Z[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:51.354022Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.354030Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 1
[INFO] [stdout] [2m2026-05-15T06:51:51.354039Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:51.354049Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is '-'
[INFO] [stdout] [2m2026-05-15T06:51:51.354058Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 3 is '-'
[INFO] [stdout] [2m2026-05-15T06:51:51.354068Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 3 is '-'
[INFO] [stdout] [2m2026-05-15T06:51:51.352051Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.354275Z[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:51.356457Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:51.356456Z[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:51.356483Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.352958Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.356504Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.356516Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 1
[INFO] [stdout] [2m2026-05-15T06:51:51.356528Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.356540Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:51.356536Z[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:51.356551Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.356564Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:51.353844Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:51.354077Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '-'
[INFO] [stdout] [2m2026-05-15T06:51:51.353028Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '+'
[INFO] [stdout] [2m2026-05-15T06:51:51.356578Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] test interpreter::tests::number_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:51.356594Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.356595Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 1 is '!'
[INFO] [stdout] [2m2026-05-15T06:51:51.356599Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.356607Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:51.356612Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:51.356618Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 2 is 'v'
[INFO] [stdout] [2m2026-05-15T06:51:51.356616Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.356626Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.356628Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:51.356629Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 1
[INFO] [stdout] [2m2026-05-15T06:51:51.353562Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.356635Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 2
[INFO] [stdout] [2m2026-05-15T06:51:51.356638Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is 'y'
[INFO] [stdout] [2m2026-05-15T06:51:51.356640Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.356645Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:51.356648Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:51.356658Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is '-'
[INFO] [stdout] [2m2026-05-15T06:51:51.356658Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is 'd'
[INFO] [stdout] [2m2026-05-15T06:51:51.356664Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '+'
[INFO] [stdout] [2m2026-05-15T06:51:51.356668Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 4 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.356655Z[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:51.356677Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 4 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.356679Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] test interpreter::tests::group_test ... [2m2026-05-15T06:51:51.356688Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '-'
[INFO] [stdout] ok[2m2026-05-15T06:51:51.356689Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'e'
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-15T06:51:51.356674Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 0 is '"'
[INFO] [stdout] [2m2026-05-15T06:51:51.356700Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] [2m2026-05-15T06:51:51.356700Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:51.356707Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '+'
[INFO] [stdout] [2m2026-05-15T06:51:51.356709Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.356711Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:51.356720Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 3
[INFO] [stdout] [2m2026-05-15T06:51:51.356723Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:51.356729Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:51.356733Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.356739Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:51.356740Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.356743Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 2
[INFO] [stdout] [2m2026-05-15T06:51:51.356749Z[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:51.356751Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:51.356752Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.356760Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.356761Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.356764Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 1 is '"'
[INFO] [stdout] [2m2026-05-15T06:51:51.356769Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 8
[INFO] [stdout] [2m2026-05-15T06:51:51.356770Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 4
[INFO] [stdout] [2m2026-05-15T06:51:51.356775Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_string function
[INFO] [stdout] [2m2026-05-15T06:51:51.356778Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.356781Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:51.356784Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:51.356797Z[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:51.356706Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.356822Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.356832Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 1
[INFO] [stdout] [2m2026-05-15T06:51:51.356842Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:51.356844Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.356854Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is '+'
[INFO] [stdout] [2m2026-05-15T06:51:51.356865Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.356897Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.356922Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.356941Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.356966Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.356800Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:51.356981Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.357000Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.357001Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 6 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.357014Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 6 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.357026Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '/'
[INFO] [stdout] [2m2026-05-15T06:51:51.357040Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:51.357049Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.357059Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 5
[INFO] [stdout] [2m2026-05-15T06:51:51.357069Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:51.357077Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.357083Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.357097Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] test statement::tests::expect_test ... [2m2026-05-15T06:51:51.357105Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] ok
[INFO] [stdout] [2m2026-05-15T06:51:51.357115Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.357115Z[0m [32m INFO[0m [2mvyder_core::interpreter[0m[2m:[0m evaluating 'not'
[INFO] [stdout] [2m2026-05-15T06:51:51.357136Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.357158Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.357178Z[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:51.357229Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.357335Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.358310Z[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:51.358334Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '='
[INFO] [stdout] [2m2026-05-15T06:51:51.358353Z[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:51.358369Z[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:51.358384Z[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:51.358399Z[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:51.358418Z[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:51.358433Z[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:51.358448Z[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:51.358463Z[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:51.358486Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: '12'
[INFO] [stdout] [2m2026-05-15T06:51:51.358498Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.358508Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.358517Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.358525Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.358534Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.358543Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.358552Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.358561Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.358581Z[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:51.358599Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.358617Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.358634Z[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:51.358646Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: 'or'
[INFO] [stdout] [2m2026-05-15T06:51:51.358663Z[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:51.358679Z[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:51.358694Z[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:51.358709Z[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:51.358726Z[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:51.358742Z[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:51.358757Z[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:51.358768Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: '3'
[INFO] [stdout] [2m2026-05-15T06:51:51.358777Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.358786Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.358794Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.358820Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.358829Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.358848Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.358858Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.358875Z[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:51.358904Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.358923Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.358942Z[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:51.358953Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 5: ';'
[INFO] [stdout] [2m2026-05-15T06:51:51.358968Z[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:51.358982Z[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:51.358996Z[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:51.359011Z[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:51.359030Z[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:51.359043Z[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:51.359057Z[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:51.359086Z[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:51.359112Z[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:51.359137Z[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:51.359150Z[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:51.359167Z[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:51.359180Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 6: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.359194Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:51.359209Z[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:51.359229Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.359238Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 6 is None
[INFO] [stdout] [2m2026-05-15T06:51:51.356865Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 8 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.357482Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.359432Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '+'
[INFO] [stdout] [2m2026-05-15T06:51:51.357518Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.359462Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 9
[INFO] [stdout] [2m2026-05-15T06:51:51.359472Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.359488Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 2
[INFO] [stdout] [2m2026-05-15T06:51:51.359481Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.359497Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:51.359507Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.359510Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.359519Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] [2m2026-05-15T06:51:51.359520Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.359527Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.359536Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 2, column 3
[INFO] [stdout] [2m2026-05-15T06:51:51.359545Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 1
[INFO] [stdout] [2m2026-05-15T06:51:51.359543Z[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:51.359555Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:51.359562Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '-'
[INFO] [stdout] [2m2026-05-15T06:51:51.359565Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 10 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:51.359575Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 10 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:51.359575Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.359584Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:51.359591Z[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:51.359593Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 11 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.359601Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: 'foo'
[INFO] [stdout] [2m2026-05-15T06:51:51.359602Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 12
[INFO] [stdout] [2m2026-05-15T06:51:51.359613Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 12 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:51.359614Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.359622Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 13
[INFO] [stdout] [2m2026-05-15T06:51:51.359631Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 13 is 'e'
[INFO] [stdout] [2m2026-05-15T06:51:51.359633Z[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:51.359640Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 14
[INFO] [stdout] [2m2026-05-15T06:51:51.359649Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 14 is 's'
[INFO] [stdout] [2m2026-05-15T06:51:51.359658Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 15
[INFO] [stdout] [2m2026-05-15T06:51:51.359665Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.359667Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 15 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:51.359676Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 16
[INFO] [stdout] [2m2026-05-15T06:51:51.359686Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 16 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.359694Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 17
[INFO] [stdout] [2m2026-05-15T06:51:51.359704Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 17 is '2'
[INFO] [stdout] [2m2026-05-15T06:51:51.359713Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 18
[INFO] [stdout] [2m2026-05-15T06:51:51.359722Z[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:51.359732Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 19
[INFO] [stdout] [2m2026-05-15T06:51:51.359740Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 20
[INFO] [stdout] [2m2026-05-15T06:51:51.359749Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.359757Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 3, column 1
[INFO] [stdout] [2m2026-05-15T06:51:51.359766Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 2
[INFO] [stdout] [2m2026-05-15T06:51:51.359768Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.359777Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 20 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:51.359788Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 20 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:51.359786Z[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] test token::tests::expect_test ... [2m2026-05-15T06:51:51.359798Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 20 is '/'
[INFO] [stdout] [2m2026-05-15T06:51:51.352433Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.359826Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 21
[INFO] [stdout] [2m2026-05-15T06:51:51.359838Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 21 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.359846Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 22
[INFO] [stdout] [2m2026-05-15T06:51:51.359846Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.359857Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 22 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:51.359861Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.359866Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 23
[INFO] [stdout] [2m2026-05-15T06:51:51.359876Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 23 is 'e'
[INFO] [stdout] [2m2026-05-15T06:51:51.359871Z[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:51.359880Z[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:51.359885Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 24
[INFO] [stdout] [2m2026-05-15T06:51:51.359895Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 24 is 's'
[INFO] [stdout] [2m2026-05-15T06:51:51.359897Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.359903Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 25
[INFO] [stdout] [2m2026-05-15T06:51:51.359913Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.359914Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 25 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:51.359916Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.359925Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 26
[INFO] [stdout] [2m2026-05-15T06:51:51.359935Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 26 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.359933Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.359944Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 27
[INFO] [stdout] [2m2026-05-15T06:51:51.359955Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 27 is '3'
[INFO] [stdout] [2m2026-05-15T06:51:51.359958Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.359964Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 28
[INFO] [stdout] [2m2026-05-15T06:51:51.359974Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 28 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.359975Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.359983Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.359993Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.359997Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 3, column 9
[INFO] [stdout] [2m2026-05-15T06:51:51.360006Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 2
[INFO] [stdout] [2m2026-05-15T06:51:51.360009Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.360018Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 28 is '3'
[INFO] [stdout] [2m2026-05-15T06:51:51.360020Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.360026Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.360029Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_number function
[INFO] [stdout] [2m2026-05-15T06:51:51.360039Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 28 is '3'
[INFO] [stdout] [2m2026-05-15T06:51:51.360040Z[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:51.360044Z[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:51.360048Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 29
[INFO] [stdout] [2m2026-05-15T06:51:51.360052Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '..'
[INFO] [stdout] [2m2026-05-15T06:51:51.360059Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 29 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.360070Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '3'
[INFO] [stdout] [2m2026-05-15T06:51:51.360070Z[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:51.360082Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 29
[INFO] [stdout] [2m2026-05-15T06:51:51.360082Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.360088Z[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:51.360091Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.360100Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 3, column 10
[INFO] [stdout] [2m2026-05-15T06:51:51.360105Z[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:51.360108Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 2
[INFO] [stdout] [2m2026-05-15T06:51:51.360129Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 29 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.360137Z[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:51.360140Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.360150Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: '3'
[INFO] [stdout] [2m2026-05-15T06:51:51.360160Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.360169Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.360179Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.360194Z[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:51.360197Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.360221Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.360231Z[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:51.360232Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.360245Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '('
[INFO] [stdout] [2m2026-05-15T06:51:51.360251Z[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:51.360263Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: ';'
[INFO] [stdout] [2m2026-05-15T06:51:51.360264Z[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:51.360277Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: 'bar'
[INFO] [stdout] [2m2026-05-15T06:51:51.360292Z[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:51.360312Z[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:51.360323Z[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:51.360352Z[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:51.360371Z[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:51.360387Z[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:51.360403Z[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:51.360418Z[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:51.360429Z[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:51.360458Z[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:51.360483Z[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:51.360496Z[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:51.360511Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.360522Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:51.360534Z[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] [stdout]   ^^^^^ here'
[INFO] [stdout] [2m2026-05-15T06:51:51.360565Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.360575Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is None
[INFO] [stdout] [2m2026-05-15T06:51:51.360689Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: ';'
[INFO] [stdout] [2m2026-05-15T06:51:51.360736Z[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:51.360761Z[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:51.360777Z[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:51.360793Z[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:51.357652Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:51.360831Z[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:51.360849Z[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:51.360852Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.360866Z[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:51.360871Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 1
[INFO] [stdout] [2m2026-05-15T06:51:51.360881Z[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:51.360884Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.360898Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:51.360892Z[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:51.360909Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_number function
[INFO] [stdout] [2m2026-05-15T06:51:51.360917Z[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:51.360919Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 0 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:51.360930Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:51.360932Z[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:51.360941Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 1 is '2'
[INFO] [stdout] [2m2026-05-15T06:51:51.360945Z[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:51.360950Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:51.360960Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.360962Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 2 is '.'
[INFO] [stdout] [2m2026-05-15T06:51:51.360970Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:51.360973Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 2 is '5'
[INFO] [stdout] [2m2026-05-15T06:51:51.360983Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:51.360982Z[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:51.360993Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is '5'
[INFO] [stdout] [2m2026-05-15T06:51:51.361002Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.361003Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stderr]      Running unittests src/bin/vyder_debug_cli/main.rs (/opt/rustwide/target/debug/deps/vyder_debug_cli-a71b3b86b4c00cfd)
[INFO] [stdout] [2m2026-05-15T06:51:51.361012Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is None
[INFO] [stdout] [2m2026-05-15T06:51:51.361015Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is '.'
[INFO] [stdout] [2m2026-05-15T06:51:51.361028Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '12.5'
[INFO] [stdout] [2m2026-05-15T06:51:51.361049Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:51.361059Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.361068Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 5
[INFO] [stdout] [2m2026-05-15T06:51:51.361078Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.361090Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is '.'
[INFO] [stdout] [2m2026-05-15T06:51:51.361113Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 4 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:51.361123Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '.'
[INFO] [stdout] [2m2026-05-15T06:51:51.357617Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.361136Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] [2m2026-05-15T06:51:51.361149Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stderr]    Doc-tests vyder_core
[INFO] [stdout] [2m2026-05-15T06:51:51.361158Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 6
[INFO] [stdout] [2m2026-05-15T06:51:51.361167Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.361179Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:51.361173Z[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:51.361190Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:51.361200Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:51.361200Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.361210Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:51.361220Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:51.361218Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.361230Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:51.361237Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.361239Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 8
[INFO] [stdout] [2m2026-05-15T06:51:51.361250Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.361253Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.361262Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'foo'
[INFO] [stdout] [2m2026-05-15T06:51:51.361272Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.361275Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 8
[INFO] [stdout] [2m2026-05-15T06:51:51.361286Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.361288Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.361295Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 9
[INFO] [stdout] [2m2026-05-15T06:51:51.361305Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.361306Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.361317Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.361320Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.361327Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 9
[INFO] [stdout] [2m2026-05-15T06:51:51.361337Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.361345Z[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:51.361346Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 10
[INFO] [stdout] [2m2026-05-15T06:51:51.361358Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.361369Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:51.361379Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_number function
[INFO] [stdout] [2m2026-05-15T06:51:51.361389Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is '1'
[INFO] [stdout] [2m2026-05-15T06:51:51.361390Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.361398Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] [2m2026-05-15T06:51:51.361409Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is '2'
[INFO] [stdout] [2m2026-05-15T06:51:51.361419Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:51.361429Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 11 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.361440Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '12'
[INFO] [stdout] [2m2026-05-15T06:51:51.361453Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:51.361462Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.361471Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 12
[INFO] [stdout] [2m2026-05-15T06:51:51.361481Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.361503Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.356800Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 2 is 'H'
[INFO] [stdout] [2m2026-05-15T06:51:51.361529Z[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:51.361527Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 11 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.358268Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.361543Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '='
[INFO] [stdout] [2m2026-05-15T06:51:51.361545Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.361559Z[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:51.361573Z[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:51.361588Z[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:51.361609Z[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:51.361628Z[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:51.361657Z[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:51.361654Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:51.361674Z[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:51.357382Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.361852Z[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:51.361852Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.361868Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: '('
[INFO] [stdout] [2m2026-05-15T06:51:51.361877Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.361878Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.361889Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.361898Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.361895Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.361907Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.361916Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.361736Z[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:51.361929Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.361943Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.361954Z[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:51.361971Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.361990Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.361995Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.362009Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.362031Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.362045Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.362067Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.362079Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.362095Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.362106Z[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:51.362112Z[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:51.362125Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '['
[INFO] [stdout] [2m2026-05-15T06:51:51.362141Z[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] ok
[INFO] [stdout] test lexer::tests::operators_test ... ok
[INFO] [stdout] test interpreter::tests::not_test ... ok
[INFO] [stdout] test parser::tests::assignment_test ... ok
[INFO] [stdout] test interpreter::tests::negate_test ... ok
[INFO] [stdout] test lexer::tests::comments_test ... ok
[INFO] [stdout] test parser::tests::ranges_test ... ok
[INFO] [stdout] test parser::tests::unary_test ... ok
[INFO] [stdout] test lexer::tests::numbers_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:51.361916Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.362261Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.362280Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.362290Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.362308Z[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:51.362335Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.362355Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.362382Z[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:51.362404Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: 'import'
[INFO] [stdout] [2m2026-05-15T06:51:51.362422Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.362445Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.362470Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.361765Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is 'e'
[INFO] [stdout] [2m2026-05-15T06:51:51.362506Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: '1'
[INFO] [stdout] [2m2026-05-15T06:51:51.362515Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.362525Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.362534Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.362543Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.362553Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.362562Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.362572Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.362578Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:51.362582Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.362592Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is 'l'
[INFO] [stdout] [2m2026-05-15T06:51:51.362599Z[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:51.362610Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] [2m2026-05-15T06:51:51.362620Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.362145Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.362620Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'l'
[INFO] [stdout] [2m2026-05-15T06:51:51.362487Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.362646Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:51.362656Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:51.362677Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:51.362657Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.362688Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is ','
[INFO] [stdout] [2m2026-05-15T06:51:51.362698Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 8
[INFO] [stdout] [2m2026-05-15T06:51:51.362708Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.362717Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.362727Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.362734Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 9
[INFO] [stdout] [2m2026-05-15T06:51:51.362744Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is 'W'
[INFO] [stdout] [2m2026-05-15T06:51:51.362752Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.362760Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] [2m2026-05-15T06:51:51.362770Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:51.362777Z[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:51.362780Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:51.362790Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 11 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:51.362823Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.363024Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.363052Z[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:51.363070Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: '('
[INFO] [stdout] [2m2026-05-15T06:51:51.363085Z[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:51.363100Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 5: '"std"'
[INFO] [stdout] [2m2026-05-15T06:51:51.363116Z[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:51.363131Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.363140Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.363156Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.363165Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.363181Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.363190Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.363206Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.363214Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.363230Z[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:51.363252Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.363323Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.363347Z[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:51.363367Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 6: ')'
[INFO] [stdout] [2m2026-05-15T06:51:51.363391Z[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:51.363414Z[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:51.363427Z[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:51.363457Z[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:51.363488Z[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:51.363508Z[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:51.363522Z[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:51.363541Z[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:51.363551Z[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:51.363579Z[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:51.363603Z[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:51.363620Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 7: '.'
[INFO] [stdout] [2m2026-05-15T06:51:51.363634Z[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:51.363650Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 8: 'argc'
[INFO] [stdout] [2m2026-05-15T06:51:51.363665Z[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:51.363681Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 9: '+'
[INFO] [stdout] [2m2026-05-15T06:51:51.363711Z[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:51.363726Z[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:51.363750Z[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:51.363771Z[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:51.363785Z[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:51.363857Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.363894Z[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:51.363912Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 1: '.'
[INFO] [stdout] [2m2026-05-15T06:51:51.363927Z[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:51.363942Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 2: 'bar'
[INFO] [stdout] [2m2026-05-15T06:51:51.363957Z[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:51.363967Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: ';'
[INFO] [stdout] [2m2026-05-15T06:51:51.363988Z[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:51.363996Z[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:51.364019Z[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:51.364033Z[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:51.364053Z[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:51.364072Z[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:51.364094Z[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:51.364108Z[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:51.364127Z[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:51.364141Z[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:51.364156Z[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:51.364185Z[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:51.364198Z[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:51.364214Z[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:51.364227Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.364245Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:51.364255Z[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:51.364278Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.364287Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 4 is None
[INFO] [stdout] [2m2026-05-15T06:51:51.362888Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.362910Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 12
[INFO] [stdout] [2m2026-05-15T06:51:51.364446Z[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:51.364450Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 12 is 'l'
[INFO] [stdout] [2m2026-05-15T06:51:51.364463Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 13
[INFO] [stdout] test parser::tests::field_access_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:51.364500Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 13 is 'd'
[INFO] [stdout] [2m2026-05-15T06:51:51.363800Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 10: '2'
[INFO] [stdout] [2m2026-05-15T06:51:51.364590Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 14
[INFO] [stdout] [2m2026-05-15T06:51:51.364464Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: ']'
[INFO] [stdout] [2m2026-05-15T06:51:51.364604Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 14 is '!'
[INFO] [stdout] [2m2026-05-15T06:51:51.364613Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 15
[INFO] [stdout] [2m2026-05-15T06:51:51.364617Z[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:51.364624Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 15 is '"'
[INFO] [stdout] [2m2026-05-15T06:51:51.364632Z[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:51.364635Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '"Hello, World!"'
[INFO] [stdout] [2m2026-05-15T06:51:51.364647Z[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:51.364650Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 16
[INFO] [stdout] [2m2026-05-15T06:51:51.364659Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.364662Z[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:51.364668Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 17
[INFO] [stdout] [2m2026-05-15T06:51:51.364678Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.364679Z[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:51.364690Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 16 is '''
[INFO] [stdout] [2m2026-05-15T06:51:51.364693Z[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:51.364701Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m get_string function
[INFO] [stdout] [2m2026-05-15T06:51:51.364709Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 17
[INFO] [stdout] [2m2026-05-15T06:51:51.364709Z[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:51.364724Z[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:51.364719Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 17 is 'f'
[INFO] [stdout] [2m2026-05-15T06:51:51.364736Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 18
[INFO] [stdout] [2m2026-05-15T06:51:51.364735Z[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:51.364746Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 18 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:51.364754Z[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:51.364756Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 19
[INFO] [stdout] [2m2026-05-15T06:51:51.364766Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: ';'
[INFO] [stdout] [2m2026-05-15T06:51:51.364766Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 19 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:51.364776Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 20
[INFO] [stdout] [2m2026-05-15T06:51:51.364779Z[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:51.364787Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 20 is '\'
[INFO] [stdout] [2m2026-05-15T06:51:51.364795Z[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:51.364798Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 1 from 20 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:51.356576Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 1
[INFO] [stdout] [2m2026-05-15T06:51:51.364828Z[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:51.364834Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 21 without increasing column
[INFO] [stdout] [2m2026-05-15T06:51:51.364844Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 22
[INFO] [stdout] [2m2026-05-15T06:51:51.364844Z[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:51.364845Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 1 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:51.364855Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 22 is '''
[INFO] [stdout] [2m2026-05-15T06:51:51.364862Z[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:51.364863Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 2
[INFO] [stdout] [2m2026-05-15T06:51:51.364867Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '"foo	"'
[INFO] [stdout] [2m2026-05-15T06:51:51.364876Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 2 is 'o'
[INFO] [stdout] [2m2026-05-15T06:51:51.364879Z[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:51.364880Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 23
[INFO] [stdout] [2m2026-05-15T06:51:51.364886Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:51.364890Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.364894Z[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:51.364896Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.364899Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 23
[INFO] [stdout] [2m2026-05-15T06:51:51.364908Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'foo'
[INFO] [stdout] [2m2026-05-15T06:51:51.364909Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.364924Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 3
[INFO] [stdout] [2m2026-05-15T06:51:51.364909Z[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:51.364934Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.364935Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 23 is '('
[INFO] [stdout] [2m2026-05-15T06:51:51.364943Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 4
[INFO] [stdout] [2m2026-05-15T06:51:51.364945Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is '('
[INFO] [stdout] [2m2026-05-15T06:51:51.364943Z[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:51.364953Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.364958Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 24
[INFO] [stdout] [2m2026-05-15T06:51:51.364968Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.364968Z[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:51.364969Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 3 is ' '
[INFO] [stdout] [2m2026-05-15T06:51:51.364976Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 24
[INFO] [stdout] [2m2026-05-15T06:51:51.364981Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 4
[INFO] [stdout] [2m2026-05-15T06:51:51.364982Z[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:51.364986Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.364992Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.364998Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 24 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.364995Z[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:51.365001Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 5
[INFO] [stdout] [2m2026-05-15T06:51:51.365008Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.365010Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 5: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.365012Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.365019Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:51.365024Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:51.365035Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 4 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:51.365030Z[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:51.365045Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 5
[INFO] [stdout] [2m2026-05-15T06:51:51.365055Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 5 is 'e'
[INFO] [stdout] [2m2026-05-15T06:51:51.365065Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 6
[INFO] [stdout] [2m2026-05-15T06:51:51.365075Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 6 is 't'
[INFO] [stdout] [2m2026-05-15T06:51:51.365076Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.365086Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 7
[INFO] [stdout] [2m2026-05-15T06:51:51.365089Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 5 is None
[INFO] [stdout] [2m2026-05-15T06:51:51.365106Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 7 is 'u'
[INFO] [stdout] test lexer::tests::strings_test ... [2m2026-05-15T06:51:51.365117Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 8
[INFO] [stdout] ok
[INFO] [stdout] [2m2026-05-15T06:51:51.365130Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 8 is 'r'
[INFO] [stdout] [2m2026-05-15T06:51:51.365140Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 9
[INFO] [stdout] [2m2026-05-15T06:51:51.365151Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 9 is 'n'
[INFO] [stdout] [2m2026-05-15T06:51:51.365161Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] [2m2026-05-15T06:51:51.365190Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is ')'
[INFO] [stdout] [2m2026-05-15T06:51:51.365203Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'return'
[INFO] [stdout] [2m2026-05-15T06:51:51.365237Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 10
[INFO] [stdout] test parser::tests::index_test ... [2m2026-05-15T06:51:51.365258Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] ok
[INFO] [stdout] [2m2026-05-15T06:51:51.365271Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 11
[INFO] [stdout] [2m2026-05-15T06:51:51.365281Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.364926Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.365308Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 10 is ')'
[INFO] [stdout] [2m2026-05-15T06:51:51.365320Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is ')'
[INFO] [stdout] [2m2026-05-15T06:51:51.365322Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.365356Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Advancing to char index 11
[INFO] [stdout] [2m2026-05-15T06:51:51.365387Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Normal get_token function
[INFO] [stdout] [2m2026-05-15T06:51:51.365406Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Constructing span at line 1, column 12
[INFO] [stdout] [2m2026-05-15T06:51:51.365416Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m getting line 0
[INFO] [stdout] [2m2026-05-15T06:51:51.365430Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Char at distance 0 from 11 is 'None'
[INFO] [stdout] [2m2026-05-15T06:51:51.365449Z[0m [32m INFO[0m [2mvyder_core::lexer[0m[2m:[0m Next token is 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.365362Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.365532Z[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] test lexer::tests::identifiers_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:51.365564Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.365601Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.365618Z[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:51.365629Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 11: ')'
[INFO] [stdout] [2m2026-05-15T06:51:51.365642Z[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:51.365655Z[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:51.365671Z[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:51.365698Z[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:51.365719Z[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:51.365736Z[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:51.365752Z[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:51.365766Z[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:51.365777Z[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:51.365949Z[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:51.365986Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 12: '+'
[INFO] [stdout] [2m2026-05-15T06:51:51.366007Z[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:51.366025Z[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:51.366040Z[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:51.366052Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 13: '2'
[INFO] [stdout] [2m2026-05-15T06:51:51.366061Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.366071Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.366080Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.366096Z[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:51.366115Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.366125Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.366140Z[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:51.366150Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 14: ';'
[INFO] [stdout] [2m2026-05-15T06:51:51.366167Z[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:51.366182Z[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:51.366197Z[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:51.366213Z[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:51.366231Z[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:51.366247Z[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:51.366262Z[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:51.366276Z[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:51.366291Z[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:51.366333Z[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:51.366348Z[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:51.366359Z[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:51.366373Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 15: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.366383Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:51.366393Z[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:51.366421Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.366431Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 15 is None
[INFO] [stdout] test parser::tests::import_test ... ok
[INFO] [stdout] [2m2026-05-15T06:51:51.360325Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_expression function
[INFO] [stdout] [2m2026-05-15T06:51:51.368858Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_combiner function
[INFO] [stdout] [2m2026-05-15T06:51:51.368878Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_equality function
[INFO] [stdout] [2m2026-05-15T06:51:51.368890Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_comparison function
[INFO] [stdout] [2m2026-05-15T06:51:51.368902Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_range function
[INFO] [stdout] [2m2026-05-15T06:51:51.368913Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_term function
[INFO] [stdout] [2m2026-05-15T06:51:51.368935Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_factor function
[INFO] [stdout] [2m2026-05-15T06:51:51.368946Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_unary function
[INFO] [stdout] [2m2026-05-15T06:51:51.368969Z[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:51.368993Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_properties function
[INFO] [stdout] [2m2026-05-15T06:51:51.369073Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_primary function
[INFO] [stdout] [2m2026-05-15T06:51:51.369111Z[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:51.369126Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 3: '('
[INFO] [stdout] [2m2026-05-15T06:51:51.369144Z[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:51.369156Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 4: ')'
[INFO] [stdout] [2m2026-05-15T06:51:51.369171Z[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:51.369190Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 5: ')'
[INFO] [stdout] [2m2026-05-15T06:51:51.369207Z[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:51.369223Z[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:51.369240Z[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:51.369256Z[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:51.369276Z[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:51.369291Z[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:51.369312Z[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:51.369326Z[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:51.369335Z[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:51.369362Z[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:51.369379Z[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:51.369390Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 6: ';'
[INFO] [stdout] [2m2026-05-15T06:51:51.369406Z[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:51.369424Z[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:51.369439Z[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:51.369455Z[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:51.369473Z[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:51.369499Z[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:51.369516Z[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:51.369542Z[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:51.369553Z[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:51.369580Z[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:51.369595Z[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:51.369608Z[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:51.369623Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Advancing to token index 7: 'EOF'
[INFO] [stdout] [2m2026-05-15T06:51:51.369634Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m exit get_statement
[INFO] [stdout] [2m2026-05-15T06:51:51.369645Z[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:51.369668Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m get_statement function
[INFO] [stdout] [2m2026-05-15T06:51:51.369678Z[0m [32m INFO[0m [2mvyder_core::parser[0m[2m:[0m Token at distance 0 from 7 is None
[INFO] [stdout] test parser::tests::calls_test ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[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/token/mod.rs - token::Token::expect (line 22) ... ok
[INFO] [stdout] test src/statement/mod.rs - statement::Statement::expect (line 23) ... ok
[INFO] [stdout] test src/expression/mod.rs - expression::Expression::expect (line 23) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "32fcffdf87ff8c3fea34af2734b82904e7345eed493584f20ce7d1701017acab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "32fcffdf87ff8c3fea34af2734b82904e7345eed493584f20ce7d1701017acab", kill_on_drop: false }`
[INFO] [stdout] 32fcffdf87ff8c3fea34af2734b82904e7345eed493584f20ce7d1701017acab
