[INFO] cloning repository https://github.com/ecpeter23/asa
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ecpeter23/asa" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fecpeter23%2Fasa", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fecpeter23%2Fasa'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8a4d293de81e2eb921542b112dfa4c108f9832b1
[INFO] checking ecpeter23/asa against try#b28cc4eb48a6415b914e8ad0308be255ff8d73ed for pr-156508
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fecpeter23%2Fasa" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ecpeter23/asa
[INFO] finished tweaking git repo https://github.com/ecpeter23/asa
[INFO] tweaked toml for git repo https://github.com/ecpeter23/asa written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ecpeter23/asa on toolchain b28cc4eb48a6415b914e8ad0308be255ff8d73ed
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ecpeter23/asa 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" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking ecpeter23/asa against try#b28cc4eb48a6415b914e8ad0308be255ff8d73ed for pr-156508
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fecpeter23%2Fasa" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ecpeter23/asa
[INFO] finished tweaking git repo https://github.com/ecpeter23/asa
[INFO] tweaked toml for git repo https://github.com/ecpeter23/asa written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ecpeter23/asa on toolchain b28cc4eb48a6415b914e8ad0308be255ff8d73ed
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ecpeter23/asa 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" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2cb1a52a34563125501a8e6729145942b5cc9a6bd2a1cf9b680acde89b1d2043
[INFO] running `Command { std: "docker" "start" "-a" "2cb1a52a34563125501a8e6729145942b5cc9a6bd2a1cf9b680acde89b1d2043", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2cb1a52a34563125501a8e6729145942b5cc9a6bd2a1cf9b680acde89b1d2043", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2cb1a52a34563125501a8e6729145942b5cc9a6bd2a1cf9b680acde89b1d2043", kill_on_drop: false }`
[INFO] [stdout] 2cb1a52a34563125501a8e6729145942b5cc9a6bd2a1cf9b680acde89b1d2043
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4add649f4ceb4530c6315a4a9ad99bbf3d8ab43ef6f1d273acbc6e568d94ea41
[INFO] running `Command { std: "docker" "start" "-a" "4add649f4ceb4530c6315a4a9ad99bbf3d8ab43ef6f1d273acbc6e568d94ea41", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.7.2
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking asa v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | test_fragment!(interpreter_numeric, r#"123"#, Ok(Value::Number(123)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 29 | let _ = test_fragment!(interpreter_numeric, r#"123"#, Ok(Value::Number(123)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | test_fragment!(interpreter_string, r#""hello""#, Ok(Value::String("hello".to_string())));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 30 | let _ = test_fragment!(interpreter_string, r#""hello""#, Ok(Value::String("hello".to_string())));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | test_fragment!(interpreter_bool_true, r#"true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 31 | let _ = test_fragment!(interpreter_bool_true, r#"true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | test_fragment!(interpreter_bool_false, r#"false"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 32 | let _ = test_fragment!(interpreter_bool_false, r#"false"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | test_fragment!(interpreter_identifier, r#"x"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 | let _ = test_fragment!(interpreter_identifier, r#"x"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | test_fragment!(interpreter_variable_define, r#"let x = 123;"#, Ok(Value::Number(123)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 34 | let _ = test_fragment!(interpreter_variable_define, r#"let x = 123;"#, Ok(Value::Number(123)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | test_fragment!(interpreter_variable_init, r#"let x = 1;"#, Ok(Value::Number(1)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 35 | let _ = test_fragment!(interpreter_variable_init, r#"let x = 1;"#, Ok(Value::Number(1)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | test_fragment!(interpreter_variable_bool, r#"let bool = true;"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 36 | let _ = test_fragment!(interpreter_variable_bool, r#"let bool = true;"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | test_fragment!(interpreter_variable_string, r#"let string = "Hello";"#, Ok(Value::String("Hello".to_string())));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 37 | let _ = test_fragment!(interpreter_variable_string, r#"let string = "Hello";"#, Ok(Value::String("Hello".to_string())));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | test_fragment!(interpreter_variable_init_no_space, r#"let x=1;"#, Ok(Value::Number(1)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 38 | let _ = test_fragment!(interpreter_variable_init_no_space, r#"let x=1;"#, Ok(Value::Number(1)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | test_fragment!(interpreter_math, r#"1 + 1"#, Ok(Value::Number(2)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 39 | let _ = test_fragment!(interpreter_math, r#"1 + 1"#, Ok(Value::Number(2)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:40:1
[INFO] [stdout]    |
[INFO] [stdout] 40 | test_fragment!(interpreter_math_no_space, r#"1-1"#, Ok(Value::Number(0)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 40 | let _ = test_fragment!(interpreter_math_no_space, r#"1-1"#, Ok(Value::Number(0)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 | test_fragment!(interpreter_math_multiply, r#"2 + 4"#, Ok(Value::Number(6)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 41 | let _ = test_fragment!(interpreter_math_multiply, r#"2 + 4"#, Ok(Value::Number(6)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | test_fragment!(interpreter_assign_math, r#"let x = 1 + 1;"#, Ok(Value::Number(2)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 42 | let _ = test_fragment!(interpreter_assign_math, r#"let x = 1 + 1;"#, Ok(Value::Number(2)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | test_fragment!(interpreter_define_full_program, r#"let x = 1 + 1; let y = 5 - 2; let z = x + y;"#, Ok(Value::Number(5)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 43 | let _ = test_fragment!(interpreter_define_full_program, r#"let x = 1 + 1; let y = 5 - 2; let z = x + y;"#, Ok(Value::Number(5)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:44:1
[INFO] [stdout]    |
[INFO] [stdout] 44 | test_fragment!(interpreter_full_math, r#"let x = ((2 + 3) * 4 - 8) / (2 ^ 2);"#, Ok(Value::Number(3)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 | let _ = test_fragment!(interpreter_full_math, r#"let x = ((2 + 3) * 4 - 8) / (2 ^ 2);"#, Ok(Value::Number(3)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | test_fragment!(interpreter_unary_negative, r#"let x = -5;"#, Ok(Value::Number(-5)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 46 | let _ = test_fragment!(interpreter_unary_negative, r#"let x = -5;"#, Ok(Value::Number(-5)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | test_fragment!(interpreter_unary_positive, r#"let x = +5;"#, Ok(Value::Number(5)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 47 | let _ = test_fragment!(interpreter_unary_positive, r#"let x = +5;"#, Ok(Value::Number(5)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 48 | test_fragment!(interpreter_complex_expression, r#"((1 + 2) * (3 + 4))"#, Ok(Value::Number(21)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 48 | let _ = test_fragment!(interpreter_complex_expression, r#"((1 + 2) * (3 + 4))"#, Ok(Value::Number(21)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | test_fragment!(interpreter_exponentiation, r#"2 ^ 3"#, Ok(Value::Number(8)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 49 | let _ = test_fragment!(interpreter_exponentiation, r#"2 ^ 3"#, Ok(Value::Number(8)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | test_fragment!(interpreter_division_result, r#"0/1"#, Ok(Value::Number(0)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 50 | let _ = test_fragment!(interpreter_division_result, r#"0/1"#, Ok(Value::Number(0)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | test_fragment!(interpreter_reuse_variable, r#"let a = 10; let b = a + 5;"#, Ok(Value::Number(15)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 51 | let _ = test_fragment!(interpreter_reuse_variable, r#"let a = 10; let b = a + 5;"#, Ok(Value::Number(15)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | test_fragment!(interpreter_return_variable_value, r#"let a = 2; a"#, Ok(Value::Number(2)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 | let _ = test_fragment!(interpreter_return_variable_value, r#"let a = 2; a"#, Ok(Value::Number(2)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:53:1
[INFO] [stdout]    |
[INFO] [stdout] 53 | test_fragment!(interpreter_boolean_comparison, r#"(2 > 1)"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 | let _ = test_fragment!(interpreter_boolean_comparison, r#"(2 > 1)"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | test_fragment!(interpreter_variable_string_return, r#"let s = "SomeString"; s"#, Ok(Value::String("SomeString".to_string())));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 54 | let _ = test_fragment!(interpreter_variable_string_return, r#"let s = "SomeString"; s"#, Ok(Value::String("SomeString".to_string())));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | test_fragment!(interpreter_equality_check, r#"let foo = true; let bar = false; let baz = foo == bar; return baz;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 55 | let _ = test_fragment!(interpreter_equality_check, r#"let foo = true; let bar = false; let baz = foo == bar; return baz;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | test_fragment!(interpreter_comparison_check, r#"return !(1 > 0) && true;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 57 | let _ = test_fragment!(interpreter_comparison_check, r#"return !(1 > 0) && true;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:58:1
[INFO] [stdout]    |
[INFO] [stdout] 58 | test_fragment!(conditional_simple_false, r#"1 > 2"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 58 | let _ = test_fragment!(conditional_simple_false, r#"1 > 2"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:59:1
[INFO] [stdout]    |
[INFO] [stdout] 59 | test_fragment!(conditional_simple_true, r#"2 > 1"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 59 | let _ = test_fragment!(conditional_simple_true, r#"2 > 1"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:60:1
[INFO] [stdout]    |
[INFO] [stdout] 60 | test_fragment!(conditional_boolean_equality_true, r#"true == true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 | let _ = test_fragment!(conditional_boolean_equality_true, r#"true == true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | test_fragment!(conditional_boolean_equality_false, r#"true == false"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 | let _ = test_fragment!(conditional_boolean_equality_false, r#"true == false"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | test_fragment!(conditional_variable_comparison, r#"let x = true; x == false"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 62 | let _ = test_fragment!(conditional_variable_comparison, r#"let x = true; x == false"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | test_fragment!(conditional_variable_compare_booleans, r#"let x = true; let y = false; x > y"#, Err(AsaErrorKind::Generic("Unknown operator for booleans".to_string())));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 63 | let _ = test_fragment!(conditional_variable_compare_booleans, r#"let x = true; let y = false; x > y"#, Err(AsaErrorKind::Generic("Unknown operator for booleans".to_string())));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | test_fragment!(invalid_comparison_number_boolean, r#"1 > true"#, Err(AsaErrorKind::TypeMismatch("Type error in binary expression: expected matching types".to_string())));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 65 | let _ = test_fragment!(invalid_comparison_number_boolean, r#"1 > true"#, Err(AsaErrorKind::TypeMismatch("Type error in binary expression: expected matching types".to_string())));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | test_fragment!(invalid_math_number_boolean, r#"5 - false"#, Err(AsaErrorKind::TypeMismatch("Type error in binary expression: expected matching types".to_string())));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 | let _ = test_fragment!(invalid_math_number_boolean, r#"5 - false"#, Err(AsaErrorKind::TypeMismatch("Type error in binary expression: expected matching types".to_string())));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:68:1
[INFO] [stdout]    |
[INFO] [stdout] 68 | test_fragment!(operator_precedence_example, r#"let x = 10; let y = 5; let result = x > y == true; result"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 68 | let _ = test_fragment!(operator_precedence_example, r#"let x = 10; let y = 5; let result = x > y == true; result"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | test_fragment!(precedence_complex_1, r#"((3 + 4) * 5 > 2^2) == true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 69 | let _ = test_fragment!(precedence_complex_1, r#"((3 + 4) * 5 > 2^2) == true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | test_fragment!(precedence_complex_2, r#"(10 / 2 + (7 - 3) == 2 * 3) == false"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 | let _ = test_fragment!(precedence_complex_2, r#"(10 / 2 + (7 - 3) == 2 * 3) == false"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | test_fragment!(precedence_complex_3, r#"(4^2 - 3 * 5 < 20 && 6 > 2) == true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 71 | let _ = test_fragment!(precedence_complex_3, r#"(4^2 - 3 * 5 < 20 && 6 > 2) == true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:72:1
[INFO] [stdout]    |
[INFO] [stdout] 72 | test_fragment!(precedence_complex_4, r#"((8 - 2) * 3 != 5 * 2 || 10 > 2^3) == true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 72 | let _ = test_fragment!(precedence_complex_4, r#"((8 - 2) * 3 != 5 * 2 || 10 > 2^3) == true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | test_fragment!(precedence_complex_5, r#"((6 + 3) * 2 == 15 && ((4 * 2) > 7)) == false"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 73 | let _ = test_fragment!(precedence_complex_5, r#"((6 + 3) * 2 == 15 && ((4 * 2) > 7)) == false"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:75:1
[INFO] [stdout]    |
[INFO] [stdout] 75 | test_fragment!(full_math_expression_1, r#"let x = ((2 + 3) * 4 - 8) / (2 ^ 2);"#, Ok(Value::Number(3)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 75 | let _ = test_fragment!(full_math_expression_1, r#"let x = ((2 + 3) * 4 - 8) / (2 ^ 2);"#, Ok(Value::Number(3)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:76:1
[INFO] [stdout]    |
[INFO] [stdout] 76 | test_fragment!(full_math_expression_2, r#"((1 + 2) * (3 + 4))"#, Ok(Value::Number(21)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 | let _ = test_fragment!(full_math_expression_2, r#"((1 + 2) * (3 + 4))"#, Ok(Value::Number(21)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | test_fragment!(full_math_expression_3, r#"2 ^ 3"#, Ok(Value::Number(8)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 77 | let _ = test_fragment!(full_math_expression_3, r#"2 ^ 3"#, Ok(Value::Number(8)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | test_fragment!(full_math_expression_4, r#"0 / 1"#, Ok(Value::Number(0)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 78 | let _ = test_fragment!(full_math_expression_4, r#"0 / 1"#, Ok(Value::Number(0)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | test_fragment!(full_math_expression_5, r#"let a = 10; let b = a + 5;"#, Ok(Value::Number(15)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 79 | let _ = test_fragment!(full_math_expression_5, r#"let a = 10; let b = a + 5;"#, Ok(Value::Number(15)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:81:1
[INFO] [stdout]    |
[INFO] [stdout] 81 | test_fragment!(boolean_comparison_true, r#"(2 > 1)"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 81 | let _ = test_fragment!(boolean_comparison_true, r#"(2 > 1)"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:82:1
[INFO] [stdout]    |
[INFO] [stdout] 82 | test_fragment!(boolean_comparison_false, r#"(1 > 2)"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 82 | let _ = test_fragment!(boolean_comparison_false, r#"(1 > 2)"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:83:1
[INFO] [stdout]    |
[INFO] [stdout] 83 | test_fragment!(boolean_equality_check, r#"let foo = true; let bar = false; let baz = foo == bar; return baz;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 83 | let _ = test_fragment!(boolean_equality_check, r#"let foo = true; let bar = false; let baz = foo == bar; return baz;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | test_fragment!(boolean_not_operator, r#"return !(1 > 0) && true;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 84 | let _ = test_fragment!(boolean_not_operator, r#"return !(1 > 0) && true;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:85:1
[INFO] [stdout]    |
[INFO] [stdout] 85 | test_fragment!(boolean_complex_expression, r#"(2 > 1 && 3 > 2) || (5 < 4)"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 85 | let _ = test_fragment!(boolean_complex_expression, r#"(2 > 1 && 3 > 2) || (5 < 4)"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:89:1
[INFO] [stdout]    |
[INFO] [stdout] 89 | test_fragment!(if_simple_true, r#"if true { return false; } else { return true; }"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 89 | let _ = test_fragment!(if_simple_true, r#"if true { return false; } else { return true; }"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:90:1
[INFO] [stdout]    |
[INFO] [stdout] 90 | test_fragment!(if_simple_false, r#"if false { return false; } else { return true; }"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 90 | let _ = test_fragment!(if_simple_false, r#"if false { return false; } else { return true; }"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:93:1
[INFO] [stdout]    |
[INFO] [stdout] 93 | test_fragment!(if_variable_assign_true, r#"let x = if true { return false; } else { return true; }; return x;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 93 | let _ = test_fragment!(if_variable_assign_true, r#"let x = if true { return false; } else { return true; }; return x;"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.35s
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:94:1
[INFO] [stdout]    |
[INFO] [stdout] 94 | test_fragment!(if_variable_assign_false, r#"let x = if false { return false; } else { return true; }; return x;"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 94 | let _ = test_fragment!(if_variable_assign_false, r#"let x = if false { return false; } else { return true; }; return x;"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:97:1
[INFO] [stdout]    |
[INFO] [stdout] 97 | test_fragment!(if_else_if, r#"let x = 5; if x > 5 { return 1; } else if x == 5 { return 2; } else { return 3; }"#, Ok(Value::Number(2)));
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 97 | let _ = test_fragment!(if_else_if, r#"let x = 5; if x > 5 { return 1; } else if x == 5 { return 2; } else { return 3; }"#, Ok(Value::Number(2)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:100:1
[INFO] [stdout]     |
[INFO] [stdout] 100 | test_fragment!(double_if_statement, r#"let x = 0; let y = 0; if (x < 10) { if (y < 5) { y = 5; } x = 10; } return x + y;"#, Ok(Value::Number(15)));
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 100 | let _ = test_fragment!(double_if_statement, r#"let x = 0; let y = 0; if (x < 10) { if (y < 5) { y = 5; } x = 10; } return x + y;"#, Ok(Value::Number(15)));
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:104:1
[INFO] [stdout]     |
[INFO] [stdout] 104 | test_fragment!(while_loop_decrement, r#"let x = 5; while (x > 0) { x = x - 1; } return x;"#, Ok(Value::Number(0)));
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 104 | let _ = test_fragment!(while_loop_decrement, r#"let x = 5; while (x > 0) { x = x - 1; } return x;"#, Ok(Value::Number(0)));
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | test_fragment!(double_while_loop, r#"let x = 0; let y = 0; while (x < 10) { while (y < 5) { y = y + 1; } x = x + 1; } return x + y;"#, Ok(Value::Number(15)));
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 | let _ = test_fragment!(double_while_loop, r#"let x = 0; let y = 0; while (x < 10) { while (y < 5) { y = y + 1; } x = x + 1; } return x + y;"#, Ok(Value::Number(15)));
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | test_fragment!(while_with_break, r#"let x = 0; while true { x = x + 1; if x > 5 {break;} } return x;"#, Ok(Value::Number(6)));
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 110 | let _ = test_fragment!(while_with_break, r#"let x = 0; while true { x = x + 1; if x > 5 {break;} } return x;"#, Ok(Value::Number(6)));
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:113:1
[INFO] [stdout]     |
[INFO] [stdout] 113 | / test_fragment!(while_condition_update, r#"
[INFO] [stdout] 114 | |         let result = 0;
[INFO] [stdout] 115 | |         while (result < 5) {
[INFO] [stdout] 116 | |             result = result + 1;
[INFO] [stdout] 117 | |         }
[INFO] [stdout] 118 | |         return result;
[INFO] [stdout] 119 | |     "#, Ok(Value::Number(5)));
[INFO] [stdout]     | |_____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 113 | let _ = test_fragment!(while_condition_update, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | / test_fragment!(function_return_constant, r#"
[INFO] [stdout] 123 | | fn answer() {
[INFO] [stdout] 124 | |     return 42;
[INFO] [stdout] ...   |
[INFO] [stdout] 127 | | "#, Ok(Value::Number(42)));
[INFO] [stdout]     | |__________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 122 | let _ = test_fragment!(function_return_constant, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:130:1
[INFO] [stdout]     |
[INFO] [stdout] 130 | / test_fragment!(function_add, r#"
[INFO] [stdout] 131 | | fn add(a, b) {
[INFO] [stdout] 132 | |     return a + b;
[INFO] [stdout] ...   |
[INFO] [stdout] 135 | | "#, Ok(Value::Number(8)));
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 130 | let _ = test_fragment!(function_add, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:138:1
[INFO] [stdout]     |
[INFO] [stdout] 138 | / test_fragment!(function_calculate, r#"
[INFO] [stdout] 139 | | fn calculate(a, b) {
[INFO] [stdout] 140 | |     let sum = a + b;
[INFO] [stdout] 141 | |     let product = a * b;
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | | return calculate(5, 3);
[INFO] [stdout] 145 | | "#, Ok(Value::Number(23)));
[INFO] [stdout]     | |__________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 138 | let _ = test_fragment!(function_calculate, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | / test_fragment!(function_call_chain, r#"
[INFO] [stdout] 149 | | fn double(x) {
[INFO] [stdout] 150 | |     return x * 2;
[INFO] [stdout] ...   |
[INFO] [stdout] 157 | | return quadruple(10); // double(10) = 20, double(20) = 40
[INFO] [stdout] 158 | | "#, Ok(Value::Number(40)));
[INFO] [stdout]     | |__________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 148 | let _ = test_fragment!(function_call_chain, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:161:1
[INFO] [stdout]     |
[INFO] [stdout] 161 | / test_fragment!(function_default_parameter, r#"
[INFO] [stdout] 162 | | fn greet(name = "Guest") {
[INFO] [stdout] 163 | |     return "Hello, " + name;
[INFO] [stdout] ...   |
[INFO] [stdout] 166 | | "#, Ok(Value::String("Hello, Guest".to_string())));
[INFO] [stdout]     | |__________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 161 | let _ = test_fragment!(function_default_parameter, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:169:1
[INFO] [stdout]     |
[INFO] [stdout] 169 | / test_fragment!(function_default_parameter_with_arg, r#"
[INFO] [stdout] 170 | | fn greet(name = "Guest") {
[INFO] [stdout] 171 | |     return "Hello, " + name;
[INFO] [stdout] ...   |
[INFO] [stdout] 174 | | "#, Ok(Value::String("Hello, Alice".to_string())));
[INFO] [stdout]     | |__________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 169 | let _ = test_fragment!(function_default_parameter_with_arg, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / test_fragment!(function_array_sum, r#"
[INFO] [stdout] 177 | |     let y = [1, 2, 3];
[INFO] [stdout] 178 | |     let i = 0;
[INFO] [stdout] 179 | |     let x = 0;
[INFO] [stdout] ...   |
[INFO] [stdout] 184 | |     return x;"#, Ok(Value::Number(6)));
[INFO] [stdout]     | |______________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 176 | let _ = test_fragment!(function_array_sum, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:186:1
[INFO] [stdout]     |
[INFO] [stdout] 186 | / test_fragment!(function_recursive_factorial, r#"
[INFO] [stdout] 187 | | fn factorial(n) {
[INFO] [stdout] 188 | |     if n == 0 {
[INFO] [stdout] 189 | |         return 1;
[INFO] [stdout] ...   |
[INFO] [stdout] 195 | | return factorial(5);
[INFO] [stdout] 196 | | "#, Ok(Value::Number(120)));
[INFO] [stdout]     | |___________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 186 | let _ = test_fragment!(function_recursive_factorial, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/interpreter.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | / test_fragment!(function_recursive_fibonacci, r#"
[INFO] [stdout] 199 | | fn fibonacci(n) {
[INFO] [stdout] 200 | |     if n <= 1 {
[INFO] [stdout] 201 | |         return n;
[INFO] [stdout] ...   |
[INFO] [stdout] 209 | | return fibonacci(10);
[INFO] [stdout] 210 | |   "#, Ok(Value::Number(55)));
[INFO] [stdout]     | |____________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 198 | let _ = test_fragment!(function_recursive_fibonacci, r#"
[INFO] [stdout]     | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4add649f4ceb4530c6315a4a9ad99bbf3d8ab43ef6f1d273acbc6e568d94ea41", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4add649f4ceb4530c6315a4a9ad99bbf3d8ab43ef6f1d273acbc6e568d94ea41", kill_on_drop: false }`
[INFO] [stdout] 4add649f4ceb4530c6315a4a9ad99bbf3d8ab43ef6f1d273acbc6e568d94ea41
