[INFO] fetching crate vyder_core 0.3.4... [INFO] testing vyder_core-0.3.4 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-8 [INFO] extracting crate vyder_core 0.3.4 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate vyder_core 0.3.4 [INFO] finished tweaking crates.io crate vyder_core 0.3.4 [INFO] tweaked toml for crates.io crate vyder_core 0.3.4 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate vyder_core 0.3.4 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded enum_downcast v0.2.0 [INFO] [stderr] Downloaded enum_downcast_derive v0.2.0 [INFO] [stderr] Downloaded vyder_macros v0.3.4 [INFO] [stderr] Downloaded regex v1.10.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] bd5585d21c1da56f16cc1c28ddf781a24b38a1ca2716a01cb56479f814d55697 [INFO] running `Command { std: "docker" "start" "-a" "bd5585d21c1da56f16cc1c28ddf781a24b38a1ca2716a01cb56479f814d55697", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bd5585d21c1da56f16cc1c28ddf781a24b38a1ca2716a01cb56479f814d55697", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bd5585d21c1da56f16cc1c28ddf781a24b38a1ca2716a01cb56479f814d55697", kill_on_drop: false }` [INFO] [stdout] bd5585d21c1da56f16cc1c28ddf781a24b38a1ca2716a01cb56479f814d55697 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8c8d2e10e3948440cfe71c879ae13004d3b8feca523723c52a117549af532346 [INFO] running `Command { std: "docker" "start" "-a" "8c8d2e10e3948440cfe71c879ae13004d3b8feca523723c52a117549af532346", kill_on_drop: false }` [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling colored v2.1.0 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Compiling clap_builder v4.5.9 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling regex v1.10.5 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling tracing-test-macro v0.2.5 [INFO] [stderr] Compiling clap_derive v4.5.8 [INFO] [stderr] Compiling enum_downcast_derive v0.2.0 [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 13.52s [INFO] running `Command { std: "docker" "inspect" "8c8d2e10e3948440cfe71c879ae13004d3b8feca523723c52a117549af532346", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8c8d2e10e3948440cfe71c879ae13004d3b8feca523723c52a117549af532346", kill_on_drop: false }` [INFO] [stdout] 8c8d2e10e3948440cfe71c879ae13004d3b8feca523723c52a117549af532346 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9813cc19e137a7c037979be87d03893955b28185dcfd0f8862858627d69f2527 [INFO] running `Command { std: "docker" "start" "-a" "9813cc19e137a7c037979be87d03893955b28185dcfd0f8862858627d69f2527", 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.25s [INFO] running `Command { std: "docker" "inspect" "9813cc19e137a7c037979be87d03893955b28185dcfd0f8862858627d69f2527", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9813cc19e137a7c037979be87d03893955b28185dcfd0f8862858627d69f2527", kill_on_drop: false }` [INFO] [stdout] 9813cc19e137a7c037979be87d03893955b28185dcfd0f8862858627d69f2527 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] a21dcce1da475d62b64556ff2486b4bb9226e939d0770f9c2180bb0e88463247 [INFO] running `Command { std: "docker" "start" "-a" "a21dcce1da475d62b64556ff2486b4bb9226e939d0770f9c2180bb0e88463247", 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.04s [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-11-13T23:44:42.938564Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2025-11-13T23:44:42.938625Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '#' [INFO] [stdout] test interpreter::tests::group_test ... ok [INFO] [stdout] 2025-11-13T23:44:42.939355Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2025-11-13T23:44:42.939376Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.939385Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-11-13T23:44:42.939393Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.939404Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2025-11-13T23:44:42.939477Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-11-13T23:44:42.939513Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.939523Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-11-13T23:44:42.939530Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.939541Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] test interpreter::tests::negate_test ... 2025-11-13T23:44:42.939549Z  INFO vyder_core::lexer: Char at distance 1 from 0 is '=' [INFO] [stdout] ok [INFO] [stdout] 2025-11-13T23:44:42.939557Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-11-13T23:44:42.939569Z  INFO vyder_core::lexer: Next token is '+=' [INFO] [stdout] test statement::tests::expect_test ... ok [INFO] [stdout] 2025-11-13T23:44:42.939728Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-11-13T23:44:42.939784Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.939795Z  INFO vyder_core::lexer: Constructing span at line 1, column 3 [INFO] [stdout] 2025-11-13T23:44:42.939804Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.939821Z  INFO vyder_core::lexer: Char at distance 0 from 2 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-11-13T23:44:42.939846Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.939855Z  INFO vyder_core::lexer: Constructing span at line 2, column 1 [INFO] [stdout] 2025-11-13T23:44:42.939863Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-11-13T23:44:42.939872Z  INFO vyder_core::lexer: Char at distance 0 from 3 is '-' [INFO] [stdout] 2025-11-13T23:44:42.939881Z  INFO vyder_core::lexer: Char at distance 1 from 3 is '-' [INFO] [stdout] 2025-11-13T23:44:42.939889Z  INFO vyder_core::lexer: Char at distance 1 from 3 is '-' [INFO] [stdout] 2025-11-13T23:44:42.939899Z  INFO vyder_core::lexer: Next token is '-' [INFO] [stdout] 2025-11-13T23:44:42.939928Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-11-13T23:44:42.939937Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.939945Z  INFO vyder_core::lexer: Constructing span at line 2, column 2 [INFO] [stdout] 2025-11-13T23:44:42.939953Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-11-13T23:44:42.939962Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '-' [INFO] [stdout] 2025-11-13T23:44:42.939971Z  INFO vyder_core::lexer: Char at distance 1 from 4 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.939968Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-11-13T23:44:42.939980Z  INFO vyder_core::lexer: Char at distance 1 from 4 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.939987Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '!' [INFO] [stdout] test token::tests::expect_test ... ok [INFO] [stdout] test interpreter::tests::number_test ... ok [INFO] [stdout] 2025-11-13T23:44:42.940020Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2025-11-13T23:44:42.939989Z  INFO vyder_core::lexer: Next token is '-' [INFO] [stdout] 2025-11-13T23:44:42.940052Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-11-13T23:44:42.940063Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '1' [INFO] [stdout] 2025-11-13T23:44:42.940076Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-11-13T23:44:42.940086Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '2' [INFO] [stdout] 2025-11-13T23:44:42.940093Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-11-13T23:44:42.940101Z  INFO vyder_core::lexer: Char at distance 0 from 2 is '.' [INFO] [stdout] 2025-11-13T23:44:42.940108Z  INFO vyder_core::lexer: Char at distance 1 from 2 is '5' [INFO] [stdout] 2025-11-13T23:44:42.940115Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-11-13T23:44:42.940123Z  INFO vyder_core::lexer: Char at distance 0 from 3 is '5' [INFO] [stdout] 2025-11-13T23:44:42.940130Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-11-13T23:44:42.940138Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '.' [INFO] [stdout] 2025-11-13T23:44:42.940164Z  INFO vyder_core::lexer: Next token is '12.5' [INFO] [stdout] 2025-11-13T23:44:42.940165Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.940170Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.940185Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-11-13T23:44:42.940210Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.940211Z  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-11-13T23:44:42.940219Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-11-13T23:44:42.940219Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.940226Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.940228Z  INFO vyder_core::lexer: Constructing span at line 1, column 5 [INFO] [stdout] 2025-11-13T23:44:42.940236Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.940236Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.940247Z  INFO vyder_core::lexer: Char at distance 0 from 4 is '.' [INFO] [stdout] 2025-11-13T23:44:42.940256Z  INFO vyder_core::lexer: Char at distance 1 from 4 is 'f' [INFO] [stdout] 2025-11-13T23:44:42.940058Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-11-13T23:44:42.940265Z  INFO vyder_core::lexer: Next token is '.' [INFO] [stdout] 2025-11-13T23:44:42.940264Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.940276Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-11-13T23:44:42.940283Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.940281Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.940291Z  INFO vyder_core::lexer: Constructing span at line 1, column 6 [INFO] [stdout] 2025-11-13T23:44:42.940320Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.940295Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.940341Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'f' [INFO] [stdout] 2025-11-13T23:44:42.940351Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'f' [INFO] [stdout] 2025-11-13T23:44:42.940359Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-11-13T23:44:42.940367Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'o' [INFO] [stdout] 2025-11-13T23:44:42.940293Z  INFO vyder_core::lexer: Constructing span at line 2, column 3 [INFO] [stdout] 2025-11-13T23:44:42.940374Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-11-13T23:44:42.940383Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'o' [INFO] [stdout] 2025-11-13T23:44:42.940406Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-11-13T23:44:42.940420Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.940429Z  INFO vyder_core::lexer: Next token is 'foo' [INFO] [stdout] 2025-11-13T23:44:42.940192Z  INFO vyder_core::interpreter: evaluating 'not' [INFO] [stdout] 2025-11-13T23:44:42.940454Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-11-13T23:44:42.940462Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.940469Z  INFO vyder_core::lexer: Constructing span at line 1, column 9 [INFO] [stdout] 2025-11-13T23:44:42.940400Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.940476Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.940486Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.940492Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-11-13T23:44:42.940499Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.940018Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-11-13T23:44:42.940432Z  INFO vyder_core::lexer: Char at distance 0 from 0 is '+' [INFO] [stdout] 2025-11-13T23:44:42.940535Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'v' [INFO] [stdout] 2025-11-13T23:44:42.940541Z  INFO vyder_core::lexer: Char at distance 1 from 0 is '"' [INFO] [stdout] 2025-11-13T23:44:42.940551Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-11-13T23:44:42.940554Z  INFO vyder_core::lexer: Next token is '+' [INFO] [stdout] 2025-11-13T23:44:42.940560Z  INFO vyder_core::lexer: Char at distance 0 from 3 is 'y' [INFO] [stdout] 2025-11-13T23:44:42.940566Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-11-13T23:44:42.940614Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'd' [INFO] [stdout] 2025-11-13T23:44:42.940739Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-11-13T23:44:42.940777Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'e' [INFO] [stdout] 2025-11-13T23:44:42.940822Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] test interpreter::tests::not_test ... 2025-11-13T23:44:42.940880Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'r' [INFO] [stdout] ok [INFO] [stdout] 2025-11-13T23:44:42.940574Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.940506Z  INFO vyder_core::lexer: Constructing span at line 1, column 10 [INFO] [stdout] 2025-11-13T23:44:42.941008Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.941030Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.941047Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.940573Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-11-13T23:44:42.941065Z  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-11-13T23:44:42.941074Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.941089Z  INFO vyder_core::lexer: Constructing span at line 1, column 2 [INFO] [stdout] 2025-11-13T23:44:42.941116Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.941399Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.941449Z  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-11-13T23:44:42.940683Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.941467Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.941286Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.941490Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.940918Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-11-13T23:44:42.941513Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.941519Z  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-11-13T23:44:42.941525Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-11-13T23:44:42.941527Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.941098Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.941539Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.941544Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.941548Z  INFO vyder_core::lexer: Constructing span at line 1, column 8 [INFO] [stdout] 2025-11-13T23:44:42.941550Z  INFO vyder_core::lexer: Char at distance 0 from 1 is '"' [INFO] [stdout] 2025-11-13T23:44:42.941556Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.941560Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.941561Z  INFO vyder_core::lexer: get_string function [INFO] [stdout] 2025-11-13T23:44:42.941560Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.941570Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-11-13T23:44:42.941574Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.941580Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'H' [INFO] [stdout] 2025-11-13T23:44:42.941586Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.941588Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-11-13T23:44:42.941566Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-11-13T23:44:42.941591Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.941595Z  INFO vyder_core::lexer: Char at distance 0 from 3 is 'e' [INFO] [stdout] 2025-11-13T23:44:42.941601Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.941602Z  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-11-13T23:44:42.941605Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-11-13T23:44:42.941608Z  INFO vyder_core::lexer: Constructing span at line 2, column 1 [INFO] [stdout] 2025-11-13T23:44:42.941609Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.941613Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'l' [INFO] [stdout] 2025-11-13T23:44:42.941615Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-11-13T23:44:42.941621Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-11-13T23:44:42.941622Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.941625Z  INFO vyder_core::lexer: Char at distance 0 from 8 is '+' [INFO] [stdout] 2025-11-13T23:44:42.941629Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'l' [INFO] [stdout] 2025-11-13T23:44:42.941632Z  INFO vyder_core::lexer: Char at distance 1 from 8 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.941636Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-11-13T23:44:42.941633Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.940382Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-11-13T23:44:42.941665Z  INFO vyder_core::lexer: Char at distance 0 from 5 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.941666Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 'o' [INFO] [stdout] 2025-11-13T23:44:42.941675Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-11-13T23:44:42.941677Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-11-13T23:44:42.941683Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.941685Z  INFO vyder_core::lexer: Char at distance 0 from 7 is ',' [INFO] [stdout] 2025-11-13T23:44:42.941690Z  INFO vyder_core::lexer: Constructing span at line 2, column 4 [INFO] [stdout] 2025-11-13T23:44:42.941693Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-11-13T23:44:42.941698Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-11-13T23:44:42.941701Z  INFO vyder_core::lexer: Char at distance 0 from 8 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.941709Z  INFO vyder_core::lexer: Char at distance 0 from 6 is '/' [INFO] [stdout] 2025-11-13T23:44:42.941709Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-11-13T23:44:42.941718Z  INFO vyder_core::lexer: Char at distance 1 from 6 is 'None' [INFO] [stdout] 2025-11-13T23:44:42.941719Z  INFO vyder_core::lexer: Char at distance 0 from 9 is 'W' [INFO] [stdout] 2025-11-13T23:44:42.941726Z  INFO vyder_core::lexer: Char at distance 1 from 6 is 'None' [INFO] [stdout] 2025-11-13T23:44:42.941727Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-11-13T23:44:42.941730Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.941735Z  INFO vyder_core::lexer: Next token is '/' [INFO] [stdout] 2025-11-13T23:44:42.941736Z  INFO vyder_core::lexer: Char at distance 0 from 10 is 'o' [INFO] [stdout] 2025-11-13T23:44:42.941746Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-11-13T23:44:42.941748Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-11-13T23:44:42.941750Z  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-11-13T23:44:42.941752Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'r' [INFO] [stdout] 2025-11-13T23:44:42.940190Z  INFO vyder_core::lexer: Constructing span at line 1, column 1 [INFO] [stdout] 2025-11-13T23:44:42.941756Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.941760Z  INFO vyder_core::lexer: Advancing to char index 12 [INFO] [stdout] 2025-11-13T23:44:42.941766Z  INFO vyder_core::lexer: Constructing span at line 2, column 5 [INFO] [stdout] 2025-11-13T23:44:42.941769Z  INFO vyder_core::lexer: Char at distance 0 from 12 is 'l' [INFO] [stdout] 2025-11-13T23:44:42.941776Z  INFO vyder_core::lexer: Advancing to char index 13 [INFO] [stdout] 2025-11-13T23:44:42.941774Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.941774Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.941783Z  INFO vyder_core::lexer: Char at distance 0 from 13 is 'd' [INFO] [stdout] 2025-11-13T23:44:42.941790Z  INFO vyder_core::lexer: Advancing to char index 14 [INFO] [stdout] 2025-11-13T23:44:42.941793Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2025-11-13T23:44:42.941795Z  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-11-13T23:44:42.941801Z  INFO vyder_core::lexer: Char at distance 0 from 14 is '!' [INFO] [stdout] 2025-11-13T23:44:42.941807Z  INFO vyder_core::lexer: Advancing to char index 15 [INFO] [stdout] 2025-11-13T23:44:42.941809Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.941815Z  INFO vyder_core::lexer: Char at distance 0 from 15 is '"' [INFO] [stdout] 2025-11-13T23:44:42.941823Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.941824Z  INFO vyder_core::lexer: Next token is '"Hello, World!"' [INFO] [stdout] 2025-11-13T23:44:42.941834Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.941836Z  INFO vyder_core::lexer: Advancing to char index 16 [INFO] [stdout] 2025-11-13T23:44:42.941844Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.941845Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.941851Z  INFO vyder_core::lexer: Constructing span at line 1, column 17 [INFO] [stdout] 2025-11-13T23:44:42.941858Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.941858Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.941870Z  INFO vyder_core::lexer: Char at distance 0 from 16 is ''' [INFO] [stdout] 2025-11-13T23:44:42.941869Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.941877Z  INFO vyder_core::lexer: get_string function [INFO] [stdout] 2025-11-13T23:44:42.941883Z  INFO vyder_core::lexer: Advancing to char index 17 [INFO] [stdout] 2025-11-13T23:44:42.941883Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.941891Z  INFO vyder_core::lexer: Char at distance 0 from 17 is 'f' [INFO] [stdout] 2025-11-13T23:44:42.941894Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.941898Z  INFO vyder_core::lexer: Advancing to char index 18 [INFO] [stdout] 2025-11-13T23:44:42.941907Z  INFO vyder_core::lexer: Char at distance 0 from 18 is 'o' [INFO] [stdout] 2025-11-13T23:44:42.941910Z  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-11-13T23:44:42.941914Z  INFO vyder_core::lexer: Advancing to char index 19 [INFO] [stdout] 2025-11-13T23:44:42.941922Z  INFO vyder_core::lexer: Char at distance 0 from 19 is 'o' [INFO] [stdout] 2025-11-13T23:44:42.941929Z  INFO vyder_core::lexer: Advancing to char index 20 [INFO] [stdout] 2025-11-13T23:44:42.941934Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.941937Z  INFO vyder_core::lexer: Char at distance 0 from 20 is '\' [INFO] [stdout] 2025-11-13T23:44:42.941945Z  INFO vyder_core::lexer: Char at distance 1 from 20 is 't' [INFO] [stdout] 2025-11-13T23:44:42.941949Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.941966Z  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-11-13T23:44:42.941966Z  INFO vyder_core::lexer: Advancing to char index 21 without increasing column [INFO] [stdout] 2025-11-13T23:44:42.941977Z  INFO vyder_core::lexer: Advancing to char index 22 [INFO] [stdout] 2025-11-13T23:44:42.941978Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.941987Z  INFO vyder_core::lexer: Char at distance 0 from 22 is ''' [INFO] [stdout] 2025-11-13T23:44:42.941990Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.941995Z  INFO vyder_core::lexer: Next token is '"foo "' [INFO] [stdout] 2025-11-13T23:44:42.942003Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.942005Z  INFO vyder_core::lexer: Advancing to char index 23 [INFO] [stdout] 2025-11-13T23:44:42.942010Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.942013Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.942015Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.942019Z  INFO vyder_core::lexer: Constructing span at line 1, column 23 [INFO] [stdout] 2025-11-13T23:44:42.942026Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.942023Z  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-11-13T23:44:42.942027Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.942054Z  INFO vyder_core::lexer: Char at distance 0 from 23 is '(' [INFO] [stdout] 2025-11-13T23:44:42.942054Z  INFO vyder_core::parser: Advancing to token index 1: '=' [INFO] [stdout] 2025-11-13T23:44:42.942059Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.942063Z  INFO vyder_core::lexer: Next token is '(' [INFO] [stdout] 2025-11-13T23:44:42.942069Z  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-11-13T23:44:42.942073Z  INFO vyder_core::lexer: Advancing to char index 24 [INFO] [stdout] 2025-11-13T23:44:42.942071Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.942081Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.942080Z  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-11-13T23:44:42.942085Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.942087Z  INFO vyder_core::lexer: Constructing span at line 1, column 24 [INFO] [stdout] 2025-11-13T23:44:42.942092Z  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-11-13T23:44:42.942094Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.942095Z  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-11-13T23:44:42.942103Z  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-11-13T23:44:42.942104Z  INFO vyder_core::lexer: Char at distance 0 from 24 is 'None' [INFO] [stdout] 2025-11-13T23:44:42.942111Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.942116Z  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-11-13T23:44:42.942121Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.942128Z  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-11-13T23:44:42.942138Z  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-11-13T23:44:42.942149Z  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-11-13T23:44:42.942158Z  INFO vyder_core::parser: Advancing to token index 2: '12' [INFO] [stdout] 2025-11-13T23:44:42.942164Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.942171Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.942177Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.941774Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-11-13T23:44:42.942187Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.942201Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.942210Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.942216Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.942216Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'None' [INFO] [stdout] test lexer::tests::strings_test ... 2025-11-13T23:44:42.942223Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.941639Z  INFO vyder_core::lexer: Next token is '+' [INFO] [stdout] 2025-11-13T23:44:42.942244Z  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-11-13T23:44:42.942254Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-11-13T23:44:42.942258Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.942262Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] ok [INFO] [stdout] 2025-11-13T23:44:42.942268Z  INFO vyder_core::lexer: Constructing span at line 2, column 2 [INFO] [stdout] 2025-11-13T23:44:42.942266Z  INFO vyder_core::parser: Advancing to token index 1: '[' [INFO] [stdout] 2025-11-13T23:44:42.942269Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.942275Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-11-13T23:44:42.942287Z  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-11-13T23:44:42.941637Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.942219Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.942384Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.942390Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.942289Z  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-11-13T23:44:42.942401Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.942418Z  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-11-13T23:44:42.942424Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.942433Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.942433Z  INFO vyder_core::parser: Advancing to token index 2: '1' [INFO] [stdout] 2025-11-13T23:44:42.942444Z  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-11-13T23:44:42.942291Z  INFO vyder_core::lexer: Char at distance 0 from 9 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.942495Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-11-13T23:44:42.942510Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.942517Z  INFO vyder_core::lexer: Constructing span at line 2, column 3 [INFO] [stdout] 2025-11-13T23:44:42.942526Z  INFO vyder_core::lexer: getting line 1 [INFO] [stdout] 2025-11-13T23:44:42.942352Z  INFO vyder_core::parser: Advancing to token index 3: 'or' [INFO] [stdout] 2025-11-13T23:44:42.942231Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.942446Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.942407Z  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-11-13T23:44:42.942584Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.942597Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.942599Z  INFO vyder_core::parser: Advancing to token index 1: '..' [INFO] [stdout] 2025-11-13T23:44:42.942605Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.942615Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.942621Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.942628Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.942636Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.942659Z  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-11-13T23:44:42.942450Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.942686Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] test lexer::tests::operators_test ... ok [INFO] [stdout] 2025-11-13T23:44:42.942738Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.942762Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.942785Z  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-11-13T23:44:42.942795Z  INFO vyder_core::parser: Advancing to token index 3: ']' [INFO] [stdout] 2025-11-13T23:44:42.942798Z  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-11-13T23:44:42.942778Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.942808Z  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-11-13T23:44:42.942447Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.942538Z  INFO vyder_core::lexer: Char at distance 0 from 10 is '/' [INFO] [stdout] 2025-11-13T23:44:42.943061Z  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-11-13T23:44:42.943084Z  INFO vyder_core::parser: Advancing to token index 1: '(' [INFO] [stdout] 2025-11-13T23:44:42.943092Z  INFO vyder_core::lexer: Char at distance 1 from 10 is '/' [INFO] [stdout] 2025-11-13T23:44:42.943132Z  INFO vyder_core::lexer: Char at distance 1 from 10 is '/' [INFO] [stdout] 2025-11-13T23:44:42.943142Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-11-13T23:44:42.943151Z  INFO vyder_core::lexer: Char at distance 1 from 11 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.942918Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.943159Z  INFO vyder_core::lexer: Advancing to char index 12 [INFO] [stdout] 2025-11-13T23:44:42.943178Z  INFO vyder_core::lexer: Char at distance 1 from 12 is 't' [INFO] [stdout] 2025-11-13T23:44:42.943217Z  INFO vyder_core::lexer: Advancing to char index 13 [INFO] [stdout] 2025-11-13T23:44:42.943229Z  INFO vyder_core::lexer: Char at distance 1 from 13 is 'e' [INFO] [stdout] 2025-11-13T23:44:42.943240Z  INFO vyder_core::lexer: Advancing to char index 14 [INFO] [stdout] 2025-11-13T23:44:42.943248Z  INFO vyder_core::lexer: Char at distance 1 from 14 is 's' [INFO] [stdout] 2025-11-13T23:44:42.943255Z  INFO vyder_core::lexer: Advancing to char index 15 [INFO] [stdout] 2025-11-13T23:44:42.943263Z  INFO vyder_core::lexer: Char at distance 1 from 15 is 't' [INFO] [stdout] 2025-11-13T23:44:42.943275Z  INFO vyder_core::lexer: Advancing to char index 16 [INFO] [stdout] 2025-11-13T23:44:42.943283Z  INFO vyder_core::lexer: Char at distance 1 from 16 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.943290Z  INFO vyder_core::lexer: Advancing to char index 17 [INFO] [stdout] 2025-11-13T23:44:42.943321Z  INFO vyder_core::lexer: Char at distance 1 from 17 is '2' [INFO] [stdout] 2025-11-13T23:44:42.943329Z  INFO vyder_core::lexer: Advancing to char index 18 [INFO] [stdout] 2025-11-13T23:44:42.943337Z  INFO vyder_core::lexer: Char at distance 1 from 18 is ' [INFO] [stdout] ' [INFO] [stdout] 2025-11-13T23:44:42.943348Z  INFO vyder_core::lexer: Advancing to char index 19 [INFO] [stdout] 2025-11-13T23:44:42.943354Z  INFO vyder_core::lexer: Advancing to char index 20 [INFO] [stdout] 2025-11-13T23:44:42.943361Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.943375Z  INFO vyder_core::lexer: Constructing span at line 3, column 1 [INFO] [stdout] 2025-11-13T23:44:42.943388Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2025-11-13T23:44:42.943401Z  INFO vyder_core::lexer: Char at distance 0 from 20 is '/' [INFO] [stdout] 2025-11-13T23:44:42.943424Z  INFO vyder_core::lexer: Char at distance 1 from 20 is '/' [INFO] [stdout] 2025-11-13T23:44:42.943433Z  INFO vyder_core::lexer: Char at distance 1 from 20 is '/' [INFO] [stdout] 2025-11-13T23:44:42.943448Z  INFO vyder_core::lexer: Advancing to char index 21 [INFO] [stdout] 2025-11-13T23:44:42.943457Z  INFO vyder_core::lexer: Char at distance 1 from 21 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.943464Z  INFO vyder_core::lexer: Advancing to char index 22 [INFO] [stdout] 2025-11-13T23:44:42.943473Z  INFO vyder_core::lexer: Char at distance 1 from 22 is 't' [INFO] [stdout] 2025-11-13T23:44:42.943486Z  INFO vyder_core::lexer: Advancing to char index 23 [INFO] [stdout] 2025-11-13T23:44:42.942961Z  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-11-13T23:44:42.943495Z  INFO vyder_core::lexer: Char at distance 1 from 23 is 'e' [INFO] [stdout] 2025-11-13T23:44:42.943502Z  INFO vyder_core::lexer: Advancing to char index 24 [INFO] [stdout] 2025-11-13T23:44:42.943510Z  INFO vyder_core::lexer: Char at distance 1 from 24 is 's' [INFO] [stdout] 2025-11-13T23:44:42.943517Z  INFO vyder_core::lexer: Advancing to char index 25 [INFO] [stdout] 2025-11-13T23:44:42.943525Z  INFO vyder_core::lexer: Char at distance 1 from 25 is 't' [INFO] [stdout] 2025-11-13T23:44:42.943523Z  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-11-13T23:44:42.943531Z  INFO vyder_core::lexer: Advancing to char index 26 [INFO] [stdout] 2025-11-13T23:44:42.943531Z  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-11-13T23:44:42.943099Z  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-11-13T23:44:42.943563Z  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-11-13T23:44:42.943566Z  INFO vyder_core::parser: Advancing to token index 2: 'bar' [INFO] [stdout] 2025-11-13T23:44:42.943091Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.942928Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.941508Z  INFO vyder_core::lexer: Char at distance 0 from 9 is '1' [INFO] [stdout] 2025-11-13T23:44:42.942920Z  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-11-13T23:44:42.943703Z  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-11-13T23:44:42.943721Z  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-11-13T23:44:42.943738Z  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-11-13T23:44:42.943758Z  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-11-13T23:44:42.943773Z  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-11-13T23:44:42.943782Z  INFO vyder_core::parser: Advancing to token index 4: '3' [INFO] [stdout] 2025-11-13T23:44:42.943794Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.943800Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.943807Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.943814Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.943820Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.943827Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.943834Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.941803Z  INFO vyder_core::lexer: Char at distance 0 from 0 is 'f' [INFO] [stdout] 2025-11-13T23:44:42.943850Z  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-11-13T23:44:42.943855Z  INFO vyder_core::lexer: Advancing to char index 1 [INFO] [stdout] 2025-11-13T23:44:42.943592Z  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-11-13T23:44:42.944416Z  INFO vyder_core::lexer: Char at distance 0 from 1 is 'o' [INFO] [stdout] 2025-11-13T23:44:42.943649Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2025-11-13T23:44:42.944432Z  INFO vyder_core::lexer: Advancing to char index 2 [INFO] [stdout] 2025-11-13T23:44:42.944440Z  INFO vyder_core::lexer: Char at distance 0 from 2 is 'o' [INFO] [stdout] 2025-11-13T23:44:42.944448Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-11-13T23:44:42.944455Z  INFO vyder_core::lexer: Char at distance 0 from 3 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.944514Z  INFO vyder_core::lexer: Char at distance 0 from 9 is '1' [INFO] [stdout] 2025-11-13T23:44:42.944524Z  INFO vyder_core::lexer: Next token is 'foo' [INFO] [stdout] 2025-11-13T23:44:42.943652Z  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-11-13T23:44:42.944534Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-11-13T23:44:42.944543Z  INFO vyder_core::lexer: Advancing to char index 3 [INFO] [stdout] 2025-11-13T23:44:42.944543Z  INFO vyder_core::lexer: Char at distance 0 from 10 is '2' [INFO] [stdout] 2025-11-13T23:44:42.944551Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.944552Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-11-13T23:44:42.944557Z  INFO vyder_core::lexer: Constructing span at line 1, column 4 [INFO] [stdout] 2025-11-13T23:44:42.944560Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2025-11-13T23:44:42.944564Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.944569Z  INFO vyder_core::lexer: Next token is '12' [INFO] [stdout] 2025-11-13T23:44:42.944582Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-11-13T23:44:42.944589Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.944597Z  INFO vyder_core::lexer: Constructing span at line 1, column 12 [INFO] [stdout] 2025-11-13T23:44:42.944574Z  INFO vyder_core::lexer: Char at distance 0 from 3 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.944603Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.944612Z  INFO vyder_core::lexer: Advancing to char index 4 [INFO] [stdout] 2025-11-13T23:44:42.944614Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2025-11-13T23:44:42.944620Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.944622Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.944627Z  INFO vyder_core::lexer: Constructing span at line 1, column 5 [INFO] [stdout] 2025-11-13T23:44:42.944634Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.944644Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'r' [INFO] [stdout] 2025-11-13T23:44:42.944652Z  INFO vyder_core::lexer: Char at distance 0 from 4 is 'r' [INFO] [stdout] 2025-11-13T23:44:42.944659Z  INFO vyder_core::lexer: Advancing to char index 5 [INFO] [stdout] 2025-11-13T23:44:42.943541Z  INFO vyder_core::lexer: Char at distance 1 from 26 is ' ' [INFO] [stdout] 2025-11-13T23:44:42.944667Z  INFO vyder_core::lexer: Char at distance 0 from 5 is 'e' [INFO] [stdout] 2025-11-13T23:44:42.943185Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.944708Z  INFO vyder_core::lexer: Advancing to char index 6 [INFO] [stdout] 2025-11-13T23:44:42.944722Z  INFO vyder_core::lexer: Char at distance 0 from 6 is 't' [INFO] [stdout] 2025-11-13T23:44:42.944717Z  INFO vyder_core::lexer: Advancing to char index 27 [INFO] [stdout] 2025-11-13T23:44:42.944729Z  INFO vyder_core::lexer: Advancing to char index 7 [INFO] [stdout] 2025-11-13T23:44:42.944735Z  INFO vyder_core::lexer: Char at distance 0 from 7 is 'u' [INFO] [stdout] test lexer::tests::numbers_test ... ok [INFO] [stdout] 2025-11-13T23:44:42.944740Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.943668Z  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-11-13T23:44:42.944761Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.944769Z  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-11-13T23:44:42.944788Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.944792Z  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-11-13T23:44:42.944896Z  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-11-13T23:44:42.943626Z  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-11-13T23:44:42.944917Z  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-11-13T23:44:42.944804Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.944941Z  INFO vyder_core::parser: Advancing to token index 1: '=' [INFO] [stdout] 2025-11-13T23:44:42.944963Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.944979Z  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-11-13T23:44:42.944987Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.945003Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.945031Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.945048Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.945062Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.944742Z  INFO vyder_core::lexer: Advancing to char index 8 [INFO] [stdout] 2025-11-13T23:44:42.945082Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.945097Z  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-11-13T23:44:42.945096Z  INFO vyder_core::lexer: Char at distance 0 from 8 is 'r' [INFO] [stdout] 2025-11-13T23:44:42.945106Z  INFO vyder_core::lexer: Advancing to char index 9 [INFO] [stdout] 2025-11-13T23:44:42.944825Z  INFO vyder_core::lexer: Char at distance 1 from 27 is '3' [INFO] [stdout] 2025-11-13T23:44:42.943866Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.945278Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.944826Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.945397Z  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-11-13T23:44:42.945410Z  INFO vyder_core::parser: Advancing to token index 5: ';' [INFO] [stdout] 2025-11-13T23:44:42.945423Z  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-11-13T23:44:42.945436Z  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-11-13T23:44:42.945193Z  INFO vyder_core::lexer: Char at distance 0 from 9 is 'n' [INFO] [stdout] 2025-11-13T23:44:42.945110Z  INFO vyder_core::parser: Advancing to token index 1: '-' [INFO] [stdout] 2025-11-13T23:44:42.945519Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-11-13T23:44:42.945436Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.945569Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.945537Z  INFO vyder_core::lexer: Char at distance 0 from 10 is ')' [INFO] [stdout] 2025-11-13T23:44:42.945715Z  INFO vyder_core::lexer: Next token is 'return' [INFO] [stdout] 2025-11-13T23:44:42.945547Z  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-11-13T23:44:42.945731Z  INFO vyder_core::lexer: Advancing to char index 10 [INFO] [stdout] 2025-11-13T23:44:42.945337Z  INFO vyder_core::lexer: Advancing to char index 28 [INFO] [stdout] 2025-11-13T23:44:42.945738Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.945746Z  INFO vyder_core::lexer: Constructing span at line 1, column 11 [INFO] [stdout] 2025-11-13T23:44:42.945753Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.945814Z  INFO vyder_core::lexer: Char at distance 1 from 28 is 'None' [INFO] [stdout] 2025-11-13T23:44:42.945844Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.945855Z  INFO vyder_core::lexer: Constructing span at line 3, column 9 [INFO] [stdout] 2025-11-13T23:44:42.945862Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2025-11-13T23:44:42.943591Z  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-11-13T23:44:42.945896Z  INFO vyder_core::parser: Advancing to token index 2: '3' [INFO] [stdout] 2025-11-13T23:44:42.945917Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.945925Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.945933Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.945934Z  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-11-13T23:44:42.945948Z  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-11-13T23:44:42.945976Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.945985Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.945998Z  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-11-13T23:44:42.946006Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2025-11-13T23:44:42.946018Z  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-11-13T23:44:42.945545Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.946033Z  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-11-13T23:44:42.946046Z  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-11-13T23:44:42.946057Z  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-11-13T23:44:42.946066Z  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-11-13T23:44:42.946074Z  INFO vyder_core::parser: Advancing to token index 2: 'foo' [INFO] [stdout] 2025-11-13T23:44:42.946080Z  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-11-13T23:44:42.946082Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.946091Z  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-11-13T23:44:42.946104Z  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-11-13T23:44:42.946131Z  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-11-13T23:44:42.946152Z  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-11-13T23:44:42.946161Z  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-11-13T23:44:42.946170Z  INFO vyder_core::lexer: Char at distance 0 from 28 is '3' [INFO] [stdout] 2025-11-13T23:44:42.946176Z  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-11-13T23:44:42.946185Z  INFO vyder_core::lexer: get_number function [INFO] [stdout] 2025-11-13T23:44:42.946186Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.946196Z  INFO vyder_core::lexer: Char at distance 0 from 28 is '3' [INFO] [stdout] 2025-11-13T23:44:42.946199Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-11-13T23:44:42.946203Z  INFO vyder_core::lexer: Advancing to char index 29 [INFO] [stdout] 2025-11-13T23:44:42.946213Z  INFO vyder_core::lexer: Char at distance 0 from 29 is 'None' [INFO] [stdout] 2025-11-13T23:44:42.946213Z  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-11-13T23:44:42.945820Z  INFO vyder_core::lexer: Char at distance 0 from 10 is ')' [INFO] [stdout] 2025-11-13T23:44:42.946229Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.946236Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2025-11-13T23:44:42.945166Z  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-11-13T23:44:42.946137Z  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-11-13T23:44:42.944806Z  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-11-13T23:44:42.946277Z  INFO vyder_core::lexer: Next token is ')' [INFO] [stdout] 2025-11-13T23:44:42.946384Z  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-11-13T23:44:42.945691Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.946412Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.946412Z  INFO vyder_core::lexer: Advancing to char index 11 [INFO] [stdout] 2025-11-13T23:44:42.946422Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.946424Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.946430Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.946437Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.946254Z  INFO vyder_core::parser: Parsed expression ''1' at test 1:5 [INFO] [stdout] | foo[1]; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2025-11-13T23:44:42.946452Z  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-11-13T23:44:42.946466Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.946465Z  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-11-13T23:44:42.946478Z  INFO vyder_core::parser: Advancing to token index 4: ';' [INFO] [stdout] 2025-11-13T23:44:42.946491Z  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-11-13T23:44:42.946505Z  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-11-13T23:44:42.946512Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.946519Z  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-11-13T23:44:42.946533Z  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-11-13T23:44:42.946536Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.946542Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2025-11-13T23:44:42.946540Z  INFO vyder_core::lexer: Next token is '3' [INFO] [stdout] 2025-11-13T23:44:42.946553Z  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-11-13T23:44:42.946554Z  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-11-13T23:44:42.946361Z  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-11-13T23:44:42.946562Z  INFO vyder_core::parser: Advancing to token index 3: '(' [INFO] [stdout] 2025-11-13T23:44:42.946425Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.946555Z  INFO vyder_core::lexer: Advancing to char index 29 [INFO] [stdout] 2025-11-13T23:44:42.946575Z  INFO vyder_core::lexer: Normal get_token function [INFO] [stdout] 2025-11-13T23:44:42.946576Z  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-11-13T23:44:42.946533Z  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-11-13T23:44:42.946582Z  INFO vyder_core::lexer: Constructing span at line 3, column 10 [INFO] [stdout] 2025-11-13T23:44:42.946584Z  INFO vyder_core::parser: Advancing to token index 4: ')' [INFO] [stdout] 2025-11-13T23:44:42.946574Z  INFO vyder_core::lexer: Constructing span at line 1, column 12 [INFO] [stdout] 2025-11-13T23:44:42.946595Z  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-11-13T23:44:42.946601Z  INFO vyder_core::lexer: getting line 0 [INFO] [stdout] 2025-11-13T23:44:42.946604Z  INFO vyder_core::parser: Advancing to token index 5: ')' [INFO] [stdout] 2025-11-13T23:44:42.946613Z  INFO vyder_core::lexer: Char at distance 0 from 11 is 'None' [INFO] [stdout] 2025-11-13T23:44:42.945006Z  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-11-13T23:44:42.946656Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.946625Z  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-11-13T23:44:42.946775Z  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-11-13T23:44:42.946365Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.946589Z  INFO vyder_core::lexer: getting line 2 [INFO] [stdout] 2025-11-13T23:44:42.946899Z  INFO vyder_core::lexer: Char at distance 0 from 29 is 'None' [INFO] [stdout] 2025-11-13T23:44:42.946908Z  INFO vyder_core::lexer: Next token is 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.946918Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.946949Z  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-11-13T23:44:42.946984Z  INFO vyder_core::parser: Advancing to token index 1: '.' [INFO] [stdout] 2025-11-13T23:44:42.946700Z  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-11-13T23:44:42.947003Z  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-11-13T23:44:42.947012Z  INFO vyder_core::parser: Advancing to token index 2: 'bar' [INFO] [stdout] 2025-11-13T23:44:42.946700Z  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-11-13T23:44:42.946602Z  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-11-13T23:44:42.947024Z  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-11-13T23:44:42.947031Z  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-11-13T23:44:42.946720Z  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-11-13T23:44:42.947056Z  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] test parser::tests::ranges_test ... 2025-11-13T23:44:42.947058Z  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-11-13T23:44:42.947078Z  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-11-13T23:44:42.947084Z  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-11-13T23:44:42.947092Z  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-11-13T23:44:42.947093Z  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-11-13T23:44:42.947094Z  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-11-13T23:44:42.947098Z  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-11-13T23:44:42.947101Z  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-11-13T23:44:42.947106Z  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-11-13T23:44:42.947112Z  INFO vyder_core::parser: Advancing to token index 6: 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.947157Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-11-13T23:44:42.947112Z  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-11-13T23:44:42.947195Z  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-11-13T23:44:42.947212Z  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-11-13T23:44:42.947215Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.947224Z  INFO vyder_core::parser: Token at distance 0 from 6 is None [INFO] [stdout] 2025-11-13T23:44:42.947229Z  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-11-13T23:44:42.947241Z  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-11-13T23:44:42.947114Z  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-11-13T23:44:42.947250Z  INFO vyder_core::parser: Advancing to token index 2: '(' [INFO] [stdout] 2025-11-13T23:44:42.947258Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.947265Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.947271Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.947279Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.947276Z  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-11-13T23:44:42.947286Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.947293Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.947114Z  INFO vyder_core::parser: Parsed expression ''Index' at test 1:1 - 1:6 (6 chars) [INFO] [stdout] | foo[1]; [INFO] [stdout] ^^^^^^ here' [INFO] [stdout] 2025-11-13T23:44:42.947128Z  INFO vyder_core::parser: Advancing to token index 3: ';' [INFO] [stdout] 2025-11-13T23:44:42.947358Z  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-11-13T23:44:42.946791Z  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-11-13T23:44:42.947373Z  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-11-13T23:44:42.947382Z  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-11-13T23:44:42.947324Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.947408Z  INFO vyder_core::parser: Advancing to token index 5: 'EOF' [INFO] [stdout] ok [INFO] [stdout] 2025-11-13T23:44:42.947416Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] test lexer::tests::identifiers_test ... ok2025-11-13T23:44:42.947420Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] [INFO] [stdout] test lexer::tests::comments_test ... ok [INFO] [stdout] 2025-11-13T23:44:42.947424Z  INFO vyder_core::parser: parsed statement ''Index;' at test 1:1 - 1:7 (7 chars) [INFO] [stdout] | foo[1]; [INFO] [stdout] ^^^^^^^ here' [INFO] [stdout] test parser::tests::assignment_test ... ok [INFO] [stdout] 2025-11-13T23:44:42.947437Z  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-11-13T23:44:42.947453Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.947473Z  INFO vyder_core::parser: Token at distance 0 from 5 is None [INFO] [stdout] 2025-11-13T23:44:42.947455Z  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-11-13T23:44:42.947455Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.947597Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.947293Z  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-11-13T23:44:42.947594Z  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-11-13T23:44:42.947655Z  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-11-13T23:44:42.947661Z  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] test parser::tests::index_test ... 2025-11-13T23:44:42.947502Z  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] ok2025-11-13T23:44:42.947674Z  INFO vyder_core::parser: Parsed expression ''Not' at test 1:1 - 1:5 (5 chars) [INFO] [stdout] | !-foo; [INFO] [stdout] ^^^^^ here' [INFO] [stdout] [INFO] [stdout] 2025-11-13T23:44:42.947688Z  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-11-13T23:44:42.947683Z  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-11-13T23:44:42.947695Z  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-11-13T23:44:42.947697Z  INFO vyder_core::parser: Advancing to token index 3: 'import' [INFO] [stdout] 2025-11-13T23:44:42.947703Z  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-11-13T23:44:42.947707Z  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-11-13T23:44:42.947715Z  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-11-13T23:44:42.947715Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.947730Z  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-11-13T23:44:42.947741Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.947716Z  INFO vyder_core::parser: token after statement parse is '';' at test 1:6 [INFO] [stdout] | !-foo; [INFO] [stdout] [INFO] [stdout] ^ here' [INFO] [stdout] 2025-11-13T23:44:42.947758Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.947767Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.947773Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-11-13T23:44:42.947782Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.947781Z  INFO vyder_core::parser: parsed statement ''Not;' at test 1:1 - 1:6 (6 chars) [INFO] [stdout] | !-foo; [INFO] [stdout] ^^^^^^ here' [INFO] [stdout] 2025-11-13T23:44:42.947800Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.947743Z  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-11-13T23:44:42.947808Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2025-11-13T23:44:42.947674Z  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-11-13T23:44:42.947851Z  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-11-13T23:44:42.947903Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.947865Z  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-11-13T23:44:42.947952Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.947979Z  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-11-13T23:44:42.948046Z  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-11-13T23:44:42.947998Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.948010Z  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] test parser::tests::unary_test ... 2025-11-13T23:44:42.948100Z  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] ok [INFO] [stdout] 2025-11-13T23:44:42.948192Z  INFO vyder_core::parser: Parsed expression ''FieldAccess' at test 1:1 - 1:7 (7 chars) [INFO] [stderr] Running unittests src/bin/vyder_debug_cli/main.rs (/opt/rustwide/target/debug/deps/vyder_debug_cli-bb2043fe6848a052) [INFO] [stdout] | foo.bar; [INFO] [stdout] ^^^^^^^ here' [INFO] [stdout] 2025-11-13T23:44:42.948118Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.948219Z  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-11-13T23:44:42.948230Z  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-11-13T23:44:42.948247Z  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-11-13T23:44:42.948260Z  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-11-13T23:44:42.948262Z  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-11-13T23:44:42.948337Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.948345Z  INFO vyder_core::parser: Advancing to token index 4: 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.948357Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-11-13T23:44:42.948368Z  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-11-13T23:44:42.948366Z  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-11-13T23:44:42.948382Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.948382Z  INFO vyder_core::parser: Advancing to token index 6: ';' [INFO] [stdout] 2025-11-13T23:44:42.948389Z  INFO vyder_core::parser: Token at distance 0 from 4 is None [INFO] [stdout] 2025-11-13T23:44:42.948395Z  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-11-13T23:44:42.948409Z  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-11-13T23:44:42.948421Z  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-11-13T23:44:42.948498Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] test parser::tests::field_access_test ... ok [INFO] [stdout] 2025-11-13T23:44:42.948550Z  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-11-13T23:44:42.948689Z  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-11-13T23:44:42.948694Z  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-11-13T23:44:42.948767Z  INFO vyder_core::parser: Advancing to token index 4: '(' [INFO] [stdout] 2025-11-13T23:44:42.948776Z  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-11-13T23:44:42.948783Z  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-11-13T23:44:42.948792Z  INFO vyder_core::parser: Advancing to token index 5: '"std"' [INFO] [stdout] 2025-11-13T23:44:42.948794Z  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-11-13T23:44:42.948807Z  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-11-13T23:44:42.948808Z  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-11-13T23:44:42.948815Z  INFO vyder_core::parser: get_expression function [INFO] [stdout] 2025-11-13T23:44:42.948822Z  INFO vyder_core::parser: get_combiner function [INFO] [stdout] 2025-11-13T23:44:42.948817Z  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-11-13T23:44:42.948829Z  INFO vyder_core::parser: get_equality function [INFO] [stdout] 2025-11-13T23:44:42.948836Z  INFO vyder_core::parser: get_comparison function [INFO] [stdout] 2025-11-13T23:44:42.948840Z  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-11-13T23:44:42.948842Z  INFO vyder_core::parser: get_range function [INFO] [stdout] 2025-11-13T23:44:42.948850Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.948853Z  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-11-13T23:44:42.948856Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.948863Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.948862Z  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-11-13T23:44:42.948873Z  INFO vyder_core::parser: Advancing to token index 7: 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.948878Z  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-11-13T23:44:42.948880Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-11-13T23:44:42.948896Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.948889Z  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-11-13T23:44:42.948907Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.948915Z  INFO vyder_core::parser: Token at distance 0 from 7 is None [INFO] [stdout] 2025-11-13T23:44:42.948953Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.948970Z  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-11-13T23:44:42.948984Z  INFO vyder_core::parser: Advancing to token index 6: ')' [INFO] [stdout] 2025-11-13T23:44:42.948995Z  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-11-13T23:44:42.949007Z  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-11-13T23:44:42.949029Z  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-11-13T23:44:42.949042Z  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-11-13T23:44:42.949057Z  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] test parser::tests::calls_test ... ok [INFO] [stdout] 2025-11-13T23:44:42.949069Z  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-11-13T23:44:42.949081Z  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-11-13T23:44:42.949093Z  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-11-13T23:44:42.949101Z  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-11-13T23:44:42.949133Z  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-11-13T23:44:42.949151Z  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-11-13T23:44:42.949160Z  INFO vyder_core::parser: Advancing to token index 7: '.' [INFO] [stdout] 2025-11-13T23:44:42.949172Z  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-11-13T23:44:42.949179Z  INFO vyder_core::parser: Advancing to token index 8: 'argc' [INFO] [stdout] 2025-11-13T23:44:42.949192Z  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-11-13T23:44:42.949200Z  INFO vyder_core::parser: Advancing to token index 9: '+' [INFO] [stdout] 2025-11-13T23:44:42.949214Z  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-11-13T23:44:42.949220Z  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-11-13T23:44:42.949237Z  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-11-13T23:44:42.949251Z  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-11-13T23:44:42.949263Z  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-11-13T23:44:42.949272Z  INFO vyder_core::parser: Advancing to token index 10: '2' [INFO] [stdout] 2025-11-13T23:44:42.949279Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.949285Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.949292Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.949328Z  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-11-13T23:44:42.949345Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.949354Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.949366Z  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-11-13T23:44:42.949374Z  INFO vyder_core::parser: Advancing to token index 11: ')' [INFO] [stdout] 2025-11-13T23:44:42.949386Z  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-11-13T23:44:42.949406Z  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-11-13T23:44:42.949418Z  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-11-13T23:44:42.949431Z  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-11-13T23:44:42.949447Z  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-11-13T23:44:42.949459Z  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-11-13T23:44:42.949471Z  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-11-13T23:44:42.949482Z  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-11-13T23:44:42.949492Z  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-11-13T23:44:42.949513Z  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-11-13T23:44:42.949522Z  INFO vyder_core::parser: Advancing to token index 12: '+' [INFO] [stdout] 2025-11-13T23:44:42.949538Z  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-11-13T23:44:42.949551Z  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-11-13T23:44:42.949564Z  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-11-13T23:44:42.949573Z  INFO vyder_core::parser: Advancing to token index 13: '2' [INFO] [stdout] 2025-11-13T23:44:42.949580Z  INFO vyder_core::parser: get_term function [INFO] [stdout] 2025-11-13T23:44:42.949587Z  INFO vyder_core::parser: get_factor function [INFO] [stdout] 2025-11-13T23:44:42.949593Z  INFO vyder_core::parser: get_unary function [INFO] [stdout] 2025-11-13T23:44:42.949606Z  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-11-13T23:44:42.949622Z  INFO vyder_core::parser: get_properties function [INFO] [stdout] 2025-11-13T23:44:42.949631Z  INFO vyder_core::parser: get_primary function [INFO] [stdout] 2025-11-13T23:44:42.949657Z  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-11-13T23:44:42.949667Z  INFO vyder_core::parser: Advancing to token index 14: ';' [INFO] [stdout] 2025-11-13T23:44:42.949682Z  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-11-13T23:44:42.949695Z  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-11-13T23:44:42.949706Z  INFO vyder_core::parser: Token at distance 0 from 14 is ';' at test 1:35 [INFO] [stdout] | foo = (import('std').argc + 2) + 2; [INFO] [stderr] Doc-tests vyder_core [INFO] [stdout] [INFO] [stdout] ^ here [INFO] [stdout] 2025-11-13T23:44:42.949719Z  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-11-13T23:44:42.949734Z  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-11-13T23:44:42.949747Z  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-11-13T23:44:42.949761Z  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-11-13T23:44:42.949774Z  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-11-13T23:44:42.949785Z  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-11-13T23:44:42.949811Z  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-11-13T23:44:42.949824Z  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-11-13T23:44:42.949833Z  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-11-13T23:44:42.949844Z  INFO vyder_core::parser: Advancing to token index 15: 'EOF' [INFO] [stdout] 2025-11-13T23:44:42.949852Z  INFO vyder_core::parser: exit get_statement [INFO] [stdout] 2025-11-13T23:44:42.949859Z  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-11-13T23:44:42.949881Z  INFO vyder_core::parser: get_statement function [INFO] [stdout] 2025-11-13T23:44:42.949889Z  INFO vyder_core::parser: Token at distance 0 from 15 is None [INFO] [stdout] test parser::tests::import_test ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [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/expression/mod.rs - expression::Expression::expect (line 23) ... ok [INFO] [stdout] test src/token/mod.rs - token::Token::expect (line 22) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "a21dcce1da475d62b64556ff2486b4bb9226e939d0770f9c2180bb0e88463247", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a21dcce1da475d62b64556ff2486b4bb9226e939d0770f9c2180bb0e88463247", kill_on_drop: false }` [INFO] [stdout] a21dcce1da475d62b64556ff2486b4bb9226e939d0770f9c2180bb0e88463247