[INFO] fetching crate vyder_core 0.3.4... [INFO] testing vyder_core-0.3.4 against try#2440211fe03bc45c89b6dc1a3df18382ce91e32b for pr-146098-1 [INFO] extracting crate vyder_core 0.3.4 into /workspace/builds/worker-0-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-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate vyder_core 0.3.4 on toolchain 2440211fe03bc45c89b6dc1a3df18382ce91e32b [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "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" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 16b6084ebd8cf2b2683a6f6bd76bf2fdbff7dfb8577e4c6fa4aa51b71b325716 [INFO] running `Command { std: "docker" "start" "-a" "16b6084ebd8cf2b2683a6f6bd76bf2fdbff7dfb8577e4c6fa4aa51b71b325716", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "16b6084ebd8cf2b2683a6f6bd76bf2fdbff7dfb8577e4c6fa4aa51b71b325716", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "16b6084ebd8cf2b2683a6f6bd76bf2fdbff7dfb8577e4c6fa4aa51b71b325716", kill_on_drop: false }` [INFO] [stdout] 16b6084ebd8cf2b2683a6f6bd76bf2fdbff7dfb8577e4c6fa4aa51b71b325716 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d569b13315e531c0b54883f253d59a67f83d9d28745a5054df11c3a5b1def3f3 [INFO] running `Command { std: "docker" "start" "-a" "d569b13315e531c0b54883f253d59a67f83d9d28745a5054df11c3a5b1def3f3", kill_on_drop: false }` [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling anstyle-parse v0.2.4 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling anstyle-query v1.1.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling clap_lex v0.7.1 [INFO] [stderr] Compiling colored v2.1.0 [INFO] [stderr] Compiling anstream v0.6.14 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Compiling clap_builder v4.5.9 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling regex v1.10.5 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling enum_downcast_derive v0.2.0 [INFO] [stderr] Compiling tracing-test-macro v0.2.5 [INFO] [stderr] Compiling clap_derive v4.5.8 [INFO] [stderr] Compiling vyder_macros v0.3.4 [INFO] [stderr] Compiling enum_downcast v0.2.0 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling tracing-subscriber v0.3.18 [INFO] [stderr] Compiling clap v4.5.9 [INFO] [stderr] Compiling tracing-test v0.2.5 [INFO] [stderr] Compiling vyder_core v0.3.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/value/values.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 35 | #[derive(Clone, Debug, IntoValueEnum, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 43 | function: fn(&[ValueResult], Span) -> Result<(ValueResult, Option)>, [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 27.32s [INFO] running `Command { std: "docker" "inspect" "d569b13315e531c0b54883f253d59a67f83d9d28745a5054df11c3a5b1def3f3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d569b13315e531c0b54883f253d59a67f83d9d28745a5054df11c3a5b1def3f3", kill_on_drop: false }` [INFO] [stdout] d569b13315e531c0b54883f253d59a67f83d9d28745a5054df11c3a5b1def3f3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6ba8164f12ef207d694cadab318d01736e79d7ba35e1dfa80eead2a3a82b8545 [INFO] running `Command { std: "docker" "start" "-a" "6ba8164f12ef207d694cadab318d01736e79d7ba35e1dfa80eead2a3a82b8545", 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 4.07s [INFO] running `Command { std: "docker" "inspect" "6ba8164f12ef207d694cadab318d01736e79d7ba35e1dfa80eead2a3a82b8545", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6ba8164f12ef207d694cadab318d01736e79d7ba35e1dfa80eead2a3a82b8545", kill_on_drop: false }` [INFO] [stdout] 6ba8164f12ef207d694cadab318d01736e79d7ba35e1dfa80eead2a3a82b8545 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+2440211fe03bc45c89b6dc1a3df18382ce91e32b" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9c8fe232f66f86afaa72fbbeaf8eb68edd7569a0b07f10962c710e6b961add35 [INFO] running `Command { std: "docker" "start" "-a" "9c8fe232f66f86afaa72fbbeaf8eb68edd7569a0b07f10962c710e6b961add35", 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-5973d1184e3ed235) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test expression::tests::expect_test ... ok [INFO] [stdout] test environment::tests::environments_test ... ok [INFO] [stdout] test interpreter::tests::group_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.257988Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '#' [INFO] [stdout] 2025-10-01T20:05:07.258023Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-01T20:05:07.258033Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '!' [INFO] [stdout] 2025-10-01T20:05:07.258039Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-01T20:05:07.258045Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'v' [INFO] [stdout] 2025-10-01T20:05:07.258052Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-01T20:05:07.258058Z  INFO vyder_core::lexer: Char at distance 0 from 3 is 'y' [INFO] [stdout] 2025-10-01T20:05:07.258064Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-01T20:05:07.258070Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'd' [INFO] [stdout] 2025-10-01T20:05:07.258075Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-10-01T20:05:07.258082Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'e' [INFO] [stdout] 2025-10-01T20:05:07.258088Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-01T20:05:07.258124Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'r' [INFO] [stdout] 2025-10-01T20:05:07.258132Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-01T20:05:07.258138Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-10-01T20:05:07.258149Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.258157Z  INFO vyder_core::lexer: Constructing span at line 1, column 8 [INFO] [stdout] 2025-10-01T20:05:07.258165Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.258176Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-10-01T20:05:07.258623Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.258635Z  INFO vyder_core::lexer: Constructing span at line 2, column 1 [INFO] [stdout] 2025-10-01T20:05:07.258844Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-01T20:05:07.260927Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2025-10-01T20:05:07.268034Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268046Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-10-01T20:05:07.268054Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.268047Z  INFO vyder_core::lexer: Char at distance 0 from 8 is '+' [INFO] [stdout] 2025-10-01T20:05:07.268083Z  INFO vyder_core::lexer: Char at distance 1 from 8 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268113Z  INFO vyder_core::lexer: Next token is '+' [INFO] [stdout] 2025-10-01T20:05:07.261726Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2025-10-01T20:05:07.268150Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-10-01T20:05:07.268153Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268158Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268161Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-10-01T20:05:07.268165Z  INFO vyder_core::lexer: Constructing span at line 2, column 2 [INFO] [stdout] 2025-10-01T20:05:07.268168Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.268173Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-01T20:05:07.268176Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2025-10-01T20:05:07.268183Z  INFO vyder_core::lexer: Char at distance 0 from 9 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268190Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-01T20:05:07.268196Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268203Z  INFO vyder_core::lexer: Constructing span at line 2, column 3 [INFO] [stdout] 2025-10-01T20:05:07.268204Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2025-10-01T20:05:07.268210Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-01T20:05:07.268211Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2025-10-01T20:05:07.268218Z  INFO vyder_core::lexer: Char at distance 0 from 10 is '/' [INFO] [stdout] 2025-10-01T20:05:07.268218Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-01T20:05:07.268226Z  INFO vyder_core::lexer: Char at distance 1 from 10 is '/' [INFO] [stdout] 2025-10-01T20:05:07.268232Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '2' [INFO] [stdout] 2025-10-01T20:05:07.268234Z  INFO vyder_core::lexer: Char at distance 1 from 10 is '/' [INFO] [stdout] 2025-10-01T20:05:07.268239Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-01T20:05:07.268241Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-01T20:05:07.268246Z  INFO vyder_core::lexer: Char at distance 0 from 2 is '.' [INFO] [stdout] 2025-10-01T20:05:07.268249Z  INFO vyder_core::lexer: Char at distance 1 from 11 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268253Z  INFO vyder_core::lexer: Char at distance 1 from 2 is '5' [INFO] [stdout] 2025-10-01T20:05:07.268255Z  INFO vyder_core::lexer: Advancing to char index 12 [INFO] [stdout] 2025-10-01T20:05:07.268260Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-01T20:05:07.268262Z  INFO vyder_core::lexer: Char at distance 1 from 12 is 't' [INFO] [stdout] 2025-10-01T20:05:07.268266Z  INFO vyder_core::lexer: Char at distance 0 from 3 is '5' [INFO] [stdout] 2025-10-01T20:05:07.268269Z  INFO vyder_core::lexer: Advancing to char index 13 [INFO] [stdout] 2025-10-01T20:05:07.268273Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-01T20:05:07.268276Z  INFO vyder_core::lexer: Char at distance 1 from 13 is 'e' [INFO] [stdout] 2025-10-01T20:05:07.268280Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '.' [INFO] [stdout] 2025-10-01T20:05:07.268290Z  INFO vyder_core::lexer: Advancing to char index 14 [INFO] [stdout] 2025-10-01T20:05:07.268289Z  INFO vyder_core::lexer: Next token is '12.5' [INFO] [stdout] 2025-10-01T20:05:07.268299Z  INFO vyder_core::lexer: Char at distance 1 from 14 is 's' [INFO] [stdout] 2025-10-01T20:05:07.268307Z  INFO vyder_core::lexer: Advancing to char index 15 [INFO] [stdout] 2025-10-01T20:05:07.268314Z  INFO vyder_core::lexer: Char at distance 1 from 15 is 't' [INFO] [stdout] 2025-10-01T20:05:07.268318Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-01T20:05:07.268320Z  INFO vyder_core::lexer: Advancing to char index 16 [INFO] [stdout] 2025-10-01T20:05:07.268325Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268328Z  INFO vyder_core::lexer: Char at distance 1 from 16 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268331Z  INFO vyder_core::lexer: Constructing span at line 1, column 5 [INFO] [stdout] 2025-10-01T20:05:07.268334Z  INFO vyder_core::lexer: Advancing to char index 17 [INFO] [stdout] 2025-10-01T20:05:07.268337Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.268341Z  INFO vyder_core::lexer: Char at distance 1 from 17 is '2' [INFO] [stdout] 2025-10-01T20:05:07.268346Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '.' [INFO] [stdout] 2025-10-01T20:05:07.268347Z  INFO vyder_core::lexer: Advancing to char index 18 [INFO] [stdout] 2025-10-01T20:05:07.268354Z  INFO vyder_core::lexer: Char at distance 1 from 4 is 'f' [INFO] [stdout] 2025-10-01T20:05:07.268355Z  INFO vyder_core::lexer: Char at distance 1 from 18 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-10-01T20:05:07.268361Z  INFO vyder_core::lexer: Next token is '.' [INFO] [stdout] 2025-10-01T20:05:07.268362Z  INFO vyder_core::lexer: Advancing to char index 19 [INFO] [stdout] 2025-10-01T20:05:07.268370Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-10-01T20:05:07.268376Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268382Z  INFO vyder_core::lexer: Constructing span at line 1, column 6 [INFO] [stdout] 2025-10-01T20:05:07.268387Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.268394Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'f' [INFO] [stdout] 2025-10-01T20:05:07.268402Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'f' [INFO] [stdout] 2025-10-01T20:05:07.268410Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-01T20:05:07.268417Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'o' [INFO] [stdout] 2025-10-01T20:05:07.268423Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-01T20:05:07.268430Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'o' [INFO] [stdout] 2025-10-01T20:05:07.268438Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-10-01T20:05:07.268445Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268369Z  INFO vyder_core::lexer: Advancing to char index 20 [INFO] [stdout] 2025-10-01T20:05:07.268453Z  INFO vyder_core::lexer: Next token is 'foo' [INFO] [stdout] 2025-10-01T20:05:07.268457Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268462Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-10-01T20:05:07.268468Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268466Z  INFO vyder_core::lexer: Constructing span at line 3, column 1 [INFO] [stdout] 2025-10-01T20:05:07.268474Z  INFO vyder_core::lexer: Constructing span at line 1, column 9 [INFO] [stdout] 2025-10-01T20:05:07.268481Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2025-10-01T20:05:07.268481Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.268491Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268493Z  INFO vyder_core::lexer: Char at distance 0 from 20 is '/' [INFO] [stdout] 2025-10-01T20:05:07.268497Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-10-01T20:05:07.268502Z  INFO vyder_core::lexer: Char at distance 1 from 20 is '/' [INFO] [stdout] 2025-10-01T20:05:07.268503Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268510Z  INFO vyder_core::lexer: Constructing span at line 1, column 10 [INFO] [stdout] 2025-10-01T20:05:07.268510Z  INFO vyder_core::lexer: Char at distance 1 from 20 is '/' [INFO] [stdout] 2025-10-01T20:05:07.268516Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.268517Z  INFO vyder_core::lexer: Advancing to char index 21 [INFO] [stdout] 2025-10-01T20:05:07.268523Z  INFO vyder_core::lexer: Char at distance 0 from 9 is '1' [INFO] [stdout] 2025-10-01T20:05:07.268526Z  INFO vyder_core::lexer: Char at distance 1 from 21 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268530Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2025-10-01T20:05:07.268533Z  INFO vyder_core::lexer: Advancing to char index 22 [INFO] [stdout] 2025-10-01T20:05:07.268537Z  INFO vyder_core::lexer: Char at distance 0 from 9 is '1' [INFO] [stdout] 2025-10-01T20:05:07.268541Z  INFO vyder_core::lexer: Char at distance 1 from 22 is 't' [INFO] [stdout] 2025-10-01T20:05:07.268543Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-01T20:05:07.268547Z  INFO vyder_core::lexer: Advancing to char index 23 [INFO] [stdout] 2025-10-01T20:05:07.268550Z  INFO vyder_core::lexer: Char at distance 0 from 10 is '2' [INFO] [stdout] 2025-10-01T20:05:07.268554Z  INFO vyder_core::lexer: Char at distance 1 from 23 is 'e' [INFO] [stdout] 2025-10-01T20:05:07.268556Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-01T20:05:07.268561Z  INFO vyder_core::lexer: Advancing to char index 24 [INFO] [stdout] 2025-10-01T20:05:07.268564Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.268569Z  INFO vyder_core::lexer: Char at distance 1 from 24 is 's' [INFO] [stdout] 2025-10-01T20:05:07.268571Z  INFO vyder_core::lexer: Next token is '12' [INFO] [stdout] 2025-10-01T20:05:07.268575Z  INFO vyder_core::lexer: Advancing to char index 25 [INFO] [stdout] 2025-10-01T20:05:07.268580Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-01T20:05:07.268582Z  INFO vyder_core::lexer: Char at distance 1 from 25 is 't' [INFO] [stdout] 2025-10-01T20:05:07.268592Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268596Z  INFO vyder_core::lexer: Advancing to char index 26 [INFO] [stdout] 2025-10-01T20:05:07.268598Z  INFO vyder_core::lexer: Constructing span at line 1, column 12 [INFO] [stdout] 2025-10-01T20:05:07.268604Z  INFO vyder_core::lexer: Char at distance 1 from 26 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268605Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.268611Z  INFO vyder_core::lexer: Advancing to char index 27 [INFO] [stdout] 2025-10-01T20:05:07.268616Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.268620Z  INFO vyder_core::lexer: Char at distance 1 from 27 is '3' [INFO] [stdout] 2025-10-01T20:05:07.268622Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-10-01T20:05:07.268626Z  INFO vyder_core::lexer: Advancing to char index 28 [INFO] [stdout] 2025-10-01T20:05:07.268634Z  INFO vyder_core::lexer: Char at distance 1 from 28 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.268640Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268646Z  INFO vyder_core::lexer: Constructing span at line 3, column 9 [INFO] [stdout] 2025-10-01T20:05:07.268652Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2025-10-01T20:05:07.268661Z  INFO vyder_core::lexer: Char at distance 0 from 28 is '3' [INFO] [stdout] 2025-10-01T20:05:07.268668Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2025-10-01T20:05:07.268675Z  INFO vyder_core::lexer: Char at distance 0 from 28 is '3' [INFO] [stdout] 2025-10-01T20:05:07.268682Z  INFO vyder_core::lexer: Advancing to char index 29 [INFO] [stdout] 2025-10-01T20:05:07.268691Z  INFO vyder_core::lexer: Char at distance 0 from 29 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.268701Z  INFO vyder_core::lexer: Next token is '3' [INFO] [stdout] 2025-10-01T20:05:07.268712Z  INFO vyder_core::lexer: Advancing to char index 29 [INFO] [stdout] 2025-10-01T20:05:07.268720Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268726Z  INFO vyder_core::lexer: Constructing span at line 3, column 10 [INFO] [stdout] 2025-10-01T20:05:07.268733Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2025-10-01T20:05:07.268743Z  INFO vyder_core::lexer: Char at distance 0 from 29 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.268761Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-10-01T20:05:07.268064Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2025-10-01T20:05:07.268793Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2025-10-01T20:05:07.268803Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-01T20:05:07.268810Z  INFO vyder_core::lexer: Char at distance 0 from 1 is 'o' [INFO] [stdout] 2025-10-01T20:05:07.268816Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-01T20:05:07.268823Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'o' [INFO] [stdout] 2025-10-01T20:05:07.268829Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-01T20:05:07.268835Z  INFO vyder_core::lexer: Char at distance 0 from 3 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268842Z  INFO vyder_core::lexer: Next token is 'foo' [INFO] [stdout] 2025-10-01T20:05:07.268852Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-01T20:05:07.268858Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268863Z  INFO vyder_core::lexer: Constructing span at line 1, column 4 [INFO] [stdout] 2025-10-01T20:05:07.268869Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.268876Z  INFO vyder_core::lexer: Char at distance 0 from 3 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.268882Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-01T20:05:07.268888Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.268895Z  INFO vyder_core::lexer: Constructing span at line 1, column 5 [INFO] [stdout] 2025-10-01T20:05:07.268900Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.268907Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'r' [INFO] [stdout] 2025-10-01T20:05:07.268913Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'r' [INFO] [stdout] 2025-10-01T20:05:07.268920Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-10-01T20:05:07.268927Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'e' [INFO] [stdout] 2025-10-01T20:05:07.268933Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-01T20:05:07.268940Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 't' [INFO] [stdout] 2025-10-01T20:05:07.268947Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-01T20:05:07.268954Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'u' [INFO] [stdout] 2025-10-01T20:05:07.268960Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-10-01T20:05:07.268980Z  INFO vyder_core::lexer: Char at distance 0 from 8 is 'r' [INFO] [stdout] 2025-10-01T20:05:07.268987Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-10-01T20:05:07.268994Z  INFO vyder_core::lexer: Char at distance 0 from 9 is 'n' [INFO] [stdout] 2025-10-01T20:05:07.269000Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-01T20:05:07.269007Z  INFO vyder_core::lexer: Char at distance 0 from 10 is ')' [INFO] [stdout] 2025-10-01T20:05:07.269014Z  INFO vyder_core::lexer: Next token is 'return' [INFO] [stdout] 2025-10-01T20:05:07.269022Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-01T20:05:07.269030Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.269035Z  INFO vyder_core::lexer: Constructing span at line 1, column 11 [INFO] [stdout] 2025-10-01T20:05:07.269041Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.269050Z  INFO vyder_core::lexer: Char at distance 0 from 10 is ')' [INFO] [stdout] 2025-10-01T20:05:07.269057Z  INFO vyder_core::lexer: Next token is ')' [INFO] [stdout] 2025-10-01T20:05:07.269066Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-01T20:05:07.269072Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.269078Z  INFO vyder_core::lexer: Constructing span at line 1, column 12 [INFO] [stdout] 2025-10-01T20:05:07.269084Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.269093Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.269100Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] test lexer::tests::numbers_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.269555Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-10-01T20:05:07.269581Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.269588Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-10-01T20:05:07.269596Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.269604Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-10-01T20:05:07.269612Z  INFO vyder_core::lexer: Char at distance 1 from 0 is '"' [INFO] [stdout] 2025-10-01T20:05:07.269619Z  INFO vyder_core::lexer: Next token is '+' [INFO] [stdout] 2025-10-01T20:05:07.269630Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-01T20:05:07.269647Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.269654Z  INFO vyder_core::lexer: Constructing span at line 1, column 2 [INFO] [stdout] 2025-10-01T20:05:07.269660Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.269669Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '"' [INFO] [stdout] 2025-10-01T20:05:07.269691Z  INFO vyder_core::lexer: get_string function [INFO] [stdout] 2025-10-01T20:05:07.269697Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-01T20:05:07.269704Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'H' [INFO] [stdout] 2025-10-01T20:05:07.269712Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-01T20:05:07.269725Z  INFO vyder_core::lexer: Char at distance 0 from 3 is 'e' [INFO] [stdout] 2025-10-01T20:05:07.269733Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-01T20:05:07.269740Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'l' [INFO] [stdout] 2025-10-01T20:05:07.269753Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stderr] Running unittests src/bin/vyder_debug_cli/main.rs (/opt/rustwide/target/debug/deps/vyder_debug_cli-bb2043fe6848a052) [INFO] [stderr] Doc-tests vyder_core [INFO] [stdout] 2025-10-01T20:05:07.269843Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'l' [INFO] [stdout] 2025-10-01T20:05:07.269861Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-01T20:05:07.269870Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'o' [INFO] [stdout] 2025-10-01T20:05:07.269877Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-01T20:05:07.269889Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ',' [INFO] [stdout] 2025-10-01T20:05:07.269897Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-10-01T20:05:07.269917Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.269924Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-10-01T20:05:07.269931Z  INFO vyder_core::lexer: Char at distance 0 from 9 is 'W' [INFO] [stdout] 2025-10-01T20:05:07.269937Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-01T20:05:07.269951Z  INFO vyder_core::lexer: Char at distance 0 from 10 is 'o' [INFO] [stdout] 2025-10-01T20:05:07.269957Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-01T20:05:07.270018Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.270113Z  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] 2025-10-01T20:05:07.270138Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.270157Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.270177Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.270191Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.270208Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.270222Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.270238Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.270250Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.270266Z  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] 2025-10-01T20:05:07.270301Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.270380Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.270396Z  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] 2025-10-01T20:05:07.270410Z  INFO vyder_core::parser: Advancing to token index 1: '=' [INFO] [stdout] 2025-10-01T20:05:07.270423Z  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] 2025-10-01T20:05:07.270434Z  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] 2025-10-01T20:05:07.270443Z  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] 2025-10-01T20:05:07.270454Z  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] 2025-10-01T20:05:07.270467Z  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] 2025-10-01T20:05:07.270478Z  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] 2025-10-01T20:05:07.270488Z  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] 2025-10-01T20:05:07.270499Z  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] 2025-10-01T20:05:07.270509Z  INFO vyder_core::parser: Advancing to token index 2: '12' [INFO] [stdout] 2025-10-01T20:05:07.270515Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.270522Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.270528Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.270534Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.270540Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.270545Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.270551Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.270557Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.270568Z  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] 2025-10-01T20:05:07.270584Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.270597Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.270612Z  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] 2025-10-01T20:05:07.270628Z  INFO vyder_core::parser: Advancing to token index 3: 'or' [INFO] [stdout] 2025-10-01T20:05:07.270641Z  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] 2025-10-01T20:05:07.270653Z  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] 2025-10-01T20:05:07.270664Z  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] 2025-10-01T20:05:07.270675Z  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] 2025-10-01T20:05:07.270689Z  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] 2025-10-01T20:05:07.270700Z  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] 2025-10-01T20:05:07.270711Z  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] 2025-10-01T20:05:07.270719Z  INFO vyder_core::parser: Advancing to token index 4: '3' [INFO] [stdout] 2025-10-01T20:05:07.270725Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.270731Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.270738Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.270744Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.270750Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.270756Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.270762Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.270774Z  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] 2025-10-01T20:05:07.270787Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.270797Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.270812Z  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] 2025-10-01T20:05:07.270820Z  INFO vyder_core::parser: Advancing to token index 5: ';' [INFO] [stdout] 2025-10-01T20:05:07.270831Z  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] 2025-10-01T20:05:07.270843Z  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] 2025-10-01T20:05:07.270854Z  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] 2025-10-01T20:05:07.270866Z  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] 2025-10-01T20:05:07.270880Z  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] 2025-10-01T20:05:07.270891Z  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] 2025-10-01T20:05:07.270901Z  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] 2025-10-01T20:05:07.270914Z  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] 2025-10-01T20:05:07.270932Z  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] 2025-10-01T20:05:07.270955Z  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] 2025-10-01T20:05:07.270983Z  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] 2025-10-01T20:05:07.270999Z  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] 2025-10-01T20:05:07.271011Z  INFO vyder_core::parser: Advancing to token index 6: 'EOF' [INFO] [stdout] 2025-10-01T20:05:07.271021Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-01T20:05:07.271040Z  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] 2025-10-01T20:05:07.271058Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.271065Z  INFO vyder_core::parser: Token at distance 0 from 6 is None [INFO] [stdout] test lexer::tests::comments_test ... ok [INFO] [stdout] test lexer::tests::identifiers_test ... ok [INFO] [stdout] test parser::tests::assignment_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.272494Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'r' [INFO] [stdout] 2025-10-01T20:05:07.272620Z  INFO vyder_core::lexer: Advancing to char index 12 [INFO] [stdout] 2025-10-01T20:05:07.273464Z  INFO vyder_core::lexer: Char at distance 0 from 12 is 'l' [INFO] [stdout] 2025-10-01T20:05:07.273508Z  INFO vyder_core::lexer: Advancing to char index 13 [INFO] [stdout] 2025-10-01T20:05:07.273538Z  INFO vyder_core::lexer: Char at distance 0 from 13 is 'd' [INFO] [stdout] 2025-10-01T20:05:07.273565Z  INFO vyder_core::lexer: Advancing to char index 14 [INFO] [stdout] 2025-10-01T20:05:07.273593Z  INFO vyder_core::lexer: Char at distance 0 from 14 is '!' [INFO] [stdout] 2025-10-01T20:05:07.273633Z  INFO vyder_core::lexer: Advancing to char index 15 [INFO] [stdout] 2025-10-01T20:05:07.273662Z  INFO vyder_core::lexer: Char at distance 0 from 15 is '"' [INFO] [stdout] 2025-10-01T20:05:07.273690Z  INFO vyder_core::lexer: Next token is '"Hello, World!"' [INFO] [stdout] 2025-10-01T20:05:07.273723Z  INFO vyder_core::lexer: Advancing to char index 16 [INFO] [stdout] 2025-10-01T20:05:07.273749Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.273772Z  INFO vyder_core::lexer: Constructing span at line 1, column 17 [INFO] [stdout] 2025-10-01T20:05:07.273798Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.273838Z  INFO vyder_core::lexer: Char at distance 0 from 16 is ''' [INFO] [stdout] 2025-10-01T20:05:07.273868Z  INFO vyder_core::lexer: get_string function [INFO] [stdout] 2025-10-01T20:05:07.273894Z  INFO vyder_core::lexer: Advancing to char index 17 [INFO] [stdout] 2025-10-01T20:05:07.273924Z  INFO vyder_core::lexer: Char at distance 0 from 17 is 'f' [INFO] [stdout] 2025-10-01T20:05:07.274066Z  INFO vyder_core::lexer: Advancing to char index 18 [INFO] [stdout] 2025-10-01T20:05:07.274098Z  INFO vyder_core::lexer: Char at distance 0 from 18 is 'o' [INFO] [stdout] 2025-10-01T20:05:07.274126Z  INFO vyder_core::lexer: Advancing to char index 19 [INFO] [stdout] 2025-10-01T20:05:07.274156Z  INFO vyder_core::lexer: Char at distance 0 from 19 is 'o' [INFO] [stdout] 2025-10-01T20:05:07.274181Z  INFO vyder_core::lexer: Advancing to char index 20 [INFO] [stdout] 2025-10-01T20:05:07.274207Z  INFO vyder_core::lexer: Char at distance 0 from 20 is '\' [INFO] [stdout] 2025-10-01T20:05:07.274234Z  INFO vyder_core::lexer: Char at distance 1 from 20 is 't' [INFO] [stdout] 2025-10-01T20:05:07.274293Z  INFO vyder_core::lexer: Advancing to char index 21 without increasing column [INFO] [stdout] 2025-10-01T20:05:07.274328Z  INFO vyder_core::lexer: Advancing to char index 22 [INFO] [stdout] 2025-10-01T20:05:07.274357Z  INFO vyder_core::lexer: Char at distance 0 from 22 is ''' [INFO] [stdout] 2025-10-01T20:05:07.274404Z  INFO vyder_core::lexer: Next token is '"foo "' [INFO] [stdout] 2025-10-01T20:05:07.274435Z  INFO vyder_core::lexer: Advancing to char index 23 [INFO] [stdout] 2025-10-01T20:05:07.274460Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.274484Z  INFO vyder_core::lexer: Constructing span at line 1, column 23 [INFO] [stdout] 2025-10-01T20:05:07.273360Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.273438Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.274571Z  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] 2025-10-01T20:05:07.273230Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.274589Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.274594Z  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] 2025-10-01T20:05:07.274604Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.274607Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.274615Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.274622Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.274626Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.274636Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.274640Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.274647Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.274650Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.274658Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.274666Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.274671Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.274677Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.274682Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.274689Z  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] 2025-10-01T20:05:07.274693Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.274705Z  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] 2025-10-01T20:05:07.274717Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.274734Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.274787Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.274798Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.274801Z  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] 2025-10-01T20:05:07.274810Z  INFO vyder_core::parser: Advancing to token index 1: '(' [INFO] [stdout] 2025-10-01T20:05:07.274812Z  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] 2025-10-01T20:05:07.274820Z  INFO vyder_core::parser: Advancing to token index 1: '=' [INFO] [stdout] 2025-10-01T20:05:07.274821Z  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] 2025-10-01T20:05:07.274827Z  INFO vyder_core::parser: Advancing to token index 2: 'bar' [INFO] [stdout] 2025-10-01T20:05:07.274830Z  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] 2025-10-01T20:05:07.274839Z  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] 2025-10-01T20:05:07.274841Z  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] 2025-10-01T20:05:07.274846Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.274851Z  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] 2025-10-01T20:05:07.274852Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.274859Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.274861Z  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] 2025-10-01T20:05:07.274865Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.274871Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.274874Z  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] 2025-10-01T20:05:07.274877Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.274884Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.274884Z  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] 2025-10-01T20:05:07.274890Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.274894Z  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] 2025-10-01T20:05:07.274901Z  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] 2025-10-01T20:05:07.274904Z  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] 2025-10-01T20:05:07.274912Z  INFO vyder_core::parser: Advancing to token index 2: '(' [INFO] [stdout] 2025-10-01T20:05:07.274915Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.274918Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.274925Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.274931Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.274937Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.274943Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.274949Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.274955Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.274962Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.274989Z  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] 2025-10-01T20:05:07.274991Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.275003Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.275004Z  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] 2025-10-01T20:05:07.275012Z  INFO vyder_core::parser: Advancing to token index 3: '(' [INFO] [stdout] 2025-10-01T20:05:07.275015Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.275023Z  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] 2025-10-01T20:05:07.275025Z  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] 2025-10-01T20:05:07.275033Z  INFO vyder_core::parser: Advancing to token index 3: 'import' [INFO] [stdout] 2025-10-01T20:05:07.275031Z  INFO vyder_core::parser: Advancing to token index 4: ')' [INFO] [stdout] 2025-10-01T20:05:07.275047Z  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] 2025-10-01T20:05:07.275045Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.275055Z  INFO vyder_core::parser: Advancing to token index 5: ')' [INFO] [stdout] 2025-10-01T20:05:07.275059Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.275071Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.275074Z  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] 2025-10-01T20:05:07.275085Z  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] 2025-10-01T20:05:07.275082Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.275095Z  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] 2025-10-01T20:05:07.275102Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.275105Z  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] 2025-10-01T20:05:07.275113Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.275117Z  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] 2025-10-01T20:05:07.275127Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.275128Z  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] 2025-10-01T20:05:07.275138Z  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] 2025-10-01T20:05:07.275137Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.275148Z  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] 2025-10-01T20:05:07.275153Z  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] 2025-10-01T20:05:07.275155Z  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] 2025-10-01T20:05:07.275174Z  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] 2025-10-01T20:05:07.275177Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.275186Z  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] 2025-10-01T20:05:07.275194Z  INFO vyder_core::parser: Advancing to token index 6: ';' [INFO] [stdout] 2025-10-01T20:05:07.275205Z  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] 2025-10-01T20:05:07.275221Z  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] 2025-10-01T20:05:07.275231Z  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] 2025-10-01T20:05:07.275240Z  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] 2025-10-01T20:05:07.275252Z  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] 2025-10-01T20:05:07.275262Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.275263Z  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] 2025-10-01T20:05:07.275272Z  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] 2025-10-01T20:05:07.275274Z  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] 2025-10-01T20:05:07.275282Z  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] 2025-10-01T20:05:07.275282Z  INFO vyder_core::parser: Advancing to token index 4: '(' [INFO] [stdout] 2025-10-01T20:05:07.275290Z  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] 2025-10-01T20:05:07.275299Z  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] 2025-10-01T20:05:07.275306Z  INFO vyder_core::parser: Advancing to token index 5: '"std"' [INFO] [stdout] 2025-10-01T20:05:07.275307Z  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] 2025-10-01T20:05:07.275317Z  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] 2025-10-01T20:05:07.275325Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:15 [INFO] [stdout] | foo(bar( )); [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2025-10-01T20:05:07.275335Z  INFO vyder_core::parser: Advancing to token index 7: 'EOF' [INFO] [stdout] 2025-10-01T20:05:07.275344Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-01T20:05:07.275351Z  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] 2025-10-01T20:05:07.275366Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.275372Z  INFO vyder_core::parser: Token at distance 0 from 7 is None [INFO] [stdout] 2025-10-01T20:05:07.275402Z  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] 2025-10-01T20:05:07.275514Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.275525Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.275533Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.275539Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.275546Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.275552Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.275559Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.275565Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.275580Z  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] 2025-10-01T20:05:07.275595Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.275661Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.275678Z  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] 2025-10-01T20:05:07.275691Z  INFO vyder_core::parser: Advancing to token index 6: ')' [INFO] [stdout] 2025-10-01T20:05:07.275702Z  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] 2025-10-01T20:05:07.275713Z  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] 2025-10-01T20:05:07.275723Z  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] 2025-10-01T20:05:07.275734Z  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] 2025-10-01T20:05:07.275748Z  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] 2025-10-01T20:05:07.275758Z  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] 2025-10-01T20:05:07.275768Z  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] 2025-10-01T20:05:07.275779Z  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] 2025-10-01T20:05:07.275786Z  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] 2025-10-01T20:05:07.275804Z  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] 2025-10-01T20:05:07.275819Z  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] 2025-10-01T20:05:07.275828Z  INFO vyder_core::parser: Advancing to token index 7: '.' [INFO] [stdout] 2025-10-01T20:05:07.275842Z  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] 2025-10-01T20:05:07.275850Z  INFO vyder_core::parser: Advancing to token index 8: 'argc' [INFO] [stdout] 2025-10-01T20:05:07.275862Z  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] 2025-10-01T20:05:07.275871Z  INFO vyder_core::parser: Advancing to token index 9: '+' [INFO] [stdout] 2025-10-01T20:05:07.275894Z  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] 2025-10-01T20:05:07.275901Z  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] 2025-10-01T20:05:07.275917Z  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] 2025-10-01T20:05:07.275929Z  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] 2025-10-01T20:05:07.275940Z  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] 2025-10-01T20:05:07.275948Z  INFO vyder_core::parser: Advancing to token index 10: '2' [INFO] [stdout] 2025-10-01T20:05:07.275955Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.275961Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.275984Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.275997Z  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] 2025-10-01T20:05:07.276013Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.276020Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.276032Z  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] 2025-10-01T20:05:07.276040Z  INFO vyder_core::parser: Advancing to token index 11: ')' [INFO] [stdout] 2025-10-01T20:05:07.276051Z  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] 2025-10-01T20:05:07.276063Z  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] 2025-10-01T20:05:07.276074Z  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] 2025-10-01T20:05:07.276087Z  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] 2025-10-01T20:05:07.276102Z  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] 2025-10-01T20:05:07.276114Z  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] 2025-10-01T20:05:07.276125Z  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] 2025-10-01T20:05:07.276136Z  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] 2025-10-01T20:05:07.276144Z  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] 2025-10-01T20:05:07.276166Z  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] 2025-10-01T20:05:07.276174Z  INFO vyder_core::parser: Advancing to token index 12: '+' [INFO] [stdout] 2025-10-01T20:05:07.276187Z  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] 2025-10-01T20:05:07.276199Z  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] 2025-10-01T20:05:07.276211Z  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] 2025-10-01T20:05:07.276218Z  INFO vyder_core::parser: Advancing to token index 13: '2' [INFO] [stdout] 2025-10-01T20:05:07.276225Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.276231Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.276237Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.276249Z  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] 2025-10-01T20:05:07.276263Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.276270Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.276282Z  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] 2025-10-01T20:05:07.276297Z  INFO vyder_core::parser: Advancing to token index 14: ';' [INFO] [stdout] 2025-10-01T20:05:07.276309Z  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] 2025-10-01T20:05:07.276322Z  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] 2025-10-01T20:05:07.276336Z  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] 2025-10-01T20:05:07.276360Z  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] 2025-10-01T20:05:07.276377Z  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] 2025-10-01T20:05:07.276389Z  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] 2025-10-01T20:05:07.276407Z  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] 2025-10-01T20:05:07.276420Z  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] 2025-10-01T20:05:07.276429Z  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] 2025-10-01T20:05:07.276454Z  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] 2025-10-01T20:05:07.276466Z  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] 2025-10-01T20:05:07.276473Z  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] 2025-10-01T20:05:07.276483Z  INFO vyder_core::parser: Advancing to token index 15: 'EOF' [INFO] [stdout] 2025-10-01T20:05:07.276490Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-01T20:05:07.276497Z  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] 2025-10-01T20:05:07.276517Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.276523Z  INFO vyder_core::parser: Token at distance 0 from 15 is None [INFO] [stdout] 2025-10-01T20:05:07.274533Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] test parser::tests::calls_test ... ok [INFO] [stdout] test parser::tests::import_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.275496Z  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] 2025-10-01T20:05:07.276819Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.276836Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.276850Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.276863Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.276875Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.276890Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.276900Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.276912Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.276927Z  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] 2025-10-01T20:05:07.276950Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.277037Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.277058Z  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] 2025-10-01T20:05:07.277066Z  INFO vyder_core::parser: Advancing to token index 1: '.' [INFO] [stdout] 2025-10-01T20:05:07.277075Z  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] 2025-10-01T20:05:07.277081Z  INFO vyder_core::parser: Advancing to token index 2: 'bar' [INFO] [stdout] 2025-10-01T20:05:07.277091Z  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] 2025-10-01T20:05:07.277097Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2025-10-01T20:05:07.277108Z  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] 2025-10-01T20:05:07.277113Z  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] 2025-10-01T20:05:07.277124Z  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] 2025-10-01T20:05:07.277133Z  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] 2025-10-01T20:05:07.277141Z  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] 2025-10-01T20:05:07.277152Z  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] 2025-10-01T20:05:07.277166Z  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] 2025-10-01T20:05:07.277177Z  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] 2025-10-01T20:05:07.277186Z  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] 2025-10-01T20:05:07.277194Z  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] 2025-10-01T20:05:07.277201Z  INFO vyder_core::parser: Parsed expression ''FieldAccess' at test 1:1 - 1:7 (7 chars) [INFO] [stdout] | foo.bar; [INFO] [stdout] ^^^^^^^ here' [INFO] [stdout] 2025-10-01T20:05:07.277218Z  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] 2025-10-01T20:05:07.277229Z  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] 2025-10-01T20:05:07.277236Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:8 [INFO] [stdout] | foo.bar; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2025-10-01T20:05:07.277244Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2025-10-01T20:05:07.277250Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-01T20:05:07.277256Z  INFO vyder_core::parser: parsed statement ''FieldAccess;' at test 1:1 - 1:8 (8 chars) [INFO] [stdout] | foo.bar; [INFO] [stdout] ^^^^^^^^ here' [INFO] [stdout] 2025-10-01T20:05:07.277267Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.277273Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] test parser::tests::field_access_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.277862Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.277894Z  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] 2025-10-01T20:05:07.277905Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.277916Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.277928Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.277937Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.277947Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.277959Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.278029Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.278048Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.278061Z  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] 2025-10-01T20:05:07.278072Z  INFO vyder_core::parser: Advancing to token index 1: '-' [INFO] [stdout] 2025-10-01T20:05:07.278080Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.278092Z  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] 2025-10-01T20:05:07.278181Z  INFO vyder_core::parser: Advancing to token index 2: 'foo' [INFO] [stdout] 2025-10-01T20:05:07.278187Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.278202Z  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] 2025-10-01T20:05:07.278223Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.278280Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.278303Z  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] 2025-10-01T20:05:07.278311Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2025-10-01T20:05:07.278323Z  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] 2025-10-01T20:05:07.278338Z  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] 2025-10-01T20:05:07.278348Z  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] 2025-10-01T20:05:07.278357Z  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] 2025-10-01T20:05:07.278369Z  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] 2025-10-01T20:05:07.278378Z  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] 2025-10-01T20:05:07.278388Z  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] 2025-10-01T20:05:07.278397Z  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] 2025-10-01T20:05:07.278404Z  INFO vyder_core::parser: Parsed expression ''Not' at test 1:1 - 1:5 (5 chars) [INFO] [stdout] | !-foo; [INFO] [stdout] ^^^^^ here' [INFO] [stdout] 2025-10-01T20:05:07.278418Z  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] 2025-10-01T20:05:07.278427Z  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] 2025-10-01T20:05:07.278434Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2025-10-01T20:05:07.278443Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2025-10-01T20:05:07.278450Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-01T20:05:07.278457Z  INFO vyder_core::parser: parsed statement ''Not;' at test 1:1 - 1:6 (6 chars) [INFO] [stdout] | !-foo; [INFO] [stdout] ^^^^^^ here' [INFO] [stdout] 2025-10-01T20:05:07.278470Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.278477Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2025-10-01T20:05:07.278559Z  INFO vyder_core::lexer: Char at distance 0 from 23 is '(' [INFO] [stdout] 2025-10-01T20:05:07.278577Z  INFO vyder_core::lexer: Next token is '(' [INFO] [stdout] 2025-10-01T20:05:07.278587Z  INFO vyder_core::lexer: Advancing to char index 24 [INFO] [stdout] 2025-10-01T20:05:07.278594Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.278600Z  INFO vyder_core::lexer: Constructing span at line 1, column 24 [INFO] [stdout] 2025-10-01T20:05:07.278606Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.278615Z  INFO vyder_core::lexer: Char at distance 0 from 24 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.278621Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] test parser::tests::unary_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.278763Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.278787Z  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] test lexer::tests::strings_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.278800Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] test statement::tests::expect_test ... ok [INFO] [stdout] test token::tests::expect_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.278559Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.279184Z  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] 2025-10-01T20:05:07.279211Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.279235Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.279255Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.279268Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.279280Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.279292Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.279659Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.279689Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.279702Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.279723Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.279745Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.279770Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.279788Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.280161Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.280189Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.280206Z  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] 2025-10-01T20:05:07.280243Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.280661Z  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] 2025-10-01T20:05:07.280710Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.281193Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.281226Z  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] 2025-10-01T20:05:07.281236Z  INFO vyder_core::parser: Advancing to token index 1: '[' [INFO] [stdout] 2025-10-01T20:05:07.281251Z  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] 2025-10-01T20:05:07.281266Z  INFO vyder_core::parser: Advancing to token index 2: '1' [INFO] [stdout] 2025-10-01T20:05:07.281273Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-01T20:05:07.281285Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-01T20:05:07.281293Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-01T20:05:07.280790Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.281694Z  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] 2025-10-01T20:05:07.281713Z  INFO vyder_core::parser: Advancing to token index 1: '..' [INFO] [stdout] 2025-10-01T20:05:07.281734Z  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] 2025-10-01T20:05:07.281753Z  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] 2025-10-01T20:05:07.281771Z  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] 2025-10-01T20:05:07.281788Z  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] 2025-10-01T20:05:07.282174Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-01T20:05:07.282195Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-01T20:05:07.282203Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.282215Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.282222Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.282242Z  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] 2025-10-01T20:05:07.282265Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.282849Z  INFO vyder_core::parser: Advancing to token index 2: '3' [INFO] [stdout] 2025-10-01T20:05:07.282871Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-01T20:05:07.282879Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-01T20:05:07.282890Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-01T20:05:07.282903Z  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] 2025-10-01T20:05:07.282925Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-01T20:05:07.282939Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.282952Z  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] 2025-10-01T20:05:07.283367Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-01T20:05:07.283399Z  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] 2025-10-01T20:05:07.283416Z  INFO vyder_core::parser: Advancing to token index 3: ']' [INFO] [stdout] 2025-10-01T20:05:07.283434Z  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] 2025-10-01T20:05:07.283452Z  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] 2025-10-01T20:05:07.284006Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2025-10-01T20:05:07.284042Z  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] 2025-10-01T20:05:07.284062Z  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] 2025-10-01T20:05:07.284078Z  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] 2025-10-01T20:05:07.284096Z  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] 2025-10-01T20:05:07.284113Z  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] 2025-10-01T20:05:07.284129Z  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] 2025-10-01T20:05:07.283468Z  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] 2025-10-01T20:05:07.284711Z  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] 2025-10-01T20:05:07.284737Z  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] 2025-10-01T20:05:07.284755Z  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] 2025-10-01T20:05:07.284772Z  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] 2025-10-01T20:05:07.284789Z  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] 2025-10-01T20:05:07.285177Z  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] 2025-10-01T20:05:07.285198Z  INFO vyder_core::parser: Parsed expression ''Range' at test 1:1 - 1:4 (4 chars) [INFO] [stdout] | 1..3; [INFO] [stdout] ^^^^ here' [INFO] [stdout] 2025-10-01T20:05:07.285223Z  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] 2025-10-01T20:05:07.285240Z  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] 2025-10-01T20:05:07.285254Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:5 [INFO] [stdout] | 1..3; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2025-10-01T20:05:07.285270Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2025-10-01T20:05:07.285285Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-01T20:05:07.284802Z  INFO vyder_core::parser: Parsed expression ''1' at test 1:5 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2025-10-01T20:05:07.285858Z  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] 2025-10-01T20:05:07.285878Z  INFO vyder_core::parser: Advancing to token index 4: ';' [INFO] [stdout] 2025-10-01T20:05:07.285895Z  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] 2025-10-01T20:05:07.285916Z  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] 2025-10-01T20:05:07.285935Z  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] 2025-10-01T20:05:07.285953Z  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] 2025-10-01T20:05:07.285294Z  INFO vyder_core::parser: parsed statement ''Range;' at test 1:1 - 1:5 (5 chars) [INFO] [stdout] | 1..3; [INFO] [stdout] ^^^^^ here' [INFO] [stdout] 2025-10-01T20:05:07.286538Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.286557Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2025-10-01T20:05:07.287011Z  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] 2025-10-01T20:05:07.287045Z  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] 2025-10-01T20:05:07.287064Z  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] 2025-10-01T20:05:07.287081Z  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] 2025-10-01T20:05:07.287094Z  INFO vyder_core::parser: Parsed expression ''Index' at test 1:1 - 1:6 (6 chars) [INFO] [stdout] | foo[1]; [INFO] [stdout] ^^^^^^ here' [INFO] [stdout] 2025-10-01T20:05:07.287117Z  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] test parser::tests::ranges_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.287133Z  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] 2025-10-01T20:05:07.287854Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:7 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2025-10-01T20:05:07.287869Z  INFO vyder_core::parser: Advancing to token index 5: 'EOF' [INFO] [stdout] 2025-10-01T20:05:07.287876Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-01T20:05:07.287884Z  INFO vyder_core::parser: parsed statement ''Index;' at test 1:1 - 1:7 (7 chars) [INFO] [stdout] | foo[1]; [INFO] [stdout] ^^^^^^^ here' [INFO] [stdout] 2025-10-01T20:05:07.287897Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-01T20:05:07.287905Z  INFO vyder_core::parser: Token at distance 0 from 5 is None [INFO] [stdout] test parser::tests::index_test ... ok [INFO] [stdout] test interpreter::tests::number_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.288929Z  INFO vyder_core::interpreter: evaluating 'not' [INFO] [stdout] test interpreter::tests::not_test ... ok2025-10-01T20:05:07.290448Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] [INFO] [stdout] test interpreter::tests::negate_test ... ok [INFO] [stdout] 2025-10-01T20:05:07.291065Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.291147Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-10-01T20:05:07.291170Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.291196Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-10-01T20:05:07.291218Z  INFO vyder_core::lexer: Char at distance 1 from 0 is '=' [INFO] [stdout] 2025-10-01T20:05:07.291238Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-01T20:05:07.291261Z  INFO vyder_core::lexer: Next token is '+=' [INFO] [stdout] 2025-10-01T20:05:07.291308Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-01T20:05:07.291329Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.291349Z  INFO vyder_core::lexer: Constructing span at line 1, column 3 [INFO] [stdout] 2025-10-01T20:05:07.291368Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-01T20:05:07.291390Z  INFO vyder_core::lexer: Char at distance 0 from 2 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-10-01T20:05:07.291409Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.291428Z  INFO vyder_core::lexer: Constructing span at line 2, column 1 [INFO] [stdout] 2025-10-01T20:05:07.291447Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-01T20:05:07.291468Z  INFO vyder_core::lexer: Char at distance 0 from 3 is '-' [INFO] [stdout] 2025-10-01T20:05:07.291489Z  INFO vyder_core::lexer: Char at distance 1 from 3 is '-' [INFO] [stdout] 2025-10-01T20:05:07.291509Z  INFO vyder_core::lexer: Char at distance 1 from 3 is '-' [INFO] [stdout] 2025-10-01T20:05:07.291528Z  INFO vyder_core::lexer: Next token is '-' [INFO] [stdout] 2025-10-01T20:05:07.291550Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-01T20:05:07.291570Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.291588Z  INFO vyder_core::lexer: Constructing span at line 2, column 2 [INFO] [stdout] 2025-10-01T20:05:07.291607Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-01T20:05:07.291629Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '-' [INFO] [stdout] 2025-10-01T20:05:07.291649Z  INFO vyder_core::lexer: Char at distance 1 from 4 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.291667Z  INFO vyder_core::lexer: Char at distance 1 from 4 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.291686Z  INFO vyder_core::lexer: Next token is '-' [INFO] [stdout] 2025-10-01T20:05:07.291709Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-10-01T20:05:07.291730Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.291750Z  INFO vyder_core::lexer: Constructing span at line 2, column 3 [INFO] [stdout] 2025-10-01T20:05:07.291770Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-01T20:05:07.291790Z  INFO vyder_core::lexer: Char at distance 0 from 5 is ' ' [INFO] [stdout] 2025-10-01T20:05:07.291809Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-01T20:05:07.291827Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.291845Z  INFO vyder_core::lexer: Constructing span at line 2, column 4 [INFO] [stdout] 2025-10-01T20:05:07.291863Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-01T20:05:07.291883Z  INFO vyder_core::lexer: Char at distance 0 from 6 is '/' [INFO] [stdout] 2025-10-01T20:05:07.291903Z  INFO vyder_core::lexer: Char at distance 1 from 6 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.291952Z  INFO vyder_core::lexer: Char at distance 1 from 6 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.292076Z  INFO vyder_core::lexer: Next token is '/' [INFO] [stdout] 2025-10-01T20:05:07.292107Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-01T20:05:07.292128Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-01T20:05:07.292153Z  INFO vyder_core::lexer: Constructing span at line 2, column 5 [INFO] [stdout] 2025-10-01T20:05:07.292172Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-01T20:05:07.292193Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'None' [INFO] [stdout] 2025-10-01T20:05:07.292214Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] test lexer::tests::operators_test ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test src/expression/mod.rs - expression::Expression::expect (line 23) ... ok [INFO] [stdout] test src/statement/mod.rs - statement::Statement::expect (line 23) ... ok [INFO] [stdout] test src/token/mod.rs - token::Token::expect (line 22) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.04s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "9c8fe232f66f86afaa72fbbeaf8eb68edd7569a0b07f10962c710e6b961add35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9c8fe232f66f86afaa72fbbeaf8eb68edd7569a0b07f10962c710e6b961add35", kill_on_drop: false }` [INFO] [stdout] 9c8fe232f66f86afaa72fbbeaf8eb68edd7569a0b07f10962c710e6b961add35