[INFO] fetching crate vyder_core 0.3.4... [INFO] testing vyder_core-0.3.4 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate vyder_core 0.3.4 into /workspace/builds/worker-7-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-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate vyder_core 0.3.4 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1ff387a3d0615cbe38f8ce932a7d3d4a617395bb5d5ee254638c2e91486aa77d [INFO] running `Command { std: "docker" "start" "-a" "1ff387a3d0615cbe38f8ce932a7d3d4a617395bb5d5ee254638c2e91486aa77d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1ff387a3d0615cbe38f8ce932a7d3d4a617395bb5d5ee254638c2e91486aa77d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1ff387a3d0615cbe38f8ce932a7d3d4a617395bb5d5ee254638c2e91486aa77d", kill_on_drop: false }` [INFO] [stdout] 1ff387a3d0615cbe38f8ce932a7d3d4a617395bb5d5ee254638c2e91486aa77d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a374c88ad70931033e1a964cb248728918811e531260221327a78315498c4d74 [INFO] running `Command { std: "docker" "start" "-a" "a374c88ad70931033e1a964cb248728918811e531260221327a78315498c4d74", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling overload v0.1.1 [INFO] [stderr] Compiling colored v2.1.0 [INFO] [stderr] Compiling clap_builder v4.5.9 [INFO] [stderr] Compiling nu-ansi-term v0.46.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling regex-automata v0.1.10 [INFO] [stderr] Compiling matchers v0.1.0 [INFO] [stderr] Compiling regex v1.10.5 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling tracing-test-macro v0.2.5 [INFO] [stderr] Compiling enum_downcast_derive v0.2.0 [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)>, [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 [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 23.29s [INFO] running `Command { std: "docker" "inspect" "a374c88ad70931033e1a964cb248728918811e531260221327a78315498c4d74", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a374c88ad70931033e1a964cb248728918811e531260221327a78315498c4d74", kill_on_drop: false }` [INFO] [stdout] a374c88ad70931033e1a964cb248728918811e531260221327a78315498c4d74 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5c9ec3a8f01e2b0dfc0e04911638a65505dfa25b9f32534f5b1520fb34bf7472 [INFO] running `Command { std: "docker" "start" "-a" "5c9ec3a8f01e2b0dfc0e04911638a65505dfa25b9f32534f5b1520fb34bf7472", 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)>, [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 [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)>, [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 [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 2.90s [INFO] running `Command { std: "docker" "inspect" "5c9ec3a8f01e2b0dfc0e04911638a65505dfa25b9f32534f5b1520fb34bf7472", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c9ec3a8f01e2b0dfc0e04911638a65505dfa25b9f32534f5b1520fb34bf7472", kill_on_drop: false }` [INFO] [stdout] 5c9ec3a8f01e2b0dfc0e04911638a65505dfa25b9f32534f5b1520fb34bf7472 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] ef68e1a5f5eaa8fe8897e93492e934e6294d7ccd53552b226cbd807261b71f75 [INFO] running `Command { std: "docker" "start" "-a" "ef68e1a5f5eaa8fe8897e93492e934e6294d7ccd53552b226cbd807261b71f75", 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)>, [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 [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.09s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vyder_core-36b7dcc3cc730f69) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test expression::tests::expect_test ... ok [INFO] [stdout] 2026-04-20T01:07:43.635837Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '#' [INFO] [stdout] test interpreter::tests::negate_test ... ok [INFO] [stdout] 2026-04-20T01:07:43.636752Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] test interpreter::tests::number_test ... ok [INFO] [stdout] 2026-04-20T01:07:43.637553Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] test statement::tests::expect_test ... ok [INFO] [stdout] 2026-04-20T01:07:43.637596Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.637633Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.637636Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2026-04-20T01:07:43.637656Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '!' [INFO] [stdout] 2026-04-20T01:07:43.637658Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.637668Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2026-04-20T01:07:43.637676Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'v' [INFO] [stdout] 2026-04-20T01:07:43.637680Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.637685Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2026-04-20T01:07:43.637693Z  INFO vyder_core::lexer: Char at distance 0 from 3 is 'y' [INFO] [stdout] 2026-04-20T01:07:43.637702Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2026-04-20T01:07:43.637703Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.637710Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'd' [INFO] [stdout] 2026-04-20T01:07:43.637718Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2026-04-20T01:07:43.637727Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'e' [INFO] [stdout] 2026-04-20T01:07:43.637724Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.637736Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2026-04-20T01:07:43.637744Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'r' [INFO] [stdout] 2026-04-20T01:07:43.637750Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.637753Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2026-04-20T01:07:43.637762Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ' [INFO] [stdout] ' [INFO] [stdout] 2026-04-20T01:07:43.637770Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.637773Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.637779Z  INFO vyder_core::lexer: Constructing span at line 1, column 8 [INFO] [stdout] 2026-04-20T01:07:43.637788Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.637796Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.637798Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ' [INFO] [stdout] ' [INFO] [stdout] 2026-04-20T01:07:43.637807Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.637816Z  INFO vyder_core::lexer: Constructing span at line 2, column 1 [INFO] [stdout] 2026-04-20T01:07:43.637818Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.637824Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2026-04-20T01:07:43.637833Z  INFO vyder_core::lexer: Char at distance 0 from 8 is '+' [INFO] [stdout] 2026-04-20T01:07:43.637842Z  INFO vyder_core::lexer: Char at distance 1 from 8 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.637852Z  INFO vyder_core::lexer: Next token is '+' [INFO] [stdout] 2026-04-20T01:07:43.637857Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.637864Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2026-04-20T01:07:43.637872Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.637880Z  INFO vyder_core::lexer: Constructing span at line 2, column 2 [INFO] [stdout] 2026-04-20T01:07:43.637888Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2026-04-20T01:07:43.637898Z  INFO vyder_core::lexer: Char at distance 0 from 9 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.637906Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2026-04-20T01:07:43.637914Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.637921Z  INFO vyder_core::lexer: Constructing span at line 2, column 3 [INFO] [stdout] 2026-04-20T01:07:43.637929Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2026-04-20T01:07:43.637939Z  INFO vyder_core::lexer: Char at distance 0 from 10 is '/' [INFO] [stdout] 2026-04-20T01:07:43.637327Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2026-04-20T01:07:43.637948Z  INFO vyder_core::lexer: Char at distance 1 from 10 is '/' [INFO] [stdout] 2026-04-20T01:07:43.637959Z  INFO vyder_core::lexer: Char at distance 1 from 10 is '/' [INFO] [stdout] 2026-04-20T01:07:43.637962Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.637967Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2026-04-20T01:07:43.637974Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2026-04-20T01:07:43.637976Z  INFO vyder_core::lexer: Char at distance 1 from 11 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.637984Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.637984Z  INFO vyder_core::lexer: Advancing to char index 12 [INFO] [stdout] 2026-04-20T01:07:43.637995Z  INFO vyder_core::lexer: Char at distance 1 from 12 is 't' [INFO] [stdout] 2026-04-20T01:07:43.638003Z  INFO vyder_core::lexer: Advancing to char index 13 [INFO] [stdout] 2026-04-20T01:07:43.638007Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2026-04-20T01:07:43.638012Z  INFO vyder_core::lexer: Char at distance 1 from 13 is 'e' [INFO] [stdout] 2026-04-20T01:07:43.638021Z  INFO vyder_core::lexer: Advancing to char index 14 [INFO] [stdout] 2026-04-20T01:07:43.638020Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2026-04-20T01:07:43.638030Z  INFO vyder_core::lexer: Char at distance 1 from 14 is 's' [INFO] [stdout] 2026-04-20T01:07:43.638031Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2026-04-20T01:07:43.638038Z  INFO vyder_core::lexer: Advancing to char index 15 [INFO] [stdout] 2026-04-20T01:07:43.638040Z  INFO vyder_core::lexer: Char at distance 0 from 1 is 'o' [INFO] [stdout] 2026-04-20T01:07:43.638047Z  INFO vyder_core::lexer: Char at distance 1 from 15 is 't' [INFO] [stdout] 2026-04-20T01:07:43.638049Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2026-04-20T01:07:43.638055Z  INFO vyder_core::lexer: Advancing to char index 16 [INFO] [stdout] 2026-04-20T01:07:43.638058Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'o' [INFO] [stdout] 2026-04-20T01:07:43.638064Z  INFO vyder_core::lexer: Char at distance 1 from 16 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.638066Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2026-04-20T01:07:43.638073Z  INFO vyder_core::lexer: Advancing to char index 17 [INFO] [stdout] 2026-04-20T01:07:43.638075Z  INFO vyder_core::lexer: Char at distance 0 from 3 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.638082Z  INFO vyder_core::lexer: Char at distance 1 from 17 is '2' [INFO] [stdout] 2026-04-20T01:07:43.638085Z  INFO vyder_core::lexer: Next token is 'foo' [INFO] [stdout] 2026-04-20T01:07:43.638090Z  INFO vyder_core::lexer: Advancing to char index 18 [INFO] [stdout] 2026-04-20T01:07:43.638098Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2026-04-20T01:07:43.638099Z  INFO vyder_core::lexer: Char at distance 1 from 18 is ' [INFO] [stdout] ' [INFO] [stdout] 2026-04-20T01:07:43.638106Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638107Z  INFO vyder_core::lexer: Advancing to char index 19 [INFO] [stdout] 2026-04-20T01:07:43.638114Z  INFO vyder_core::lexer: Constructing span at line 1, column 4 [INFO] [stdout] 2026-04-20T01:07:43.638115Z  INFO vyder_core::lexer: Advancing to char index 20 [INFO] [stdout] 2026-04-20T01:07:43.638122Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.638123Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638131Z  INFO vyder_core::lexer: Constructing span at line 3, column 1 [INFO] [stdout] 2026-04-20T01:07:43.638132Z  INFO vyder_core::lexer: Char at distance 0 from 3 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.638139Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2026-04-20T01:07:43.638140Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2026-04-20T01:07:43.638148Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638149Z  INFO vyder_core::lexer: Char at distance 0 from 20 is '/' [INFO] [stdout] 2026-04-20T01:07:43.638139Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.638156Z  INFO vyder_core::lexer: Constructing span at line 1, column 5 [INFO] [stdout] 2026-04-20T01:07:43.638159Z  INFO vyder_core::lexer: Char at distance 1 from 20 is '/' [INFO] [stdout] 2026-04-20T01:07:43.638207Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.638215Z  INFO vyder_core::lexer: Char at distance 1 from 20 is '/' [INFO] [stdout] 2026-04-20T01:07:43.638217Z  INFO vyder_core::parser: Token at distance 0 from 0 is '!' at test 1:1 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.638225Z  INFO vyder_core::lexer: Advancing to char index 21 [INFO] [stdout] 2026-04-20T01:07:43.638235Z  INFO vyder_core::lexer: Char at distance 1 from 21 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.638243Z  INFO vyder_core::lexer: Advancing to char index 22 [INFO] [stdout] 2026-04-20T01:07:43.638242Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.638252Z  INFO vyder_core::lexer: Char at distance 1 from 22 is 't' [INFO] [stdout] 2026-04-20T01:07:43.638261Z  INFO vyder_core::lexer: Advancing to char index 23 [INFO] [stdout] 2026-04-20T01:07:43.638262Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.638270Z  INFO vyder_core::lexer: Char at distance 1 from 23 is 'e' [INFO] [stdout] 2026-04-20T01:07:43.638278Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.638279Z  INFO vyder_core::lexer: Advancing to char index 24 [INFO] [stdout] 2026-04-20T01:07:43.638290Z  INFO vyder_core::lexer: Char at distance 1 from 24 is 's' [INFO] [stdout] 2026-04-20T01:07:43.638294Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.638299Z  INFO vyder_core::lexer: Advancing to char index 25 [INFO] [stdout] 2026-04-20T01:07:43.638332Z  INFO vyder_core::lexer: Char at distance 1 from 25 is 't' [INFO] [stdout] 2026-04-20T01:07:43.638220Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'r' [INFO] [stdout] 2026-04-20T01:07:43.638337Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.638341Z  INFO vyder_core::lexer: Advancing to char index 26 [INFO] [stdout] 2026-04-20T01:07:43.638348Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'r' [INFO] [stdout] 2026-04-20T01:07:43.638350Z  INFO vyder_core::lexer: Char at distance 1 from 26 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.638354Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.638359Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2026-04-20T01:07:43.638374Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.638382Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'e' [INFO] [stdout] 2026-04-20T01:07:43.638392Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2026-04-20T01:07:43.638388Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.638402Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 't' [INFO] [stdout] 2026-04-20T01:07:43.638411Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2026-04-20T01:07:43.638417Z  INFO vyder_core::parser: Token at distance 0 from 0 is '!' at test 1:1 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.638421Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'u' [INFO] [stdout] 2026-04-20T01:07:43.638437Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2026-04-20T01:07:43.638448Z  INFO vyder_core::lexer: Char at distance 0 from 8 is 'r' [INFO] [stdout] 2026-04-20T01:07:43.638457Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2026-04-20T01:07:43.638466Z  INFO vyder_core::lexer: Char at distance 0 from 9 is 'n' [INFO] [stdout] 2026-04-20T01:07:43.638464Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2026-04-20T01:07:43.638476Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2026-04-20T01:07:43.638480Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638486Z  INFO vyder_core::lexer: Char at distance 0 from 10 is ')' [INFO] [stdout] 2026-04-20T01:07:43.638490Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2026-04-20T01:07:43.638496Z  INFO vyder_core::lexer: Next token is 'return' [INFO] [stdout] 2026-04-20T01:07:43.638500Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.638510Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2026-04-20T01:07:43.638512Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2026-04-20T01:07:43.638519Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638522Z  INFO vyder_core::lexer: Char at distance 1 from 0 is '=' [INFO] [stdout] 2026-04-20T01:07:43.638529Z  INFO vyder_core::lexer: Constructing span at line 1, column 11 [INFO] [stdout] 2026-04-20T01:07:43.638535Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2026-04-20T01:07:43.638538Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.638546Z  INFO vyder_core::lexer: Next token is '+=' [INFO] [stdout] 2026-04-20T01:07:43.638549Z  INFO vyder_core::lexer: Char at distance 0 from 10 is ')' [INFO] [stdout] 2026-04-20T01:07:43.638559Z  INFO vyder_core::lexer: Next token is ')' [INFO] [stdout] 2026-04-20T01:07:43.638566Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2026-04-20T01:07:43.638570Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2026-04-20T01:07:43.638587Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638589Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638597Z  INFO vyder_core::lexer: Constructing span at line 1, column 3 [INFO] [stdout] 2026-04-20T01:07:43.638599Z  INFO vyder_core::lexer: Constructing span at line 1, column 12 [INFO] [stdout] 2026-04-20T01:07:43.638608Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.638609Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.638621Z  INFO vyder_core::lexer: Char at distance 0 from 2 is ' [INFO] [stdout] ' [INFO] [stdout] 2026-04-20T01:07:43.638622Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.638631Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638633Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.638641Z  INFO vyder_core::lexer: Constructing span at line 2, column 1 [INFO] [stdout] test interpreter::tests::group_test ... ok [INFO] [stdout] 2026-04-20T01:07:43.638650Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2026-04-20T01:07:43.638665Z  INFO vyder_core::lexer: Char at distance 0 from 3 is '-' [INFO] [stdout] 2026-04-20T01:07:43.638675Z  INFO vyder_core::lexer: Char at distance 1 from 3 is '-' [INFO] [stdout] 2026-04-20T01:07:43.638685Z  INFO vyder_core::lexer: Char at distance 1 from 3 is '-' [INFO] [stdout] 2026-04-20T01:07:43.638695Z  INFO vyder_core::lexer: Next token is '-' [INFO] [stdout] 2026-04-20T01:07:43.638718Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2026-04-20T01:07:43.638729Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] test lexer::tests::identifiers_test ... 2026-04-20T01:07:43.638360Z  INFO vyder_core::lexer: Advancing to char index 27 [INFO] [stdout] 2026-04-20T01:07:43.638739Z  INFO vyder_core::lexer: Constructing span at line 2, column 2 [INFO] [stdout] 2026-04-20T01:07:43.638752Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2026-04-20T01:07:43.638760Z  INFO vyder_core::lexer: Char at distance 1 from 27 is '3' [INFO] [stdout] 2026-04-20T01:07:43.638765Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '-' [INFO] [stdout] 2026-04-20T01:07:43.638774Z  INFO vyder_core::lexer: Advancing to char index 28 [INFO] [stdout] 2026-04-20T01:07:43.638777Z  INFO vyder_core::lexer: Char at distance 1 from 4 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.638786Z  INFO vyder_core::lexer: Char at distance 1 from 28 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.638812Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638821Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2026-04-20T01:07:43.638834Z  INFO vyder_core::lexer: Constructing span at line 3, column 9 [INFO] [stdout] 2026-04-20T01:07:43.638836Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.638831Z  INFO vyder_core::interpreter: evaluating 'not' [INFO] [stdout] 2026-04-20T01:07:43.638844Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2026-04-20T01:07:43.638847Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2026-04-20T01:07:43.638858Z  INFO vyder_core::lexer: Char at distance 0 from 28 is '3' [INFO] [stdout] 2026-04-20T01:07:43.638858Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.638868Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2026-04-20T01:07:43.638873Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] ok2026-04-20T01:07:43.638879Z  INFO vyder_core::lexer: Char at distance 0 from 28 is '3' [INFO] [stdout] 2026-04-20T01:07:43.638885Z  INFO vyder_core::lexer: Char at distance 1 from 0 is '"' [INFO] [stdout] 2026-04-20T01:07:43.638894Z  INFO vyder_core::lexer: Advancing to char index 29 [INFO] [stdout] 2026-04-20T01:07:43.638895Z  INFO vyder_core::lexer: Next token is '+' [INFO] [stdout] 2026-04-20T01:07:43.638932Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.638952Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] [INFO] [stdout] 2026-04-20T01:07:43.638788Z  INFO vyder_core::lexer: Char at distance 1 from 4 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.638958Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.638987Z  INFO vyder_core::lexer: Next token is '-' [INFO] [stdout] 2026-04-20T01:07:43.638999Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.639031Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2026-04-20T01:07:43.639043Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.639042Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.639052Z  INFO vyder_core::lexer: Constructing span at line 2, column 3 [INFO] [stdout] 2026-04-20T01:07:43.639016Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.639093Z  INFO vyder_core::lexer: Constructing span at line 1, column 2 [INFO] [stdout] 2026-04-20T01:07:43.639126Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.639097Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2026-04-20T01:07:43.639138Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '"' [INFO] [stdout] 2026-04-20T01:07:43.639147Z  INFO vyder_core::lexer: Char at distance 0 from 5 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.639071Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.639161Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2026-04-20T01:07:43.639171Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.639174Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.639204Z  INFO vyder_core::lexer: Char at distance 0 from 29 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.639243Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.639253Z  INFO vyder_core::lexer: Next token is '3' [INFO] [stdout] 2026-04-20T01:07:43.639263Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.639274Z  INFO vyder_core::lexer: Advancing to char index 29 [INFO] [stdout] 2026-04-20T01:07:43.639279Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.639284Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.639293Z  INFO vyder_core::lexer: Constructing span at line 3, column 10 [INFO] [stdout] 2026-04-20T01:07:43.639315Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2026-04-20T01:07:43.639319Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639328Z  INFO vyder_core::lexer: Char at distance 0 from 29 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.639374Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.639383Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.639507Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.639536Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639531Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.639550Z  INFO vyder_core::parser: Advancing to token index 1: '=' [INFO] [stdout] 2026-04-20T01:07:43.639567Z  INFO vyder_core::parser: Token at distance 0 from 1 is '=' at test 1:5 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.639565Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639581Z  INFO vyder_core::parser: Token at distance 0 from 1 is '=' at test 1:5 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.639586Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.639595Z  INFO vyder_core::parser: Token at distance 0 from 1 is '=' at test 1:5 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.639605Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.639610Z  INFO vyder_core::parser: Token at distance 0 from 1 is '=' at test 1:5 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.639620Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.639631Z  INFO vyder_core::parser: Token at distance 0 from 1 is '=' at test 1:5 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.639635Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.639646Z  INFO vyder_core::parser: Token at distance 0 from 1 is '=' at test 1:5 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.639653Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.639662Z  INFO vyder_core::parser: Token at distance 0 from 1 is '=' at test 1:5 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.639667Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.639678Z  INFO vyder_core::parser: Token at distance 0 from 1 is '=' at test 1:5 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.639690Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.639691Z  INFO vyder_core::parser: Advancing to token index 2: '12' [INFO] [stdout] 2026-04-20T01:07:43.639702Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.639702Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.639710Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.639719Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.639725Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639729Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.639738Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.639746Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.639755Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.639758Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.639766Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.639784Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639801Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.639818Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.639835Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639846Z  INFO vyder_core::parser: Advancing to token index 3: 'or' [INFO] [stdout] 2026-04-20T01:07:43.639849Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.639863Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639872Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639879Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639885Z  INFO vyder_core::parser: Advancing to token index 1: '[' [INFO] [stdout] 2026-04-20T01:07:43.639896Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639903Z  INFO vyder_core::parser: Token at distance 0 from 1 is '[' at test 1:4 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.639912Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639915Z  INFO vyder_core::parser: Advancing to token index 2: '1' [INFO] [stdout] 2026-04-20T01:07:43.639925Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.639931Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639935Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.639944Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.639949Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639954Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.639964Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.639965Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.639974Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.639977Z  INFO vyder_core::parser: Advancing to token index 4: '3' [INFO] [stdout] 2026-04-20T01:07:43.639983Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.639986Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.639993Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.639995Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.640008Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.640015Z  INFO vyder_core::parser: Token at distance 0 from 2 is '1' at test 1:5 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640018Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.640028Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.640036Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.640036Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.640045Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.640061Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.640078Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.640097Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.640116Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.640115Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.640128Z  INFO vyder_core::parser: Advancing to token index 5: ';' [INFO] [stdout] 2026-04-20T01:07:43.640141Z  INFO vyder_core::parser: Token at distance 0 from 2 is '1' at test 1:5 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640143Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640154Z  INFO vyder_core::parser: Advancing to token index 3: ']' [INFO] [stdout] 2026-04-20T01:07:43.640159Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640170Z  INFO vyder_core::parser: Token at distance 0 from 3 is ']' at test 1:6 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640173Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640187Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640199Z  INFO vyder_core::parser: Token at distance 0 from 3 is ']' at test 1:6 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640213Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640216Z  INFO vyder_core::parser: Token at distance 0 from 3 is ']' at test 1:6 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640229Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640231Z  INFO vyder_core::parser: Token at distance 0 from 3 is ']' at test 1:6 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640244Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640250Z  INFO vyder_core::parser: Token at distance 0 from 3 is ']' at test 1:6 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640266Z  INFO vyder_core::parser: Token at distance 0 from 3 is ']' at test 1:6 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640276Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640281Z  INFO vyder_core::parser: Token at distance 0 from 3 is ']' at test 1:6 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640297Z  INFO vyder_core::parser: Token at distance 0 from 3 is ']' at test 1:6 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640330Z  INFO vyder_core::parser: Parsed expression ''1' at test 1:5 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2026-04-20T01:07:43.640344Z  INFO vyder_core::parser: Advancing to token index 1: '-' [INFO] [stdout] 2026-04-20T01:07:43.640353Z  INFO vyder_core::parser: Token at distance 0 from 3 is ']' at test 1:6 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640363Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.640366Z  INFO vyder_core::parser: Advancing to token index 4: ';' [INFO] [stdout] 2026-04-20T01:07:43.640381Z  INFO vyder_core::parser: Token at distance 0 from 1 is '-' at test 1:2 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640382Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640393Z  INFO vyder_core::parser: Advancing to token index 2: 'foo' [INFO] [stdout] 2026-04-20T01:07:43.640401Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640406Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.640417Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640428Z  INFO vyder_core::parser: Token at distance 0 from 2 is 'foo' at test 1:3 - 1:5 (3 chars) [INFO] [stdout] | !-foo; [INFO] [stdout] ^^^ here [INFO] [stdout] 2026-04-20T01:07:43.640432Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640452Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640468Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.640469Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640489Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640575Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.640580Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.640596Z  INFO vyder_core::parser: Token at distance 0 from 2 is 'foo' at test 1:3 - 1:5 (3 chars) [INFO] [stdout] | !-foo; [INFO] [stdout] ^^^ here [INFO] [stdout] 2026-04-20T01:07:43.640614Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2026-04-20T01:07:43.640612Z  INFO vyder_core::parser: Token at distance 0 from 0 is '1' at test 1:1 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640628Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640633Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.640649Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640652Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.640665Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640667Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.640679Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640683Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.640698Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640700Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.640714Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640717Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.640714Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.640730Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640735Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.640744Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640746Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.640748Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.640760Z  INFO vyder_core::parser: Advancing to token index 1: '(' [INFO] [stdout] 2026-04-20T01:07:43.640755Z  INFO vyder_core::parser: Parsed expression ''Not' at test 1:1 - 1:5 (5 chars) [INFO] [stdout] | !-foo; [INFO] [stdout] ^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.640776Z  INFO vyder_core::parser: Token at distance 0 from 0 is '1' at test 1:1 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640777Z  INFO vyder_core::parser: Token at distance 0 from 1 is '(' at test 1:4 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640778Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640790Z  INFO vyder_core::parser: Advancing to token index 2: 'bar' [INFO] [stdout] 2026-04-20T01:07:43.640797Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640807Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.640812Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.640818Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.640822Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2026-04-20T01:07:43.640850Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.640852Z  INFO vyder_core::lexer: get_string function [INFO] [stdout] 2026-04-20T01:07:43.640863Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2026-04-20T01:07:43.640868Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2026-04-20T01:07:43.640874Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'H' [INFO] [stdout] 2026-04-20T01:07:43.640884Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2026-04-20T01:07:43.640882Z  INFO vyder_core::parser: parsed statement ''Not;' at test 1:1 - 1:6 (6 chars) [INFO] [stdout] | !-foo; [INFO] [stdout] ^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.640893Z  INFO vyder_core::lexer: Char at distance 0 from 3 is 'e' [INFO] [stdout] 2026-04-20T01:07:43.640902Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.640902Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2026-04-20T01:07:43.640908Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.640913Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'l' [INFO] [stdout] 2026-04-20T01:07:43.640931Z  INFO vyder_core::lexer: Constructing span at line 2, column 4 [INFO] [stdout] 2026-04-20T01:07:43.640931Z  INFO vyder_core::parser: Token at distance 0 from 0 is '1' at test 1:1 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.640828Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.640942Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2026-04-20T01:07:43.640951Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.640953Z  INFO vyder_core::parser: Advancing to token index 1: '..' [INFO] [stdout] 2026-04-20T01:07:43.640955Z  INFO vyder_core::lexer: Char at distance 0 from 6 is '/' [INFO] [stdout] 2026-04-20T01:07:43.640961Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.640966Z  INFO vyder_core::lexer: Char at distance 1 from 6 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.640971Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.640974Z  INFO vyder_core::parser: Token at distance 0 from 1 is '..' at test 1:2 - 1:3 (2 chars) [INFO] [stdout] | 1..3; [INFO] [stdout] ^^ here [INFO] [stdout] 2026-04-20T01:07:43.640977Z  INFO vyder_core::lexer: Char at distance 1 from 6 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.640981Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.640988Z  INFO vyder_core::lexer: Next token is '/' [INFO] [stdout] 2026-04-20T01:07:43.640991Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.640992Z  INFO vyder_core::parser: Token at distance 0 from 1 is '..' at test 1:2 - 1:3 (2 chars) [INFO] [stdout] | 1..3; [INFO] [stdout] ^^ here [INFO] [stdout] 2026-04-20T01:07:43.641002Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2026-04-20T01:07:43.641010Z  INFO vyder_core::parser: Token at distance 0 from 1 is '..' at test 1:2 - 1:3 (2 chars) [INFO] [stdout] | 1..3; [INFO] [stdout] ^^ here [INFO] [stdout] 2026-04-20T01:07:43.641012Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.641023Z  INFO vyder_core::lexer: Constructing span at line 2, column 5 [INFO] [stdout] 2026-04-20T01:07:43.641027Z  INFO vyder_core::parser: Token at distance 0 from 1 is '..' at test 1:2 - 1:3 (2 chars) [INFO] [stdout] | 1..3; [INFO] [stdout] ^^ here [INFO] [stdout] 2026-04-20T01:07:43.641032Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2026-04-20T01:07:43.641042Z  INFO vyder_core::parser: Advancing to token index 2: '3' [INFO] [stdout] 2026-04-20T01:07:43.641044Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.641052Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.641054Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.641061Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.641070Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.641083Z  INFO vyder_core::parser: Token at distance 0 from 2 is '3' at test 1:4 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641001Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.641100Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.641112Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.641148Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.641150Z  INFO vyder_core::parser: Token at distance 0 from 2 is '3' at test 1:4 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641172Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2026-04-20T01:07:43.641179Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.640912Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2026-04-20T01:07:43.641245Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.641268Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.641267Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.641278Z  INFO vyder_core::parser: Advancing to token index 3: '(' [INFO] [stdout] 2026-04-20T01:07:43.641318Z  INFO vyder_core::parser: Token at distance 0 from 3 is '(' at test 1:8 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641324Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641330Z  INFO vyder_core::parser: Advancing to token index 4: ')' [INFO] [stdout] 2026-04-20T01:07:43.641339Z  INFO vyder_core::parser: Parsed expression ''Index' at test 1:1 - 1:6 (6 chars) [INFO] [stdout] | foo[1]; [INFO] [stdout] ^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.641363Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641365Z  INFO vyder_core::parser: Token at distance 0 from 4 is ')' at test 1:13 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641376Z  INFO vyder_core::parser: Token at distance 0 from 4 is ';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641376Z  INFO vyder_core::parser: Advancing to token index 5: ')' [INFO] [stdout] 2026-04-20T01:07:43.641386Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2026-04-20T01:07:43.641391Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641377Z  INFO vyder_core::parser: Parsed expression ''Assignment' at test 1:1 - 1:13 (13 chars) [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] ^^^^^^^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.641399Z  INFO vyder_core::parser: Advancing to token index 5: 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.641407Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641414Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2026-04-20T01:07:43.641420Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641421Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641424Z  INFO vyder_core::parser: parsed statement ''Index;' at test 1:1 - 1:7 (7 chars) [INFO] [stdout] | foo[1]; [INFO] [stdout] ^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.641438Z  INFO vyder_core::parser: Token at distance 0 from 5 is ';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641441Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641445Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.641455Z  INFO vyder_core::parser: Token at distance 0 from 5 is None [INFO] [stdout] 2026-04-20T01:07:43.641451Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:14 [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2026-04-20T01:07:43.641460Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641468Z  INFO vyder_core::parser: Advancing to token index 6: 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.641475Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641478Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2026-04-20T01:07:43.641490Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641490Z  INFO vyder_core::parser: parsed statement ''Assignment;' at test 1:1 - 1:14 (14 chars) [INFO] [stdout] | foo = 12 or 3; [INFO] [stdout] ^^^^^^^^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.641505Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641511Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.641522Z  INFO vyder_core::parser: Token at distance 0 from 6 is None [INFO] [stdout] 2026-04-20T01:07:43.641515Z  INFO vyder_core::parser: Parsed expression ''Call(bar)' at test 1:5 - 1:13 (9 chars) [INFO] [stdout] | foo(bar( )); [INFO] [stdout] ^^^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.641528Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2026-04-20T01:07:43.641538Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641542Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.641554Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2026-04-20T01:07:43.641554Z  INFO vyder_core::parser: Token at distance 0 from 5 is ')' at test 1:14 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641564Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.641567Z  INFO vyder_core::parser: Advancing to token index 6: ';' [INFO] [stdout] 2026-04-20T01:07:43.641574Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2026-04-20T01:07:43.641582Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641583Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2026-04-20T01:07:43.641593Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2026-04-20T01:07:43.641599Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641602Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2026-04-20T01:07:43.641611Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '2' [INFO] [stdout] 2026-04-20T01:07:43.641614Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641620Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2026-04-20T01:07:43.641628Z  INFO vyder_core::lexer: Char at distance 0 from 2 is '.' [INFO] [stdout] 2026-04-20T01:07:43.641630Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641638Z  INFO vyder_core::lexer: Char at distance 1 from 2 is '5' [INFO] [stdout] 2026-04-20T01:07:43.641646Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2026-04-20T01:07:43.641649Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641655Z  INFO vyder_core::lexer: Char at distance 0 from 3 is '5' [INFO] [stdout] 2026-04-20T01:07:43.641664Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2026-04-20T01:07:43.641664Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641673Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '.' [INFO] [stdout] 2026-04-20T01:07:43.641681Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641683Z  INFO vyder_core::lexer: Next token is '12.5' [INFO] [stdout] 2026-04-20T01:07:43.641696Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2026-04-20T01:07:43.641697Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641705Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.641713Z  INFO vyder_core::lexer: Constructing span at line 1, column 5 [INFO] [stdout] 2026-04-20T01:07:43.641709Z  INFO vyder_core::parser: Parsed expression ''Call(foo)' at test 1:1 - 1:14 (14 chars) [INFO] [stdout] | foo(bar( )); [INFO] [stdout] ^^^^^^^^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.641722Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.641734Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '.' [INFO] [stdout] 2026-04-20T01:07:43.641738Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641745Z  INFO vyder_core::lexer: Char at distance 1 from 4 is 'f' [INFO] [stdout] 2026-04-20T01:07:43.641754Z  INFO vyder_core::parser: Token at distance 0 from 6 is ';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.641754Z  INFO vyder_core::lexer: Next token is '.' [INFO] [stdout] 2026-04-20T01:07:43.641768Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2026-04-20T01:07:43.641766Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2026-04-20T01:07:43.641777Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.641781Z  INFO vyder_core::parser: Advancing to token index 7: 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.641786Z  INFO vyder_core::lexer: Constructing span at line 1, column 6 [INFO] [stdout] 2026-04-20T01:07:43.641791Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2026-04-20T01:07:43.641794Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.641804Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'f' [INFO] [stdout] 2026-04-20T01:07:43.641802Z  INFO vyder_core::parser: parsed statement ''Call(foo);' at test 1:1 - 1:15 (15 chars) [INFO] [stdout] | foo(bar( )); [INFO] [stdout] ^^^^^^^^^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.641815Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'f' [INFO] [stdout] 2026-04-20T01:07:43.641825Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2026-04-20T01:07:43.641824Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.641834Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'o' [INFO] [stdout] 2026-04-20T01:07:43.641836Z  INFO vyder_core::parser: Token at distance 0 from 7 is None [INFO] [stdout] 2026-04-20T01:07:43.641843Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2026-04-20T01:07:43.641853Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'o' [INFO] [stdout] 2026-04-20T01:07:43.641862Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2026-04-20T01:07:43.641871Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.641882Z  INFO vyder_core::lexer: Next token is 'foo' [INFO] [stdout] 2026-04-20T01:07:43.641894Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2026-04-20T01:07:43.641903Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.641911Z  INFO vyder_core::lexer: Constructing span at line 1, column 9 [INFO] [stdout] 2026-04-20T01:07:43.641920Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.641944Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.641955Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2026-04-20T01:07:43.641964Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.641973Z  INFO vyder_core::lexer: Constructing span at line 1, column 10 [INFO] [stdout] 2026-04-20T01:07:43.641982Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.640933Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2026-04-20T01:07:43.641992Z  INFO vyder_core::lexer: Char at distance 0 from 9 is '1' [INFO] [stdout] 2026-04-20T01:07:43.642003Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2026-04-20T01:07:43.642012Z  INFO vyder_core::lexer: Char at distance 0 from 9 is '1' [INFO] [stdout] 2026-04-20T01:07:43.642007Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'l' [INFO] [stdout] 2026-04-20T01:07:43.642021Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2026-04-20T01:07:43.642024Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2026-04-20T01:07:43.642030Z  INFO vyder_core::lexer: Char at distance 0 from 10 is '2' [INFO] [stdout] 2026-04-20T01:07:43.642033Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'o' [INFO] [stdout] 2026-04-20T01:07:43.642040Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2026-04-20T01:07:43.642042Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2026-04-20T01:07:43.642049Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.642052Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ',' [INFO] [stdout] 2026-04-20T01:07:43.642060Z  INFO vyder_core::lexer: Next token is '12' [INFO] [stdout] 2026-04-20T01:07:43.642062Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2026-04-20T01:07:43.642072Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2026-04-20T01:07:43.642073Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2026-04-20T01:07:43.642082Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2026-04-20T01:07:43.642084Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.642092Z  INFO vyder_core::lexer: Char at distance 0 from 9 is 'W' [INFO] [stdout] 2026-04-20T01:07:43.642093Z  INFO vyder_core::lexer: Constructing span at line 1, column 12 [INFO] [stdout] 2026-04-20T01:07:43.642101Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2026-04-20T01:07:43.642103Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.642111Z  INFO vyder_core::lexer: Char at distance 0 from 10 is 'o' [INFO] [stdout] 2026-04-20T01:07:43.642115Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.642119Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2026-04-20T01:07:43.642126Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.642129Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'r' [INFO] [stdout] 2026-04-20T01:07:43.642138Z  INFO vyder_core::lexer: Advancing to char index 12 [INFO] [stdout] 2026-04-20T01:07:43.642148Z  INFO vyder_core::lexer: Char at distance 0 from 12 is 'l' [INFO] [stdout] 2026-04-20T01:07:43.642158Z  INFO vyder_core::lexer: Advancing to char index 13 [INFO] [stdout] 2026-04-20T01:07:43.642167Z  INFO vyder_core::lexer: Char at distance 0 from 13 is 'd' [INFO] [stdout] 2026-04-20T01:07:43.642177Z  INFO vyder_core::lexer: Advancing to char index 14 [INFO] [stdout] 2026-04-20T01:07:43.642189Z  INFO vyder_core::lexer: Char at distance 0 from 14 is '!' [INFO] [stdout] 2026-04-20T01:07:43.642199Z  INFO vyder_core::lexer: Advancing to char index 15 [INFO] [stdout] 2026-04-20T01:07:43.642209Z  INFO vyder_core::lexer: Char at distance 0 from 15 is '"' [INFO] [stdout] 2026-04-20T01:07:43.642231Z  INFO vyder_core::lexer: Next token is '"Hello, World!"' [INFO] [stdout] 2026-04-20T01:07:43.642245Z  INFO vyder_core::lexer: Advancing to char index 16 [INFO] [stdout] 2026-04-20T01:07:43.642254Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.642262Z  INFO vyder_core::lexer: Constructing span at line 1, column 17 [INFO] [stdout] 2026-04-20T01:07:43.642271Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.642283Z  INFO vyder_core::lexer: Char at distance 0 from 16 is ''' [INFO] [stdout] 2026-04-20T01:07:43.642293Z  INFO vyder_core::lexer: get_string function [INFO] [stdout] 2026-04-20T01:07:43.641189Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642364Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642397Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642419Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.642429Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642449Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.642456Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642465Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.642473Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642482Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.642487Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642391Z  INFO vyder_core::lexer: Advancing to char index 17 [INFO] [stdout] 2026-04-20T01:07:43.642496Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.642498Z  INFO vyder_core::parser: Parsed expression ''Range' at test 1:1 - 1:4 (4 chars) [INFO] [stdout] | 1..3; [INFO] [stdout] ^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.642518Z  INFO vyder_core::lexer: Char at distance 0 from 17 is 'f' [INFO] [stdout] 2026-04-20T01:07:43.642521Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.642522Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642530Z  INFO vyder_core::lexer: Advancing to char index 18 [INFO] [stdout] 2026-04-20T01:07:43.642538Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642537Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.642540Z  INFO vyder_core::lexer: Char at distance 0 from 18 is 'o' [INFO] [stdout] 2026-04-20T01:07:43.642550Z  INFO vyder_core::lexer: Advancing to char index 19 [INFO] [stdout] 2026-04-20T01:07:43.642549Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2026-04-20T01:07:43.642554Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.642560Z  INFO vyder_core::lexer: Char at distance 0 from 19 is 'o' [INFO] [stdout] 2026-04-20T01:07:43.642562Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.642569Z  INFO vyder_core::lexer: Advancing to char index 20 [INFO] [stdout] 2026-04-20T01:07:43.642566Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.642571Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2026-04-20T01:07:43.642578Z  INFO vyder_core::lexer: Char at distance 0 from 20 is '\' [INFO] [stdout] 2026-04-20T01:07:43.642587Z  INFO vyder_core::lexer: Char at distance 1 from 20 is 't' [INFO] [stdout] 2026-04-20T01:07:43.642581Z  INFO vyder_core::parser: parsed statement ''Range;' at test 1:1 - 1:5 (5 chars) [INFO] [stdout] | 1..3; [INFO] [stdout] ^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.642590Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.642599Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.642605Z  INFO vyder_core::lexer: Advancing to char index 21 without increasing column [INFO] [stdout] 2026-04-20T01:07:43.642610Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2026-04-20T01:07:43.642615Z  INFO vyder_core::lexer: Advancing to char index 22 [INFO] [stdout] 2026-04-20T01:07:43.642623Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.642624Z  INFO vyder_core::lexer: Char at distance 0 from 22 is ''' [INFO] [stdout] 2026-04-20T01:07:43.642636Z  INFO vyder_core::lexer: Next token is '"foo "' [INFO] [stdout] 2026-04-20T01:07:43.642651Z  INFO vyder_core::lexer: Advancing to char index 23 [INFO] [stdout] 2026-04-20T01:07:43.642659Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.642667Z  INFO vyder_core::lexer: Constructing span at line 1, column 23 [INFO] [stdout] 2026-04-20T01:07:43.642675Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.642686Z  INFO vyder_core::lexer: Char at distance 0 from 23 is '(' [INFO] [stdout] 2026-04-20T01:07:43.642704Z  INFO vyder_core::lexer: Next token is '(' [INFO] [stdout] 2026-04-20T01:07:43.642715Z  INFO vyder_core::lexer: Advancing to char index 24 [INFO] [stdout] 2026-04-20T01:07:43.642723Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2026-04-20T01:07:43.642724Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.642732Z  INFO vyder_core::lexer: Constructing span at line 1, column 24 [INFO] [stdout] 2026-04-20T01:07:43.642741Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2026-04-20T01:07:43.642743Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.642751Z  INFO vyder_core::lexer: Char at distance 0 from 24 is 'None' [INFO] [stdout] 2026-04-20T01:07:43.642754Z  INFO vyder_core::parser: Advancing to token index 1: '.' [INFO] [stdout] 2026-04-20T01:07:43.642760Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.642770Z  INFO vyder_core::parser: Token at distance 0 from 1 is '.' at test 1:4 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642795Z  INFO vyder_core::parser: Advancing to token index 2: 'bar' [INFO] [stdout] 2026-04-20T01:07:43.642811Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.642829Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2026-04-20T01:07:43.642854Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642863Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.642884Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642900Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642914Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642933Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642951Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642966Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642980Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.642995Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.643005Z  INFO vyder_core::parser: Parsed expression ''FieldAccess' at test 1:1 - 1:7 (7 chars) [INFO] [stdout] | foo.bar; [INFO] [stdout] ^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.643027Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.643040Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2026-04-20T01:07:43.643050Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2026-04-20T01:07:43.643063Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.643073Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2026-04-20T01:07:43.643082Z  INFO vyder_core::parser: parsed statement ''FieldAccess;' at test 1:1 - 1:8 (8 chars) [INFO] [stdout] | foo.bar; [INFO] [stdout] ^^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.643100Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.643109Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2026-04-20T01:07:43.644156Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.644230Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644260Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.644282Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.644324Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.644346Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.644366Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.644379Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.644400Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.644411Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.644443Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644479Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.644564Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.644587Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644604Z  INFO vyder_core::parser: Advancing to token index 1: '=' [INFO] [stdout] 2026-04-20T01:07:43.644623Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644644Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644664Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644686Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644710Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644724Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644744Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644767Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644783Z  INFO vyder_core::parser: Advancing to token index 2: '(' [INFO] [stdout] 2026-04-20T01:07:43.644793Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.644807Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.644815Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.644823Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.644837Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.644845Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.644861Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.644870Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.644889Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644905Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.644926Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.644942Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.644957Z  INFO vyder_core::parser: Advancing to token index 3: 'import' [INFO] [stdout] 2026-04-20T01:07:43.644971Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.644991Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.645012Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.645025Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.645048Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.645070Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.645091Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.645101Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.645128Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645163Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.645260Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.645286Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645296Z  INFO vyder_core::parser: Advancing to token index 4: '(' [INFO] [stdout] 2026-04-20T01:07:43.645355Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645374Z  INFO vyder_core::parser: Advancing to token index 5: '"std"' [INFO] [stdout] 2026-04-20T01:07:43.645392Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645440Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2026-04-20T01:07:43.645450Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2026-04-20T01:07:43.645468Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2026-04-20T01:07:43.645477Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2026-04-20T01:07:43.645513Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2026-04-20T01:07:43.645532Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.645543Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.645559Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.645609Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645637Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.645732Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.645785Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645809Z  INFO vyder_core::parser: Advancing to token index 6: ')' [INFO] [stdout] 2026-04-20T01:07:43.645827Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645874Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645897Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645919Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645967Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.645991Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646007Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646060Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646079Z  INFO vyder_core::parser: Parsed expression ''"std"' at test 1:15 - 1:19 (5 chars) [INFO] [stdout] | foo = (import('std').argc + 2) + 2; [INFO] [stdout] ^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.646135Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646165Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646188Z  INFO vyder_core::parser: Advancing to token index 7: '.' [INFO] [stdout] 2026-04-20T01:07:43.646248Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646266Z  INFO vyder_core::parser: Advancing to token index 8: 'argc' [INFO] [stdout] 2026-04-20T01:07:43.646284Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646349Z  INFO vyder_core::parser: Advancing to token index 9: '+' [INFO] [stdout] 2026-04-20T01:07:43.646385Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646620Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646663Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.646995Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.647029Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.647432Z  INFO vyder_core::parser: Advancing to token index 10: '2' [INFO] [stdout] 2026-04-20T01:07:43.647448Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.647457Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.647762Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.647801Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.647821Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.648240Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.648263Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.648576Z  INFO vyder_core::parser: Advancing to token index 11: ')' [INFO] [stdout] 2026-04-20T01:07:43.648608Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.648625Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.649038Z  INFO vyder_core::parser: 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] test interpreter::tests::not_test ... ok [INFO] [stdout] test lexer::tests::comments_test ... ok [INFO] [stdout] test lexer::tests::operators_test ... ok [INFO] [stdout] test parser::tests::unary_test ... ok [INFO] [stdout] test parser::tests::index_test ... ok [INFO] [stdout] test parser::tests::assignment_test ... ok [INFO] [stdout] test parser::tests::calls_test ... ok [INFO] [stdout] test lexer::tests::numbers_test ... ok [INFO] [stdout] test parser::tests::ranges_test ... ok [INFO] [stdout] test lexer::tests::strings_test ... ok [INFO] [stdout] test parser::tests::field_access_test ... ok [INFO] [stdout] 2026-04-20T01:07:43.649059Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.649640Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654395Z  INFO vyder_core::parser: 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] test token::tests::expect_test ... ok [INFO] [stdout] 2026-04-20T01:07:43.654522Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654577Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654610Z  INFO vyder_core::parser: Parsed expression ''Addition' at test 1:8 - 1:29 (22 chars) [INFO] [stdout] | foo = (import('std').argc + 2) + 2; [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.654744Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654764Z  INFO vyder_core::parser: Advancing to token index 12: '+' [INFO] [stdout] 2026-04-20T01:07:43.654784Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654803Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654820Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654832Z  INFO vyder_core::parser: Advancing to token index 13: '2' [INFO] [stdout] 2026-04-20T01:07:43.654840Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2026-04-20T01:07:43.654851Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2026-04-20T01:07:43.654862Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2026-04-20T01:07:43.654877Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654897Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2026-04-20T01:07:43.654907Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2026-04-20T01:07:43.654920Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654931Z  INFO vyder_core::parser: Advancing to token index 14: ';' [INFO] [stdout] 2026-04-20T01:07:43.654947Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654963Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654977Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.654999Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.655018Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.655034Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.655049Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.655067Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.655082Z  INFO vyder_core::parser: Parsed expression ''Assignment' at test 1:1 - 1:34 (34 chars) [INFO] [stdout] | foo = (import('std').argc + 2) + 2; [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.655111Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.655124Z  INFO vyder_core::parser: 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] 2026-04-20T01:07:43.655134Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:35 [INFO] [stdout] | foo = (import('std').argc + 2) + 2; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2026-04-20T01:07:43.655147Z  INFO vyder_core::parser: Advancing to token index 15: 'EOF' [INFO] [stdout] 2026-04-20T01:07:43.655155Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2026-04-20T01:07:43.655164Z  INFO vyder_core::parser: parsed statement ''Assignment;' at test 1:1 - 1:35 (35 chars) [INFO] [stdout] | foo = (import('std').argc + 2) + 2; [INFO] [stdout] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here' [INFO] [stdout] 2026-04-20T01:07:43.655187Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2026-04-20T01:07:43.655205Z  INFO vyder_core::parser: Token at distance 0 from 15 is None [INFO] [stdout] test parser::tests::import_test ... ok [INFO] [stdout] test environment::tests::environments_test ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/vyder_debug_cli/main.rs (/opt/rustwide/target/debug/deps/vyder_debug_cli-eef2d41ccd05c0b6) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests vyder_core [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test src/statement/mod.rs - statement::Statement::expect (line 23) ... ok [INFO] [stdout] test src/token/mod.rs - token::Token::expect (line 22) ... ok [INFO] [stdout] 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.43s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ef68e1a5f5eaa8fe8897e93492e934e6294d7ccd53552b226cbd807261b71f75", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ef68e1a5f5eaa8fe8897e93492e934e6294d7ccd53552b226cbd807261b71f75", kill_on_drop: false }` [INFO] [stdout] ef68e1a5f5eaa8fe8897e93492e934e6294d7ccd53552b226cbd807261b71f75