[INFO] cloning repository https://github.com/ndunnett/codecrafters-interpreter-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ndunnett/codecrafters-interpreter-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fndunnett%2Fcodecrafters-interpreter-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fndunnett%2Fcodecrafters-interpreter-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 52273631c2fe392616908bab2701c88a50e9a321
[INFO] testing ndunnett/codecrafters-interpreter-rust against beta-2025-10-28 for beta-1.92-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fndunnett%2Fcodecrafters-interpreter-rust" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ndunnett/codecrafters-interpreter-rust
[INFO] finished tweaking git repo https://github.com/ndunnett/codecrafters-interpreter-rust
[INFO] tweaked toml for git repo https://github.com/ndunnett/codecrafters-interpreter-rust written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ndunnett/codecrafters-interpreter-rust on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ndunnett/codecrafters-interpreter-rust 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" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e1ec72a9c88078fdb2acee1b14db3e80eb633e0131eb55e0c33d0c9ad3dbb64a
[INFO] running `Command { std: "docker" "start" "-a" "e1ec72a9c88078fdb2acee1b14db3e80eb633e0131eb55e0c33d0c9ad3dbb64a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e1ec72a9c88078fdb2acee1b14db3e80eb633e0131eb55e0c33d0c9ad3dbb64a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e1ec72a9c88078fdb2acee1b14db3e80eb633e0131eb55e0c33d0c9ad3dbb64a", kill_on_drop: false }`
[INFO] [stdout] e1ec72a9c88078fdb2acee1b14db3e80eb633e0131eb55e0c33d0c9ad3dbb64a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 05f33f80a2e69f7abb8eaf04230e9f118bff4f7276fa749c39065651b1ff262f
[INFO] running `Command { std: "docker" "start" "-a" "05f33f80a2e69f7abb8eaf04230e9f118bff4f7276fa749c39065651b1ff262f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]    Compiling bytes v1.7.1
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.75
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling codecrafters-interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsing.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn peek(&self) -> &Token {
[INFO] [stdout]     |             ^^^^^     ^^^^^^
[INFO] [stdout]     |             |         ||
[INFO] [stdout]     |             |         |the same lifetime is hidden here
[INFO] [stdout]     |             |         the same lifetime is elided here
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn peek(&self) -> &Token<'_> {
[INFO] [stdout]     |                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsing.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn previous(&self) -> &Token {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^
[INFO] [stdout]     |                 |         ||
[INFO] [stdout]     |                 |         |the same lifetime is hidden here
[INFO] [stdout]     |                 |         the same lifetime is elided here
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn previous(&self) -> &Token<'_> {
[INFO] [stdout]     |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsing.rs:121:16
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn consume(&mut self, type_: &TokenType) -> Option<&Token> {
[INFO] [stdout]     |                ^^^^^^^^^                               ^^^^^^
[INFO] [stdout]     |                |                                       ||
[INFO] [stdout]     |                |                                       |the same lifetime is hidden here
[INFO] [stdout]     |                the lifetime is elided here             the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn consume(&mut self, type_: &TokenType) -> Option<&Token<'_>> {
[INFO] [stdout]     |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.95s
[INFO] running `Command { std: "docker" "inspect" "05f33f80a2e69f7abb8eaf04230e9f118bff4f7276fa749c39065651b1ff262f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05f33f80a2e69f7abb8eaf04230e9f118bff4f7276fa749c39065651b1ff262f", kill_on_drop: false }`
[INFO] [stdout] 05f33f80a2e69f7abb8eaf04230e9f118bff4f7276fa749c39065651b1ff262f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2ae8074bae0df98d365c4fe933c5a0154acc242be8d488d4695b715ea869fea4
[INFO] running `Command { std: "docker" "start" "-a" "2ae8074bae0df98d365c4fe933c5a0154acc242be8d488d4695b715ea869fea4", kill_on_drop: false }`
[INFO] [stderr]    Compiling codecrafters-interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsing.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn peek(&self) -> &Token {
[INFO] [stdout]     |             ^^^^^     ^^^^^^
[INFO] [stdout]     |             |         ||
[INFO] [stdout]     |             |         |the same lifetime is hidden here
[INFO] [stdout]     |             |         the same lifetime is elided here
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn peek(&self) -> &Token<'_> {
[INFO] [stdout]     |                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsing.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn previous(&self) -> &Token {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^
[INFO] [stdout]     |                 |         ||
[INFO] [stdout]     |                 |         |the same lifetime is hidden here
[INFO] [stdout]     |                 |         the same lifetime is elided here
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn previous(&self) -> &Token<'_> {
[INFO] [stdout]     |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parsing.rs:121:16
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn consume(&mut self, type_: &TokenType) -> Option<&Token> {
[INFO] [stdout]     |                ^^^^^^^^^                               ^^^^^^
[INFO] [stdout]     |                |                                       ||
[INFO] [stdout]     |                |                                       |the same lifetime is hidden here
[INFO] [stdout]     |                the lifetime is elided here             the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn consume(&mut self, type_: &TokenType) -> Option<&Token<'_>> {
[INFO] [stdout]     |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.98s
[INFO] running `Command { std: "docker" "inspect" "2ae8074bae0df98d365c4fe933c5a0154acc242be8d488d4695b715ea869fea4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2ae8074bae0df98d365c4fe933c5a0154acc242be8d488d4695b715ea869fea4", kill_on_drop: false }`
[INFO] [stdout] 2ae8074bae0df98d365c4fe933c5a0154acc242be8d488d4695b715ea869fea4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2025-10-28" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 738b005c4a5ef5b33ce64f43d8e60dcbf9abffb77f35318efb38efe7fa294da8
[INFO] running `Command { std: "docker" "start" "-a" "738b005c4a5ef5b33ce64f43d8e60dcbf9abffb77f35318efb38efe7fa294da8", kill_on_drop: false }`
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parsing.rs:107:13
[INFO] [stderr]     |
[INFO] [stderr] 107 |     fn peek(&self) -> &Token {
[INFO] [stderr]     |             ^^^^^     ^^^^^^
[INFO] [stderr]     |             |         ||
[INFO] [stderr]     |             |         |the same lifetime is hidden here
[INFO] [stderr]     |             |         the same lifetime is elided here
[INFO] [stderr]     |             the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 107 |     fn peek(&self) -> &Token<'_> {
[INFO] [stderr]     |                             ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parsing.rs:111:17
[INFO] [stderr]     |
[INFO] [stderr] 111 |     fn previous(&self) -> &Token {
[INFO] [stderr]     |                 ^^^^^     ^^^^^^
[INFO] [stderr]     |                 |         ||
[INFO] [stderr]     |                 |         |the same lifetime is hidden here
[INFO] [stderr]     |                 |         the same lifetime is elided here
[INFO] [stderr]     |                 the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 111 |     fn previous(&self) -> &Token<'_> {
[INFO] [stderr]     |                                 ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parsing.rs:121:16
[INFO] [stderr]     |
[INFO] [stderr] 121 |     fn consume(&mut self, type_: &TokenType) -> Option<&Token> {
[INFO] [stderr]     |                ^^^^^^^^^                               ^^^^^^
[INFO] [stderr]     |                |                                       ||
[INFO] [stderr]     |                |                                       |the same lifetime is hidden here
[INFO] [stderr]     |                the lifetime is elided here             the same lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 121 |     fn consume(&mut self, type_: &TokenType) -> Option<&Token<'_>> {
[INFO] [stderr]     |                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `codecrafters-interpreter` (bin "codecrafters-interpreter" test) generated 3 warnings (run `cargo fix --bin "codecrafters-interpreter" -p codecrafters-interpreter --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/codecrafters_interpreter-334d46f30d9b6134)
[INFO] [stdout] 
[INFO] [stdout] running 56 tests
[INFO] [stdout] test evaluation::control_flow_tests::else_statements ... ok
[INFO] [stdout] test evaluation::control_flow_tests::else_if_statements ... ok
[INFO] [stdout] test evaluation::control_flow_tests::if_statements ... ok
[INFO] [stdout] test evaluation::eval_tests::arithmetic_2 ... ok
[INFO] [stdout] test evaluation::eval_tests::equality_operators ... ok
[INFO] [stdout] test evaluation::eval_tests::booleans_and_nil ... ok
[INFO] [stdout] test evaluation::eval_tests::error_binary_1 ... ok
[INFO] [stdout] test evaluation::control_flow_tests::nested_if_statements ... ok
[INFO] [stdout] test evaluation::control_flow_tests::logical_and ... ok
[INFO] [stdout] the expression below is invalid
[INFO] [stdout] 79baz
[INFO] [stdout] test evaluation::control_flow_tests::while_statements ... ok
[INFO] [stdout] test evaluation::eval_tests::error_binary_2 ... ok
[INFO] [stdout] test evaluation::state_tests::declare_variables ... ok
[INFO] [stdout] test evaluation::state_tests::expression_statements ... ok
[INFO] [stdout] test evaluation::eval_tests::string_concatenation ... ok
[INFO] [stdout] inner hello
[INFO] [stdout] outer hello
[INFO] [stdout] test evaluation::eval_tests::relational_operators ... ok
[INFO] [stdout] test evaluation::control_flow_tests::for_statements ... ok
[INFO] [stdout] test evaluation::state_tests::assignment_operation ... ok
[INFO] [stdout] test evaluation::control_flow_tests::logical_or ... 22
[INFO] [stdout] ok
[INFO] [stdout] test evaluation::state_tests::block_syntax ... ok
[INFO] [stdout] test evaluation::eval_tests::arithmetic_1 ... ok
[INFO] [stdout] test evaluation::eval_tests::strings_and_numbers ... ok
[INFO] [stdout] test evaluation::eval_tests::unary_operators ... ok
[INFO] [stdout] test evaluation::eval_tests::error_relational ... ok
[INFO] [stdout] test evaluation::eval_tests::error_unary ... ok
[INFO] [stdout] test evaluation::state_tests::redeclare_variables ... ok
[INFO] [stdout] test evaluation::state_tests::print_multiple ... ok
[INFO] [stdout] test evaluation::state_tests::print ... ok
[INFO] [stdout] test evaluation::state_tests::initialise_variables ... ok
[INFO] [stdout] test evaluation::state_tests::scopes ... ok
[INFO] [stdout] test evaluation::eval_tests::parentheses ... ok
[INFO] [stdout] test parsing::expr_tests::booleans_and_nil ... ok
[INFO] [stdout] test evaluation::state_tests::var_runtime_errors ... ok
[INFO] [stdout] test parsing::expr_tests::arithmetic_1 ... ok
[INFO] [stdout] test parsing::expr_tests::arithmetic_2 ... ok
[INFO] [stdout] test parsing::expr_tests::comparison ... ok
[INFO] [stdout] test parsing::expr_tests::equality ... ok
[INFO] [stdout] test parsing::expr_tests::number_literals ... ok
[INFO] [stdout] test parsing::expr_tests::parentheses ... ok
[INFO] [stdout] test parsing::expr_tests::string_literals ... ok
[INFO] [stdout] test parsing::expr_tests::syntactic_errors ... ok
[INFO] [stdout] test parsing::expr_tests::unary_operators ... ok
[INFO] [stdout] test scanning::tests::braces ... ok
[INFO] [stdout] test scanning::tests::lexical_errors ... ok
[INFO] [stdout] test scanning::tests::identifiers ... ok
[INFO] [stdout] test parsing::stmt_tests::for_if_syntax ... ok
[INFO] [stdout] test scanning::tests::division_and_comments ... ok
[INFO] [stdout] test scanning::tests::number_literals ... ok
[INFO] [stdout] test scanning::tests::other_single_chars ... ok
[INFO] [stdout] test parsing::stmt_tests::block_syntax ... ok
[INFO] [stdout] test scanning::tests::negation_and_inequality ... ok
[INFO] [stdout] test scanning::tests::whitespace ... ok
[INFO] [stdout] test scanning::tests::parentheses ... ok
[INFO] [stdout] test scanning::tests::assignment_and_equality ... ok
[INFO] [stdout] test scanning::tests::string_literals ... ok
[INFO] [stdout] test scanning::tests::multiline_errors ... ok
[INFO] [stdout] test scanning::tests::relational_operators ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 56 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "738b005c4a5ef5b33ce64f43d8e60dcbf9abffb77f35318efb38efe7fa294da8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "738b005c4a5ef5b33ce64f43d8e60dcbf9abffb77f35318efb38efe7fa294da8", kill_on_drop: false }`
[INFO] [stdout] 738b005c4a5ef5b33ce64f43d8e60dcbf9abffb77f35318efb38efe7fa294da8
