[INFO] fetching crate vyder_core 0.3.4... [INFO] testing vyder_core-0.3.4 against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145330-1 [INFO] extracting crate vyder_core 0.3.4 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate vyder_core 0.3.4 [INFO] finished tweaking crates.io crate vyder_core 0.3.4 [INFO] tweaked toml for crates.io crate vyder_core 0.3.4 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate vyder_core 0.3.4 on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded quote v1.0.36 [INFO] [stderr] Downloaded tracing-attributes v0.1.27 [INFO] [stderr] Downloaded vyder_macros v0.3.4 [INFO] [stderr] Downloaded proc-macro2 v1.0.86 [INFO] [stderr] Downloaded enum_downcast_derive v0.2.0 [INFO] [stderr] Downloaded tracing-test v0.2.5 [INFO] [stderr] Downloaded is_terminal_polyfill v1.70.0 [INFO] [stderr] Downloaded enum_downcast v0.2.0 [INFO] [stderr] Downloaded anstyle-parse v0.2.4 [INFO] [stderr] Downloaded anstyle-wincon v3.0.3 [INFO] [stderr] Downloaded anstyle-query v1.1.0 [INFO] [stderr] Downloaded clap_derive v4.5.8 [INFO] [stderr] Downloaded clap v4.5.9 [INFO] [stderr] Downloaded colorchoice v1.0.1 [INFO] [stderr] Downloaded memchr v2.7.4 [INFO] [stderr] Downloaded regex-automata v0.1.10 [INFO] [stderr] Downloaded anstream v0.6.14 [INFO] [stderr] Downloaded anstyle v1.0.7 [INFO] [stderr] Downloaded tracing-subscriber v0.3.18 [INFO] [stderr] Downloaded clap_builder v4.5.9 [INFO] [stderr] Downloaded clap_lex v0.7.1 [INFO] [stderr] Downloaded regex v1.10.5 [INFO] [stderr] Downloaded regex-syntax v0.6.29 [INFO] [stderr] Downloaded syn v2.0.72 [INFO] [stderr] Downloaded colored v2.1.0 [INFO] [stderr] Downloaded matchers v0.1.0 [INFO] [stderr] Downloaded tracing-test-macro v0.2.5 [INFO] [stderr] Downloaded regex-syntax v0.8.4 [INFO] [stderr] Downloaded regex-automata v0.4.7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e90ea1c62372c7acf93973d29be017e7b2a3d2c710ced8bf894a65e41616f864 [INFO] running `Command { std: "docker" "start" "-a" "e90ea1c62372c7acf93973d29be017e7b2a3d2c710ced8bf894a65e41616f864", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e90ea1c62372c7acf93973d29be017e7b2a3d2c710ced8bf894a65e41616f864", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e90ea1c62372c7acf93973d29be017e7b2a3d2c710ced8bf894a65e41616f864", kill_on_drop: false }` [INFO] [stdout] e90ea1c62372c7acf93973d29be017e7b2a3d2c710ced8bf894a65e41616f864 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 11b8a57389b0fae24d72f465d54bb83e9cd13b0474783defec69111797b01669 [INFO] running `Command { std: "docker" "start" "-a" "11b8a57389b0fae24d72f465d54bb83e9cd13b0474783defec69111797b01669", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling colorchoice v1.0.1 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling overload v0.1.1 [INFO] [stderr] Compiling anstyle-query v1.1.0 [INFO] [stderr] Compiling anstyle v1.0.7 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.0 [INFO] [stderr] Compiling clap_lex v0.7.1 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling thread_local v1.1.8 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling nu-ansi-term v0.46.0 [INFO] [stderr] Compiling anstyle-parse v0.2.4 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling colored v2.1.0 [INFO] [stderr] Compiling anstream v0.6.14 [INFO] [stderr] Compiling clap_builder v4.5.9 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling regex-automata v0.1.10 [INFO] [stderr] Compiling matchers v0.1.0 [INFO] [stderr] Compiling regex v1.10.5 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling enum_downcast_derive v0.2.0 [INFO] [stderr] Compiling clap_derive v4.5.8 [INFO] [stderr] Compiling tracing-test-macro v0.2.5 [INFO] [stderr] Compiling vyder_macros v0.3.4 [INFO] [stderr] Compiling enum_downcast v0.2.0 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling tracing-subscriber v0.3.18 [INFO] [stderr] Compiling clap v4.5.9 [INFO] [stderr] Compiling tracing-test v0.2.5 [INFO] [stderr] Compiling vyder_core v0.3.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/value/values.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 35 | #[derive(Clone, Debug, IntoValueEnum, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 43 | function: fn(&[ValueResult], Span) -> Result<(ValueResult, Option)>, [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 21.36s [INFO] running `Command { std: "docker" "inspect" "11b8a57389b0fae24d72f465d54bb83e9cd13b0474783defec69111797b01669", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "11b8a57389b0fae24d72f465d54bb83e9cd13b0474783defec69111797b01669", kill_on_drop: false }` [INFO] [stdout] 11b8a57389b0fae24d72f465d54bb83e9cd13b0474783defec69111797b01669 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 407a988680000890db45dd08be48767765ca4ee57f5f9fd5ef3b4b79fd2c9962 [INFO] running `Command { std: "docker" "start" "-a" "407a988680000890db45dd08be48767765ca4ee57f5f9fd5ef3b4b79fd2c9962", kill_on_drop: false }` [INFO] [stderr] Compiling vyder_core v0.3.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/value/values.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 35 | #[derive(Clone, Debug, IntoValueEnum, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 43 | function: fn(&[ValueResult], Span) -> Result<(ValueResult, Option)>, [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] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/value/values.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 35 | #[derive(Clone, Debug, IntoValueEnum, PartialEq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 43 | function: fn(&[ValueResult], Span) -> Result<(ValueResult, Option)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.82s [INFO] running `Command { std: "docker" "inspect" "407a988680000890db45dd08be48767765ca4ee57f5f9fd5ef3b4b79fd2c9962", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "407a988680000890db45dd08be48767765ca4ee57f5f9fd5ef3b4b79fd2c9962", kill_on_drop: false }` [INFO] [stdout] 407a988680000890db45dd08be48767765ca4ee57f5f9fd5ef3b4b79fd2c9962 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 2b615048e72a7033835e46395788c449bcc07c73fba499e2de51b05ebd74da95 [INFO] running `Command { std: "docker" "start" "-a" "2b615048e72a7033835e46395788c449bcc07c73fba499e2de51b05ebd74da95", 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.08s [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] 2025-10-02T07:08:43.426725Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.426727Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.426815Z  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-02T07:08:43.426843Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.426893Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.428125Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-10-02T07:08:43.428158Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.428168Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-10-02T07:08:43.428177Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.428189Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-10-02T07:08:43.428212Z  INFO vyder_core::lexer: Char at distance 1 from 0 is '=' [INFO] [stdout] 2025-10-02T07:08:43.428221Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-02T07:08:43.428204Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2025-10-02T07:08:43.428273Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.428282Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-10-02T07:08:43.428289Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.428299Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2025-10-02T07:08:43.426817Z  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-02T07:08:43.428669Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.428707Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2025-10-02T07:08:43.428253Z  INFO vyder_core::lexer: Next token is '+=' [INFO] [stdout] 2025-10-02T07:08:43.428830Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.428892Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.428894Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-02T07:08:43.428908Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.428912Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.428915Z  INFO vyder_core::lexer: Constructing span at line 1, column 3 [INFO] [stdout] 2025-10-02T07:08:43.428923Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.428929Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.428935Z  INFO vyder_core::lexer: Char at distance 0 from 2 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-10-02T07:08:43.428942Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.428945Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.428949Z  INFO vyder_core::lexer: Constructing span at line 2, column 1 [INFO] [stdout] 2025-10-02T07:08:43.428955Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-02T07:08:43.428963Z  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-02T07:08:43.428964Z  INFO vyder_core::lexer: Char at distance 0 from 3 is '-' [INFO] [stdout] 2025-10-02T07:08:43.428981Z  INFO vyder_core::lexer: Char at distance 1 from 3 is '-' [INFO] [stdout] 2025-10-02T07:08:43.428988Z  INFO vyder_core::lexer: Char at distance 1 from 3 is '-' [INFO] [stdout] 2025-10-02T07:08:43.428996Z  INFO vyder_core::lexer: Next token is '-' [INFO] [stdout] 2025-10-02T07:08:43.429006Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-02T07:08:43.429016Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.429023Z  INFO vyder_core::lexer: Constructing span at line 2, column 2 [INFO] [stdout] 2025-10-02T07:08:43.429029Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-02T07:08:43.429037Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '-' [INFO] [stdout] 2025-10-02T07:08:43.429044Z  INFO vyder_core::lexer: Char at distance 1 from 4 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.429052Z  INFO vyder_core::lexer: Char at distance 1 from 4 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.429059Z  INFO vyder_core::lexer: Next token is '-' [INFO] [stdout] 2025-10-02T07:08:43.429067Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-10-02T07:08:43.429073Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.429079Z  INFO vyder_core::lexer: Constructing span at line 2, column 3 [INFO] [stdout] 2025-10-02T07:08:43.429085Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-02T07:08:43.429094Z  INFO vyder_core::lexer: Char at distance 0 from 5 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.429100Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-02T07:08:43.429107Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.429114Z  INFO vyder_core::lexer: Constructing span at line 2, column 4 [INFO] [stdout] 2025-10-02T07:08:43.429120Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-02T07:08:43.429118Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.429129Z  INFO vyder_core::lexer: Char at distance 0 from 6 is '/' [INFO] [stdout] 2025-10-02T07:08:43.429137Z  INFO vyder_core::lexer: Char at distance 1 from 6 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.429144Z  INFO vyder_core::lexer: Char at distance 1 from 6 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.429151Z  INFO vyder_core::lexer: Next token is '/' [INFO] [stdout] 2025-10-02T07:08:43.429159Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-02T07:08:43.429166Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.429172Z  INFO vyder_core::lexer: Constructing span at line 2, column 5 [INFO] [stdout] 2025-10-02T07:08:43.429168Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.429195Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2025-10-02T07:08:43.429203Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-02T07:08:43.429201Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.429207Z  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-02T07:08:43.429210Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '2' [INFO] [stdout] 2025-10-02T07:08:43.429218Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-02T07:08:43.429219Z  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-02T07:08:43.429225Z  INFO vyder_core::lexer: Char at distance 0 from 2 is '.' [INFO] [stdout] 2025-10-02T07:08:43.429223Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.429233Z  INFO vyder_core::lexer: Char at distance 1 from 2 is '5' [INFO] [stdout] 2025-10-02T07:08:43.429234Z  INFO vyder_core::parser: Advancing to token index 1: '.' [INFO] [stdout] 2025-10-02T07:08:43.429238Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.429241Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-02T07:08:43.429248Z  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-02T07:08:43.429249Z  INFO vyder_core::lexer: Char at distance 0 from 3 is '5' [INFO] [stdout] 2025-10-02T07:08:43.429252Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.429256Z  INFO vyder_core::parser: Advancing to token index 2: 'bar' [INFO] [stdout] 2025-10-02T07:08:43.429258Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-02T07:08:43.429264Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.429267Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '.' [INFO] [stdout] 2025-10-02T07:08:43.429269Z  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-02T07:08:43.429278Z  INFO vyder_core::lexer: Next token is '12.5' [INFO] [stdout] 2025-10-02T07:08:43.429277Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.429290Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-02T07:08:43.429297Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.429304Z  INFO vyder_core::lexer: Constructing span at line 1, column 5 [INFO] [stdout] 2025-10-02T07:08:43.429280Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2025-10-02T07:08:43.429310Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.429310Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.429319Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '.' [INFO] [stdout] 2025-10-02T07:08:43.429327Z  INFO vyder_core::lexer: Char at distance 1 from 4 is 'f' [INFO] [stdout] 2025-10-02T07:08:43.429325Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.429335Z  INFO vyder_core::lexer: Next token is '.' [INFO] [stdout] 2025-10-02T07:08:43.429341Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.429345Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-10-02T07:08:43.429352Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.429355Z  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-02T07:08:43.429358Z  INFO vyder_core::lexer: Constructing span at line 1, column 6 [INFO] [stdout] 2025-10-02T07:08:43.429366Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.429373Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'f' [INFO] [stdout] 2025-10-02T07:08:43.429381Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'f' [INFO] [stdout] 2025-10-02T07:08:43.429386Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.429397Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-02T07:08:43.429405Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'o' [INFO] [stdout] 2025-10-02T07:08:43.429427Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-02T07:08:43.429436Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'o' [INFO] [stdout] 2025-10-02T07:08:43.429443Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-10-02T07:08:43.429451Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.429458Z  INFO vyder_core::lexer: Next token is 'foo' [INFO] [stdout] 2025-10-02T07:08:43.429468Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-10-02T07:08:43.429475Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.429481Z  INFO vyder_core::lexer: Constructing span at line 1, column 9 [INFO] [stdout] 2025-10-02T07:08:43.429488Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.429489Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.429496Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.429505Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-10-02T07:08:43.429511Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.429512Z  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-02T07:08:43.429517Z  INFO vyder_core::lexer: Constructing span at line 1, column 10 [INFO] [stdout] 2025-10-02T07:08:43.429523Z  INFO vyder_core::parser: Advancing to token index 1: '..' [INFO] [stdout] 2025-10-02T07:08:43.429524Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.429535Z  INFO vyder_core::lexer: Char at distance 0 from 9 is '1' [INFO] [stdout] 2025-10-02T07:08:43.429538Z  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-02T07:08:43.429542Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2025-10-02T07:08:43.429549Z  INFO vyder_core::lexer: Char at distance 0 from 9 is '1' [INFO] [stdout] 2025-10-02T07:08:43.429545Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.429554Z  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-02T07:08:43.429556Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-02T07:08:43.429565Z  INFO vyder_core::lexer: Char at distance 0 from 10 is '2' [INFO] [stdout] 2025-10-02T07:08:43.429567Z  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-02T07:08:43.429571Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-02T07:08:43.429570Z  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-02T07:08:43.429579Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.429580Z  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-02T07:08:43.429587Z  INFO vyder_core::lexer: Next token is '12' [INFO] [stdout] 2025-10-02T07:08:43.429590Z  INFO vyder_core::parser: Advancing to token index 2: '3' [INFO] [stdout] 2025-10-02T07:08:43.429588Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.429597Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.429597Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-02T07:08:43.429603Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.429604Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.429605Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.429611Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.429614Z  INFO vyder_core::lexer: Constructing span at line 1, column 12 [INFO] [stdout] 2025-10-02T07:08:43.429617Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.429621Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.429623Z  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-02T07:08:43.429630Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.429630Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.429637Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.429640Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.429650Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.429651Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.429662Z  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-02T07:08:43.429665Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.429671Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2025-10-02T07:08:43.429677Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.429682Z  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-02T07:08:43.429178Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-02T07:08:43.429693Z  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-02T07:08:43.429704Z  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-02T07:08:43.429714Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.429721Z  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-02T07:08:43.429724Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.429734Z  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-02T07:08:43.429745Z  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-02T07:08:43.429755Z  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-02T07:08:43.429774Z  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-02T07:08:43.429792Z  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-02T07:08:43.429803Z  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-02T07:08:43.429925Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '#' [INFO] [stdout] 2025-10-02T07:08:43.429964Z  INFO vyder_core::interpreter: evaluating 'not' [INFO] [stdout] 2025-10-02T07:08:43.429971Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-02T07:08:43.429984Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '!' [INFO] [stdout] 2025-10-02T07:08:43.429991Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-02T07:08:43.430148Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'v' [INFO] [stdout] 2025-10-02T07:08:43.430196Z  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-02T07:08:43.430205Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-02T07:08:43.430220Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.430221Z  INFO vyder_core::lexer: Char at distance 0 from 3 is 'y' [INFO] [stdout] 2025-10-02T07:08:43.430231Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-02T07:08:43.430237Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-02T07:08:43.430239Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'd' [INFO] [stdout] 2025-10-02T07:08:43.430247Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-10-02T07:08:43.430255Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'e' [INFO] [stdout] 2025-10-02T07:08:43.430251Z  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-02T07:08:43.430261Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-02T07:08:43.430268Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.430269Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'r' [INFO] [stdout] 2025-10-02T07:08:43.430275Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2025-10-02T07:08:43.430277Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-02T07:08:43.430285Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-10-02T07:08:43.430292Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430299Z  INFO vyder_core::lexer: Constructing span at line 1, column 8 [INFO] [stdout] 2025-10-02T07:08:43.430306Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.430316Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-10-02T07:08:43.430324Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430330Z  INFO vyder_core::lexer: Constructing span at line 2, column 1 [INFO] [stdout] 2025-10-02T07:08:43.430337Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-02T07:08:43.430345Z  INFO vyder_core::lexer: Char at distance 0 from 8 is '+' [INFO] [stdout] 2025-10-02T07:08:43.430353Z  INFO vyder_core::lexer: Char at distance 1 from 8 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.430361Z  INFO vyder_core::lexer: Next token is '+' [INFO] [stdout] 2025-10-02T07:08:43.430377Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-10-02T07:08:43.430384Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430390Z  INFO vyder_core::lexer: Constructing span at line 2, column 2 [INFO] [stdout] 2025-10-02T07:08:43.430397Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-02T07:08:43.430406Z  INFO vyder_core::lexer: Char at distance 0 from 9 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.430436Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-02T07:08:43.430444Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430450Z  INFO vyder_core::lexer: Constructing span at line 2, column 3 [INFO] [stdout] 2025-10-02T07:08:43.430459Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-10-02T07:08:43.430468Z  INFO vyder_core::lexer: Char at distance 0 from 10 is '/' [INFO] [stdout] 2025-10-02T07:08:43.430476Z  INFO vyder_core::lexer: Char at distance 1 from 10 is '/' [INFO] [stdout] 2025-10-02T07:08:43.430484Z  INFO vyder_core::lexer: Char at distance 1 from 10 is '/' [INFO] [stdout] 2025-10-02T07:08:43.430491Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-02T07:08:43.430499Z  INFO vyder_core::lexer: Char at distance 1 from 11 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.430505Z  INFO vyder_core::lexer: Advancing to char index 12 [INFO] [stdout] 2025-10-02T07:08:43.430512Z  INFO vyder_core::lexer: Char at distance 1 from 12 is 't' [INFO] [stdout] 2025-10-02T07:08:43.430519Z  INFO vyder_core::lexer: Advancing to char index 13 [INFO] [stdout] 2025-10-02T07:08:43.430527Z  INFO vyder_core::lexer: Char at distance 1 from 13 is 'e' [INFO] [stdout] 2025-10-02T07:08:43.430534Z  INFO vyder_core::lexer: Advancing to char index 14 [INFO] [stdout] 2025-10-02T07:08:43.430541Z  INFO vyder_core::lexer: Char at distance 1 from 14 is 's' [INFO] [stdout] 2025-10-02T07:08:43.430548Z  INFO vyder_core::lexer: Advancing to char index 15 [INFO] [stdout] 2025-10-02T07:08:43.430555Z  INFO vyder_core::lexer: Char at distance 1 from 15 is 't' [INFO] [stdout] 2025-10-02T07:08:43.430562Z  INFO vyder_core::lexer: Advancing to char index 16 [INFO] [stdout] 2025-10-02T07:08:43.430558Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2025-10-02T07:08:43.430569Z  INFO vyder_core::lexer: Char at distance 1 from 16 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.430576Z  INFO vyder_core::lexer: Advancing to char index 17 [INFO] [stdout] 2025-10-02T07:08:43.430575Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430584Z  INFO vyder_core::lexer: Char at distance 1 from 17 is '2' [INFO] [stdout] 2025-10-02T07:08:43.430584Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-10-02T07:08:43.430590Z  INFO vyder_core::lexer: Advancing to char index 18 [INFO] [stdout] 2025-10-02T07:08:43.430592Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.430598Z  INFO vyder_core::lexer: Char at distance 1 from 18 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-10-02T07:08:43.430602Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2025-10-02T07:08:43.430605Z  INFO vyder_core::lexer: Advancing to char index 19 [INFO] [stdout] 2025-10-02T07:08:43.430611Z  INFO vyder_core::lexer: Advancing to char index 20 [INFO] [stdout] 2025-10-02T07:08:43.430611Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2025-10-02T07:08:43.430618Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430620Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-02T07:08:43.430627Z  INFO vyder_core::lexer: Char at distance 0 from 1 is 'o' [INFO] [stdout] 2025-10-02T07:08:43.430625Z  INFO vyder_core::lexer: Constructing span at line 3, column 1 [INFO] [stdout] 2025-10-02T07:08:43.430635Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-02T07:08:43.430636Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2025-10-02T07:08:43.430642Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'o' [INFO] [stdout] 2025-10-02T07:08:43.430646Z  INFO vyder_core::lexer: Char at distance 0 from 20 is '/' [INFO] [stdout] 2025-10-02T07:08:43.430651Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-02T07:08:43.430655Z  INFO vyder_core::lexer: Char at distance 1 from 20 is '/' [INFO] [stdout] 2025-10-02T07:08:43.430659Z  INFO vyder_core::lexer: Char at distance 0 from 3 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.430684Z  INFO vyder_core::lexer: Next token is 'foo' [INFO] [stdout] 2025-10-02T07:08:43.430705Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-02T07:08:43.430713Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430719Z  INFO vyder_core::lexer: Constructing span at line 1, column 4 [INFO] [stdout] 2025-10-02T07:08:43.430726Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.430735Z  INFO vyder_core::lexer: Char at distance 0 from 3 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.430741Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-02T07:08:43.430748Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430753Z  INFO vyder_core::lexer: Constructing span at line 1, column 5 [INFO] [stdout] 2025-10-02T07:08:43.430760Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.430768Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'r' [INFO] [stdout] 2025-10-02T07:08:43.430775Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'r' [INFO] [stdout] 2025-10-02T07:08:43.430664Z  INFO vyder_core::lexer: Char at distance 1 from 20 is '/' [INFO] [stdout] 2025-10-02T07:08:43.430782Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-10-02T07:08:43.430789Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'e' [INFO] [stdout] 2025-10-02T07:08:43.430789Z  INFO vyder_core::lexer: Advancing to char index 21 [INFO] [stdout] 2025-10-02T07:08:43.430796Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-02T07:08:43.430802Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 't' [INFO] [stdout] 2025-10-02T07:08:43.430804Z  INFO vyder_core::lexer: Char at distance 1 from 21 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.430809Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-02T07:08:43.430811Z  INFO vyder_core::lexer: Advancing to char index 22 [INFO] [stdout] 2025-10-02T07:08:43.430816Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'u' [INFO] [stdout] 2025-10-02T07:08:43.430823Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-10-02T07:08:43.430830Z  INFO vyder_core::lexer: Char at distance 0 from 8 is 'r' [INFO] [stdout] 2025-10-02T07:08:43.430836Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-10-02T07:08:43.430843Z  INFO vyder_core::lexer: Char at distance 0 from 9 is 'n' [INFO] [stdout] 2025-10-02T07:08:43.430850Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-02T07:08:43.430857Z  INFO vyder_core::lexer: Char at distance 0 from 10 is ')' [INFO] [stdout] 2025-10-02T07:08:43.430865Z  INFO vyder_core::lexer: Next token is 'return' [INFO] [stdout] 2025-10-02T07:08:43.430875Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-02T07:08:43.430881Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430888Z  INFO vyder_core::lexer: Constructing span at line 1, column 11 [INFO] [stdout] 2025-10-02T07:08:43.430894Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.430902Z  INFO vyder_core::lexer: Char at distance 0 from 10 is ')' [INFO] [stdout] 2025-10-02T07:08:43.430909Z  INFO vyder_core::lexer: Next token is ')' [INFO] [stdout] 2025-10-02T07:08:43.430918Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-02T07:08:43.430927Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.430933Z  INFO vyder_core::lexer: Constructing span at line 1, column 12 [INFO] [stdout] 2025-10-02T07:08:43.430939Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.430948Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.430955Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.431303Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-10-02T07:08:43.431320Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.431328Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-10-02T07:08:43.431336Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.431346Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-10-02T07:08:43.431354Z  INFO vyder_core::lexer: Char at distance 1 from 0 is '"' [INFO] [stdout] 2025-10-02T07:08:43.431362Z  INFO vyder_core::lexer: Next token is '+' [INFO] [stdout] 2025-10-02T07:08:43.431378Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-10-02T07:08:43.431386Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.431392Z  INFO vyder_core::lexer: Constructing span at line 1, column 2 [INFO] [stdout] 2025-10-02T07:08:43.431399Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.431407Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '"' [INFO] [stdout] 2025-10-02T07:08:43.431441Z  INFO vyder_core::lexer: get_string function [INFO] [stdout] 2025-10-02T07:08:43.431450Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-10-02T07:08:43.431457Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'H' [INFO] [stdout] 2025-10-02T07:08:43.431465Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-10-02T07:08:43.431473Z  INFO vyder_core::lexer: Char at distance 0 from 3 is 'e' [INFO] [stdout] 2025-10-02T07:08:43.431480Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-10-02T07:08:43.431488Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'l' [INFO] [stdout] 2025-10-02T07:08:43.431495Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-10-02T07:08:43.431503Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'l' [INFO] [stdout] 2025-10-02T07:08:43.431509Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-10-02T07:08:43.431517Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'o' [INFO] [stdout] 2025-10-02T07:08:43.431525Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-10-02T07:08:43.431533Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ',' [INFO] [stdout] 2025-10-02T07:08:43.431541Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-10-02T07:08:43.431548Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.431555Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-10-02T07:08:43.431564Z  INFO vyder_core::lexer: Char at distance 0 from 9 is 'W' [INFO] [stdout] 2025-10-02T07:08:43.431571Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-10-02T07:08:43.431579Z  INFO vyder_core::lexer: Char at distance 0 from 10 is 'o' [INFO] [stdout] 2025-10-02T07:08:43.431586Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-10-02T07:08:43.431594Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'r' [INFO] [stdout] 2025-10-02T07:08:43.431601Z  INFO vyder_core::lexer: Advancing to char index 12 [INFO] [stdout] 2025-10-02T07:08:43.431608Z  INFO vyder_core::lexer: Char at distance 0 from 12 is 'l' [INFO] [stdout] 2025-10-02T07:08:43.431616Z  INFO vyder_core::lexer: Advancing to char index 13 [INFO] [stdout] 2025-10-02T07:08:43.431624Z  INFO vyder_core::lexer: Char at distance 0 from 13 is 'd' [INFO] [stdout] 2025-10-02T07:08:43.431630Z  INFO vyder_core::lexer: Advancing to char index 14 [INFO] [stdout] 2025-10-02T07:08:43.431637Z  INFO vyder_core::lexer: Char at distance 0 from 14 is '!' [INFO] [stdout] 2025-10-02T07:08:43.431644Z  INFO vyder_core::lexer: Advancing to char index 15 [INFO] [stdout] 2025-10-02T07:08:43.431651Z  INFO vyder_core::lexer: Char at distance 0 from 15 is '"' [INFO] [stdout] 2025-10-02T07:08:43.431659Z  INFO vyder_core::lexer: Next token is '"Hello, World!"' [INFO] [stdout] 2025-10-02T07:08:43.431670Z  INFO vyder_core::lexer: Advancing to char index 16 [INFO] [stdout] 2025-10-02T07:08:43.431677Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.431683Z  INFO vyder_core::lexer: Constructing span at line 1, column 17 [INFO] [stdout] 2025-10-02T07:08:43.431691Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.431702Z  INFO vyder_core::lexer: Char at distance 0 from 16 is ''' [INFO] [stdout] 2025-10-02T07:08:43.431711Z  INFO vyder_core::lexer: get_string function [INFO] [stdout] 2025-10-02T07:08:43.431717Z  INFO vyder_core::lexer: Advancing to char index 17 [INFO] [stdout] 2025-10-02T07:08:43.431725Z  INFO vyder_core::lexer: Char at distance 0 from 17 is 'f' [INFO] [stdout] 2025-10-02T07:08:43.431732Z  INFO vyder_core::lexer: Advancing to char index 18 [INFO] [stdout] 2025-10-02T07:08:43.431740Z  INFO vyder_core::lexer: Char at distance 0 from 18 is 'o' [INFO] [stdout] 2025-10-02T07:08:43.431750Z  INFO vyder_core::lexer: Advancing to char index 19 [INFO] [stdout] 2025-10-02T07:08:43.431758Z  INFO vyder_core::lexer: Char at distance 0 from 19 is 'o' [INFO] [stdout] 2025-10-02T07:08:43.431766Z  INFO vyder_core::lexer: Advancing to char index 20 [INFO] [stdout] 2025-10-02T07:08:43.431775Z  INFO vyder_core::lexer: Char at distance 0 from 20 is '\' [INFO] [stdout] 2025-10-02T07:08:43.431784Z  INFO vyder_core::lexer: Char at distance 1 from 20 is 't' [INFO] [stdout] 2025-10-02T07:08:43.431803Z  INFO vyder_core::lexer: Advancing to char index 21 without increasing column [INFO] [stdout] 2025-10-02T07:08:43.431811Z  INFO vyder_core::lexer: Advancing to char index 22 [INFO] [stdout] 2025-10-02T07:08:43.431820Z  INFO vyder_core::lexer: Char at distance 0 from 22 is ''' [INFO] [stdout] 2025-10-02T07:08:43.431828Z  INFO vyder_core::lexer: Next token is '"foo "' [INFO] [stdout] 2025-10-02T07:08:43.431839Z  INFO vyder_core::lexer: Advancing to char index 23 [INFO] [stdout] 2025-10-02T07:08:43.431847Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.431853Z  INFO vyder_core::lexer: Constructing span at line 1, column 23 [INFO] [stdout] 2025-10-02T07:08:43.431860Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.431871Z  INFO vyder_core::lexer: Char at distance 0 from 23 is '(' [INFO] [stdout] 2025-10-02T07:08:43.431879Z  INFO vyder_core::lexer: Next token is '(' [INFO] [stdout] 2025-10-02T07:08:43.431888Z  INFO vyder_core::lexer: Advancing to char index 24 [INFO] [stdout] 2025-10-02T07:08:43.431895Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.431902Z  INFO vyder_core::lexer: Constructing span at line 1, column 24 [INFO] [stdout] 2025-10-02T07:08:43.431909Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-10-02T07:08:43.431919Z  INFO vyder_core::lexer: Char at distance 0 from 24 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.431926Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.432144Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.432168Z  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-02T07:08:43.432182Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.432194Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.432208Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.432220Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.432238Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.432251Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.432263Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.432274Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.432289Z  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-02T07:08:43.432314Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.432386Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.432403Z  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-02T07:08:43.432445Z  INFO vyder_core::parser: Advancing to token index 1: '=' [INFO] [stdout] 2025-10-02T07:08:43.432462Z  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-02T07:08:43.432474Z  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-02T07:08:43.432485Z  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-02T07:08:43.432495Z  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-02T07:08:43.432508Z  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-02T07:08:43.432523Z  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-02T07:08:43.432533Z  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-02T07:08:43.432543Z  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-02T07:08:43.432550Z  INFO vyder_core::parser: Advancing to token index 2: '(' [INFO] [stdout] 2025-10-02T07:08:43.432557Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.432562Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.432568Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.432574Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.432581Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.432587Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.432593Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.432601Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.432610Z  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-02T07:08:43.432624Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.432640Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.432651Z  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-02T07:08:43.432660Z  INFO vyder_core::parser: Advancing to token index 3: 'import' [INFO] [stdout] 2025-10-02T07:08:43.432673Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.432688Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.432701Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.432712Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.432726Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.432737Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.432751Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.432766Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.432783Z  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-02T07:08:43.432806Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.432879Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.432881Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.432892Z  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-02T07:08:43.432901Z  INFO vyder_core::parser: Advancing to token index 4: '(' [INFO] [stdout] 2025-10-02T07:08:43.432912Z  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-02T07:08:43.432911Z  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-02T07:08:43.432919Z  INFO vyder_core::parser: Advancing to token index 5: '"std"' [INFO] [stdout] 2025-10-02T07:08:43.432930Z  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-02T07:08:43.432929Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.432937Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.432944Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.432946Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.432950Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.432957Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.432960Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.432964Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.432973Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.432975Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.432979Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.432987Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.432992Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.432999Z  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-02T07:08:43.433005Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.433013Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.433022Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.433033Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.433051Z  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-02T07:08:43.433073Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.433086Z  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-02T07:08:43.433089Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.433099Z  INFO vyder_core::parser: Advancing to token index 6: ')' [INFO] [stdout] 2025-10-02T07:08:43.433110Z  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-02T07:08:43.433121Z  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-02T07:08:43.433133Z  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-02T07:08:43.433143Z  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-02T07:08:43.433157Z  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-02T07:08:43.433168Z  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-02T07:08:43.433169Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.433179Z  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-02T07:08:43.433186Z  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-02T07:08:43.433190Z  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-02T07:08:43.433198Z  INFO vyder_core::parser: Advancing to token index 1: '=' [INFO] [stdout] 2025-10-02T07:08:43.433197Z  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-02T07:08:43.433213Z  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-02T07:08:43.433219Z  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-02T07:08:43.433228Z  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-02T07:08:43.433234Z  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-02T07:08:43.433241Z  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-02T07:08:43.433242Z  INFO vyder_core::parser: Advancing to token index 7: '.' [INFO] [stdout] 2025-10-02T07:08:43.433253Z  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-02T07:08:43.433255Z  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-02T07:08:43.433265Z  INFO vyder_core::parser: Advancing to token index 8: 'argc' [INFO] [stdout] 2025-10-02T07:08:43.433270Z  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-02T07:08:43.433276Z  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-02T07:08:43.433283Z  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-02T07:08:43.433284Z  INFO vyder_core::parser: Advancing to token index 9: '+' [INFO] [stdout] 2025-10-02T07:08:43.433299Z  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-02T07:08:43.433303Z  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-02T07:08:43.433312Z  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-02T07:08:43.433310Z  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-02T07:08:43.433323Z  INFO vyder_core::parser: Advancing to token index 2: '12' [INFO] [stdout] 2025-10-02T07:08:43.433328Z  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-02T07:08:43.433331Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.433339Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.433341Z  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-02T07:08:43.433346Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.433353Z  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-02T07:08:43.433354Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.433362Z  INFO vyder_core::parser: Advancing to token index 10: '2' [INFO] [stdout] 2025-10-02T07:08:43.433363Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.433369Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.433371Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.433375Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.433379Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.433382Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.433388Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.433394Z  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-02T07:08:43.433403Z  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-02T07:08:43.433408Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.433441Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.433455Z  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-02T07:08:43.433463Z  INFO vyder_core::parser: Advancing to token index 11: ')' [INFO] [stdout] 2025-10-02T07:08:43.433486Z  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-02T07:08:43.433497Z  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-02T07:08:43.433508Z  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-02T07:08:43.433521Z  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-02T07:08:43.430819Z  INFO vyder_core::lexer: Char at distance 1 from 22 is 't' [INFO] [stdout] 2025-10-02T07:08:43.433535Z  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-02T07:08:43.433548Z  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-02T07:08:43.433548Z  INFO vyder_core::lexer: Advancing to char index 23 [INFO] [stdout] 2025-10-02T07:08:43.433566Z  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-02T07:08:43.433569Z  INFO vyder_core::lexer: Char at distance 1 from 23 is 'e' [INFO] [stdout] 2025-10-02T07:08:43.433578Z  INFO vyder_core::lexer: Advancing to char index 24 [INFO] [stdout] 2025-10-02T07:08:43.433579Z  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-02T07:08:43.433588Z  INFO vyder_core::lexer: Char at distance 1 from 24 is 's' [INFO] [stdout] 2025-10-02T07:08:43.433596Z  INFO vyder_core::lexer: Advancing to char index 25 [INFO] [stdout] 2025-10-02T07:08:43.433589Z  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-02T07:08:43.433605Z  INFO vyder_core::lexer: Char at distance 1 from 25 is 't' [INFO] [stdout] 2025-10-02T07:08:43.433611Z  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-02T07:08:43.433613Z  INFO vyder_core::lexer: Advancing to char index 26 [INFO] [stdout] 2025-10-02T07:08:43.433629Z  INFO vyder_core::parser: Advancing to token index 12: '+' [INFO] [stdout] 2025-10-02T07:08:43.433632Z  INFO vyder_core::lexer: Char at distance 1 from 26 is ' ' [INFO] [stdout] 2025-10-02T07:08:43.433642Z  INFO vyder_core::lexer: Advancing to char index 27 [INFO] [stdout] 2025-10-02T07:08:43.433644Z  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-02T07:08:43.433651Z  INFO vyder_core::lexer: Char at distance 1 from 27 is '3' [INFO] [stdout] 2025-10-02T07:08:43.433657Z  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-02T07:08:43.433659Z  INFO vyder_core::lexer: Advancing to char index 28 [INFO] [stdout] 2025-10-02T07:08:43.433669Z  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] test interpreter::tests::number_test ... ok [INFO] [stdout] 2025-10-02T07:08:43.433693Z  INFO vyder_core::parser: Advancing to token index 13: '2' [INFO] [stdout] 2025-10-02T07:08:43.433702Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.433709Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.433715Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.433727Z  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-02T07:08:43.433742Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.433750Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] test lexer::tests::numbers_test ... ok [INFO] [stdout] 2025-10-02T07:08:43.433762Z  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-02T07:08:43.433770Z  INFO vyder_core::parser: Advancing to token index 14: ';' [INFO] [stdout] 2025-10-02T07:08:43.433782Z  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] test lexer::tests::operators_test ... ok [INFO] [stdout] 2025-10-02T07:08:43.433794Z  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-02T07:08:43.433670Z  INFO vyder_core::lexer: Char at distance 1 from 28 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.433811Z  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-02T07:08:43.433821Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.433825Z  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-02T07:08:43.433833Z  INFO vyder_core::lexer: Constructing span at line 3, column 9 [INFO] [stdout] 2025-10-02T07:08:43.433842Z  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-02T07:08:43.433842Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2025-10-02T07:08:43.433855Z  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-02T07:08:43.433859Z  INFO vyder_core::lexer: Char at distance 0 from 28 is '3' [INFO] [stdout] 2025-10-02T07:08:43.433867Z  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-02T07:08:43.433867Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2025-10-02T07:08:43.433879Z  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-02T07:08:43.433879Z  INFO vyder_core::lexer: Char at distance 0 from 28 is '3' [INFO] [stdout] 2025-10-02T07:08:43.433889Z  INFO vyder_core::lexer: Advancing to char index 29 [INFO] [stdout] 2025-10-02T07:08:43.433940Z  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-02T07:08:43.433967Z  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-02T07:08:43.433984Z  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-02T07:08:43.433998Z  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-02T07:08:43.434020Z  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-02T07:08:43.434031Z  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-02T07:08:43.434056Z  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-02T07:08:43.434069Z  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-02T07:08:43.434089Z  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-02T07:08:43.434100Z  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-02T07:08:43.434117Z  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-02T07:08:43.434135Z  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-02T07:08:43.434153Z  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-02T07:08:43.434162Z  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-02T07:08:43.434192Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.434200Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-02T07:08:43.434208Z  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-02T07:08:43.434231Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.434238Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2025-10-02T07:08:43.428787Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.435474Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.434479Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.435742Z  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-02T07:08:43.433945Z  INFO vyder_core::lexer: Char at distance 0 from 29 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.435885Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.435906Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.435904Z  INFO vyder_core::lexer: Next token is '3' [INFO] [stdout] 2025-10-02T07:08:43.435922Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.435927Z  INFO vyder_core::lexer: Advancing to char index 29 [INFO] [stdout] 2025-10-02T07:08:43.435936Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-10-02T07:08:43.435937Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.435944Z  INFO vyder_core::lexer: Constructing span at line 3, column 10 [INFO] [stdout] 2025-10-02T07:08:43.435953Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2025-10-02T07:08:43.435951Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.435966Z  INFO vyder_core::lexer: Char at distance 0 from 29 is 'None' [INFO] [stdout] 2025-10-02T07:08:43.435974Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.435976Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.435989Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.436004Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.436022Z  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-02T07:08:43.436069Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.433889Z  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-02T07:08:43.434107Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] test interpreter::tests::not_test ... 2025-10-02T07:08:43.429690Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.436121Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.436151Z  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-02T07:08:43.436156Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.436163Z  INFO vyder_core::parser: Advancing to token index 3: 'or' [INFO] [stdout] ok2025-10-02T07:08:43.436196Z  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-02T07:08:43.436181Z  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-02T07:08:43.436152Z  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-02T07:08:43.436209Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.436215Z  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-02T07:08:43.436228Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.436232Z  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-02T07:08:43.436244Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.436245Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.436253Z  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-02T07:08:43.436264Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.436274Z  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-02T07:08:43.436279Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.436292Z  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-02T07:08:43.436293Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.436309Z  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-02T07:08:43.436310Z  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-02T07:08:43.436319Z  INFO vyder_core::parser: Advancing to token index 4: '3' [INFO] [stdout] 2025-10-02T07:08:43.436324Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.436327Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.436328Z  INFO vyder_core::parser: Advancing to token index 1: '-' [INFO] [stdout] 2025-10-02T07:08:43.436334Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.436340Z  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-02T07:08:43.436342Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.436340Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.436350Z  INFO vyder_core::parser: Advancing to token index 1: '(' [INFO] [stdout] 2025-10-02T07:08:43.436351Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.436356Z  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-02T07:08:43.436360Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.436363Z  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-02T07:08:43.436366Z  INFO vyder_core::parser: Advancing to token index 2: 'foo' [INFO] [stdout] 2025-10-02T07:08:43.436369Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.436372Z  INFO vyder_core::parser: Advancing to token index 2: 'bar' [INFO] [stdout] 2025-10-02T07:08:43.436377Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.436375Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.436383Z  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-02T07:08:43.436391Z  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-02T07:08:43.436394Z  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-02T07:08:43.436457Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.436474Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.436392Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.436493Z  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-02T07:08:43.436499Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.436505Z  INFO vyder_core::parser: Advancing to token index 5: ';' [INFO] [stdout] 2025-10-02T07:08:43.436508Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.436515Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.436519Z  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-02T07:08:43.436522Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.436529Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.436531Z  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-02T07:08:43.436536Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.436542Z  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-02T07:08:43.436543Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.436554Z  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-02T07:08:43.436559Z  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-02T07:08:43.436571Z  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-02T07:08:43.436577Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.436584Z  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-02T07:08:43.436596Z  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-02T07:08:43.436611Z  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-02T07:08:43.436629Z  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-02T07:08:43.436645Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.436654Z  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-02T07:08:43.436659Z  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-02T07:08:43.436666Z  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-02T07:08:43.436670Z  INFO vyder_core::parser: Advancing to token index 3: '(' [INFO] [stdout] 2025-10-02T07:08:43.436675Z  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-02T07:08:43.436683Z  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-02T07:08:43.436687Z  INFO vyder_core::parser: Advancing to token index 6: 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.436691Z  INFO vyder_core::parser: Advancing to token index 4: ')' [INFO] [stdout] 2025-10-02T07:08:43.436696Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-02T07:08:43.436703Z  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-02T07:08:43.436710Z  INFO vyder_core::parser: Advancing to token index 5: ')' [INFO] [stdout] 2025-10-02T07:08:43.436705Z  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-02T07:08:43.436721Z  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-02T07:08:43.436725Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.436733Z  INFO vyder_core::parser: Token at distance 0 from 6 is None [INFO] [stdout] 2025-10-02T07:08:43.436743Z  INFO vyder_core::parser: Advancing to token index 1: '[' [INFO] [stdout] 2025-10-02T07:08:43.436759Z  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-02T07:08:43.436767Z  INFO vyder_core::parser: Advancing to token index 2: '1' [INFO] [stdout] 2025-10-02T07:08:43.436775Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-10-02T07:08:43.436783Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-10-02T07:08:43.436792Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-10-02T07:08:43.436800Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-10-02T07:08:43.436798Z  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-02T07:08:43.436808Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-10-02T07:08:43.436815Z  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-02T07:08:43.436816Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-10-02T07:08:43.436824Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-10-02T07:08:43.436824Z  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-02T07:08:43.436833Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-10-02T07:08:43.436838Z  INFO vyder_core::parser: Advancing to token index 15: 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.436846Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-02T07:08:43.436847Z  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-02T07:08:43.436864Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.436854Z  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-02T07:08:43.436877Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.436884Z  INFO vyder_core::parser: Token at distance 0 from 15 is None [INFO] [stdout] 2025-10-02T07:08:43.436922Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.436938Z  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-02T07:08:43.436947Z  INFO vyder_core::parser: Advancing to token index 3: ']' [INFO] [stdout] 2025-10-02T07:08:43.436959Z  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-02T07:08:43.436971Z  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-02T07:08:43.436984Z  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-02T07:08:43.436995Z  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-02T07:08:43.437019Z  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-02T07:08:43.437032Z  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-02T07:08:43.437043Z  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-02T07:08:43.437056Z  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-02T07:08:43.437064Z  INFO vyder_core::parser: Parsed expression ''1' at test 1:5 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2025-10-02T07:08:43.437079Z  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-02T07:08:43.437089Z  INFO vyder_core::parser: Advancing to token index 4: ';' [INFO] [stdout] 2025-10-02T07:08:43.437100Z  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-02T07:08:43.437116Z  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-02T07:08:43.437136Z  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-02T07:08:43.437150Z  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-02T07:08:43.437167Z  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-02T07:08:43.437180Z  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-02T07:08:43.437195Z  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-02T07:08:43.437208Z  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-02T07:08:43.437217Z  INFO vyder_core::parser: Parsed expression ''Index' at test 1:1 - 1:6 (6 chars) [INFO] [stdout] | foo[1]; [INFO] [stdout] ^^^^^^ here' [INFO] [stdout] [INFO] [stdout] test parser::tests::ranges_test ... ok [INFO] [stdout] test lexer::tests::identifiers_test ... ok [INFO] [stdout] test lexer::tests::strings_test ... ok [INFO] [stdout] test parser::tests::field_access_test ... ok [INFO] [stdout] test interpreter::tests::negate_test ... ok [INFO] [stdout] test statement::tests::expect_test ... ok [INFO] [stdout] test token::tests::expect_test ... ok [INFO] [stdout] test lexer::tests::comments_test ... ok [INFO] [stdout] 2025-10-02T07:08:43.438494Z  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-02T07:08:43.438574Z  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-02T07:08:43.438622Z  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-02T07:08:43.438674Z  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-02T07:08:43.438716Z  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-02T07:08:43.438752Z  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-02T07:08:43.438789Z  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-02T07:08:43.438821Z  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-02T07:08:43.438896Z  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-02T07:08:43.438956Z  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-02T07:08:43.439015Z  INFO vyder_core::parser: Advancing to token index 6: ';' [INFO] [stdout] test parser::tests::assignment_test ... ok [INFO] [stdout] 2025-10-02T07:08:43.439251Z  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-02T07:08:43.439278Z  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-02T07:08:43.439294Z  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-02T07:08:43.439307Z  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] test parser::tests::import_test ... ok [INFO] [stdout] 2025-10-02T07:08:43.439333Z  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-02T07:08:43.439341Z  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-02T07:08:43.439354Z  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-02T07:08:43.439358Z  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-02T07:08:43.439368Z  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-02T07:08:43.439395Z  INFO vyder_core::parser: Advancing to token index 5: 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.439411Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-02T07:08:43.439436Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-10-02T07:08:43.439449Z  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-02T07:08:43.439466Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.439474Z  INFO vyder_core::parser: Token at distance 0 from 5 is None [INFO] [stdout] 2025-10-02T07:08:43.439516Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-10-02T07:08:43.439545Z  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-02T07:08:43.439554Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2025-10-02T07:08:43.439589Z  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-02T07:08:43.439608Z  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-02T07:08:43.439626Z  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-02T07:08:43.439637Z  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-02T07:08:43.439659Z  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-02T07:08:43.439686Z  INFO vyder_core::parser: Token at distance 0 from 3 is ';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stderr] Running unittests src/bin/vyder_debug_cli/main.rs (/opt/rustwide/target/debug/deps/vyder_debug_cli-bb2043fe6848a052) [INFO] [stdout] [INFO] [stderr] Doc-tests vyder_core [INFO] [stdout] ^ here [INFO] [stdout] 2025-10-02T07:08:43.439699Z  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-02T07:08:43.439909Z  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-02T07:08:43.439929Z  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-02T07:08:43.439949Z  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-02T07:08:43.439959Z  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-02T07:08:43.439969Z  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-02T07:08:43.439979Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.439986Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-02T07:08:43.439995Z  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-02T07:08:43.440012Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.440019Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] test parser::tests::index_test ... ok [INFO] [stdout] 2025-10-02T07:08:43.439375Z  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-02T07:08:43.440065Z  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-02T07:08:43.440075Z  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-02T07:08:43.440095Z  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-02T07:08:43.440106Z  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-02T07:08:43.440115Z  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-02T07:08:43.440126Z  INFO vyder_core::parser: Advancing to token index 7: 'EOF' [INFO] [stdout] 2025-10-02T07:08:43.440133Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-10-02T07:08:43.440142Z  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-02T07:08:43.440160Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-10-02T07:08:43.440167Z  INFO vyder_core::parser: Token at distance 0 from 7 is None [INFO] [stdout] test parser::tests::calls_test ... ok [INFO] [stdout] test parser::tests::unary_test ... ok [INFO] [stdout] test interpreter::tests::group_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/statement/mod.rs - statement::Statement::expect (line 23) ... ok [INFO] [stdout] test src/token/mod.rs - token::Token::expect (line 22) ... ok [INFO] [stdout] test src/expression/mod.rs - expression::Expression::expect (line 23) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "2b615048e72a7033835e46395788c449bcc07c73fba499e2de51b05ebd74da95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2b615048e72a7033835e46395788c449bcc07c73fba499e2de51b05ebd74da95", kill_on_drop: false }` [INFO] [stdout] 2b615048e72a7033835e46395788c449bcc07c73fba499e2de51b05ebd74da95