[INFO] cloning repository https://github.com/nickcarnevale/Asa-Interpreter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nickcarnevale/Asa-Interpreter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnickcarnevale%2FAsa-Interpreter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnickcarnevale%2FAsa-Interpreter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 81a53709c84ca961d226770ef2120efe302f1559
[INFO] checking nickcarnevale/Asa-Interpreter against master#36b21637e93b038453924d3c66821089e71d8baa for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnickcarnevale%2FAsa-Interpreter" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nickcarnevale/Asa-Interpreter
[INFO] finished tweaking git repo https://github.com/nickcarnevale/Asa-Interpreter
[INFO] tweaked toml for git repo https://github.com/nickcarnevale/Asa-Interpreter written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nickcarnevale/Asa-Interpreter on toolchain 36b21637e93b038453924d3c66821089e71d8baa
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nickcarnevale/Asa-Interpreter 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" "+36b21637e93b038453924d3c66821089e71d8baa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e883c913d9ed0e286b64aad01a99b53c491f84c42b3ed05549651d75c4d2e347
[INFO] running `Command { std: "docker" "start" "-a" "e883c913d9ed0e286b64aad01a99b53c491f84c42b3ed05549651d75c4d2e347", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e883c913d9ed0e286b64aad01a99b53c491f84c42b3ed05549651d75c4d2e347", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e883c913d9ed0e286b64aad01a99b53c491f84c42b3ed05549651d75c4d2e347", kill_on_drop: false }`
[INFO] [stdout] e883c913d9ed0e286b64aad01a99b53c491f84c42b3ed05549651d75c4d2e347
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9bd2fb96e1ef41d1b489715c7594bf7f5f9f4242bfc2589c72d474316ca99986
[INFO] running `Command { std: "docker" "start" "-a" "9bd2fb96e1ef41d1b489715c7594bf7f5f9f4242bfc2589c72d474316ca99986", kill_on_drop: false }`
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking memchr v2.7.2
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking asalang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `nom::sequence::tuple`
[INFO] [stdout]  --> src/parser.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nom::sequence::tuple;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/parser.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alphanumeric1`, `digit1`, and `tag`
[INFO] [stdout]   --> src/parser.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 |   bytes::complete::{tag},
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 17 |   character::complete::{alphanumeric1, digit1},
[INFO] [stdout]    |                         ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::sequence::tuple`
[INFO] [stdout]  --> src/parser.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nom::sequence::tuple;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/parser.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alphanumeric1`, `digit1`, and `tag`
[INFO] [stdout]   --> src/parser.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 |   bytes::complete::{tag},
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 17 |   character::complete::{alphanumeric1, digit1},
[INFO] [stdout]    |                         ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt`
[INFO] [stdout]    --> src/interpreter.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let rt = self as *mut Interpreter;
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_rt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_value`
[INFO] [stdout]    --> src/interpreter.rs:248:17
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let mut last_value = Value::Bool(false);
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `returned`
[INFO] [stdout]    --> src/interpreter.rs:249:17
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut returned = false;
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_returned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/interpreter.rs:325:7
[INFO] [stdout]     |
[INFO] [stdout] 325 |       x => {
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let mut new_frame = HashMap::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let mut last_value = Value::Bool(false);
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut returned = false;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `else_if`
[INFO] [stdout]    --> src/parser.rs:521:7
[INFO] [stdout]     |
[INFO] [stdout] 521 |   let else_if = if else_if.is_empty(){
[INFO] [stdout]     |       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_if`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:517:15
[INFO] [stdout]     |
[INFO] [stdout] 517 |   let (input, mut else_if) = many0(else_if)(input)?;
[INFO] [stdout]     |               ----^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lexer.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         x => TokenKind::Other,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt`
[INFO] [stdout]    --> src/interpreter.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let rt = self as *mut Interpreter;
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_rt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_value`
[INFO] [stdout]    --> src/interpreter.rs:248:17
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let mut last_value = Value::Bool(false);
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `returned`
[INFO] [stdout]    --> src/interpreter.rs:249:17
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut returned = false;
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_returned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/interpreter.rs:325:7
[INFO] [stdout]     |
[INFO] [stdout] 325 |       x => {
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let mut new_frame = HashMap::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter.rs:248:13
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let mut last_value = Value::Bool(false);
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut returned = false;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `else_if`
[INFO] [stdout]    --> src/parser.rs:521:7
[INFO] [stdout]     |
[INFO] [stdout] 521 |   let else_if = if else_if.is_empty(){
[INFO] [stdout]     |       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_if`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:517:15
[INFO] [stdout]     |
[INFO] [stdout] 517 |   let (input, mut else_if) = many0(else_if)(input)?;
[INFO] [stdout]     |               ----^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lexer.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |         x => TokenKind::Other,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::IResult`
[INFO] [stdout]  --> tests/interpreter.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nom::IResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 70 | test_program!(interpreter_define_function, r#"fn main(){return foo();} fn foo(){return 5;}"#, Ok(Value::Number(5)));
[INFO] [stdout]    | ------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]   --> src/main.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     Ok((tokens, tree)) => {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/main.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 |       let result = interpreter.exec(&tree);
[INFO] [stdout]    |           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 71 | test_program!(interpreter_define_function_args, r#"fn main(){return foo(1,2);} fn foo(a,b){return a+b;}"#, Ok(Value::Number(3)));
[INFO] [stdout]    | -------------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |             let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 72 | / test_program!(interpreter_define_function_more_statement, r#"fn main() {
[INFO] [stdout] 73 | |   return foo();
[INFO] [stdout] 74 | | }
[INFO] [stdout] 75 | | fn foo(){
[INFO] [stdout] 76 | |   let x = 5;
[INFO] [stdout] 77 | |   return x;
[INFO] [stdout] 78 | | }"#, Ok(Value::Number(5)));
[INFO] [stdout]    | |__________________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |             let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 79 | / test_program!(interpreter_define_full_program, r#"fn foo(a,b,c) {
[INFO] [stdout] 80 | |   let x = a + 1;     
[INFO] [stdout] 81 | |   let y = bar(c + b); 
[INFO] [stdout] 82 | |   return x + y;
[INFO] [stdout] ...  |
[INFO] [stdout] 90 | |   return foo(1,2,3);  
[INFO] [stdout] 91 | | }"#, Ok(Value::Number(10)));
[INFO] [stdout]    | |___________________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 95 | test_program!(hw5_test_1, r#"fn main() { return 10 + 5; }"#, Ok(Value::Number(15)));
[INFO] [stdout]    | ----------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]   --> src/main.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     Ok((tokens, tree)) => {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 96 | test_program!(hw5_test_2, r#"fn main() { return 20 - 7; }"#, Ok(Value::Number(13)));
[INFO] [stdout]    | ----------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 97 | test_program!(hw5_test_3, r#"fn main() { let x = 30; let y = 15; return x - y; }"#, Ok(Value::Number(15)));
[INFO] [stdout]    | ---------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 98 | test_program!(hw5_test_4, r#"fn main() { let x = 100; let y = 50; let z = x + y; return z; }"#, Ok(Value::Number(150)));
[INFO] [stdout]    | ----------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 99 | test_program!(hw5_test_5, r#"fn main() { let x = 50; let y = 20; let z = 10; return 65; }"#, Ok(Value::Number(65)));
[INFO] [stdout]    | ------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 100 | test_program!(hw5_test_6, r#"fn main() { let x = 50; return x; }"#, Ok(Value::Number(50)));
[INFO] [stdout]     | ------------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 107 | test_program!(final_test_1, r#"fn main() { return 1>2; }"#, Ok(Value::Bool(false)));
[INFO] [stdout]     | ----------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 108 | test_program!(final_test_2, r#"fn main() { return a(); } fn a(){let x = true && false; return x;}"#, Ok(Value::Bool(false)));
[INFO] [stdout]     | ---------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 109 | test_program!(final_test_3, r#"fn main() { let x = 2; let y = 3; let z = x <= y; let ab = a(); let zz = z || ab; return zz; } fn a(){let c = true && false; return c;}"#, Ok(Value::Bool(true)));
[INFO] [stdout]     | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 112 | test_program!(final_test_4, r#"fn main() { return true>2; }"#, Err(AsaErrorKind::TypeMismatch));
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 113 | test_program!(final_test_5, r#"fn main() { return 1||2; }"#, Err(AsaErrorKind::TypeMismatch));
[INFO] [stdout]     | --------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 116 | test_program!(final_test_6, r#"fn main() { if (1<2) {return 3;} else{return 5;}; }"#, Ok(Value::Number(3)));
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 117 | test_program!(final_test_7, r#"fn main() { if (1<2) {let x = 1; return x;} else{return 5;}; }"#, Ok(Value::Number(1)));
[INFO] [stdout]     | ---------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/main.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 |       let result = interpreter.exec(&tree);
[INFO] [stdout]    |           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 120 | test_program!(final_test_8, r#"fn main() { if (1>2) {return 3;} else{return 5;}; }"#, Ok(Value::Number(5)));
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 123 | test_program!(final_test_9, r#"fn main() { if (1>2) {return 3;} else if (1 < 2) {return 6;} else{return 5;}; }"#, Ok(Value::Number(6)));
[INFO] [stdout]     | --------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compile_result`
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout] 37  |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result`
[INFO] [stdout] ...
[INFO] [stdout] 126 | test_program!(final_test_10, r#"fn main() { if (1>2) {return 3;} else if (1 == 2){return 2;} else if (1 < 2) {return 6;} else{return 5;}; }"#, Ok(Value::Number(6)));
[INFO] [stdout]     | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 | test_fragment!(interpreter_numeric, r#"123"#, Ok(Value::Number(123)));
[INFO] [stdout]    | --------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 | test_fragment!(interpreter_string, r#""hello world""#, Ok(Value::String("helloworld".to_string())));
[INFO] [stdout]    | --------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 | test_fragment!(interpreter_bool_true, r#"true"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | ----------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 | test_fragment!(interpreter_bool_false, r#"false"#, Ok(Value::Bool(false)));
[INFO] [stdout]    | -------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 | test_fragment!(interpreter_identifier, r#"x"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | ------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 | test_fragment!(interpreter_function_call, r#"foo()"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | ------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 | test_fragment!(interpreter_function_call_one_arg, r#"foo(a)"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | ---------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 | test_fragment!(interpreter_function_call_more_args, r#"foo(a,b,c)"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | ---------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 | test_fragment!(interpreter_variable_define, r#"let x = 123;"#, Ok(Value::Number(123)));
[INFO] [stdout]    | -------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 | test_fragment!(interpreter_variable_init, r#"let x = 1;"#, Ok(Value::Number(1)));
[INFO] [stdout]    | -------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 | test_fragment!(interpreter_variable_bool, r#"let bool = true;"#, Ok(Value::Bool(true)));
[INFO] [stdout]    | --------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 | test_fragment!(interpreter_variable_string, r#"let string = "Hello World";"#, Ok(Value::String("HelloWorld".to_string())));
[INFO] [stdout]    | -------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 | test_fragment!(interpreter_variable_init_no_space, r#"let x=1;"#, Ok(Value::Number(1)));
[INFO] [stdout]    | --------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 | test_fragment!(interpreter_math, r#"1 + 1"#, Ok(Value::Number(2)));
[INFO] [stdout]    | ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 | test_fragment!(interpreter_math_no_space, r#"1-1"#, Ok(Value::Number(0)));
[INFO] [stdout]    | ------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 | test_fragment!(interpreter_math_multiply, r#"2 + 4"#, Ok(Value::Number(6)));
[INFO] [stdout]    | --------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 | test_fragment!(interpreter_assign_math, r#"let x = 1 + 1;"#, Ok(Value::Number(2)));
[INFO] [stdout]    | ---------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 | test_fragment!(interpreter_assign_function, r#"let x = foo();"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | ------------------------------------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 |           std::io::stdout().flush();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 | test_fragment!(interpreter_assign_function_arguments, r#"let x = foo(a,b,c);"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | --------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `test_fragment` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |           let _ = std::io::stdout().flush();
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.97s
[INFO] running `Command { std: "docker" "inspect" "9bd2fb96e1ef41d1b489715c7594bf7f5f9f4242bfc2589c72d474316ca99986", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9bd2fb96e1ef41d1b489715c7594bf7f5f9f4242bfc2589c72d474316ca99986", kill_on_drop: false }`
[INFO] [stdout] 9bd2fb96e1ef41d1b489715c7594bf7f5f9f4242bfc2589c72d474316ca99986
