[INFO] cloning repository https://github.com/coneal273/Interpreter-Project
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/coneal273/Interpreter-Project" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconeal273%2FInterpreter-Project", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconeal273%2FInterpreter-Project'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2bfd10613640be7fc2f5bc1076ebf4ae579113f6
[INFO] testing coneal273/Interpreter-Project against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconeal273%2FInterpreter-Project" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/coneal273/Interpreter-Project
[INFO] finished tweaking git repo https://github.com/coneal273/Interpreter-Project
[INFO] tweaked toml for git repo https://github.com/coneal273/Interpreter-Project written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/coneal273/Interpreter-Project on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/coneal273/Interpreter-Project 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" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a82dbaad91d36bff2e32bc3e4d5a24bfa502ddbcaf54d176f2181d4a0f69fbc9
[INFO] running `Command { std: "docker" "start" "-a" "a82dbaad91d36bff2e32bc3e4d5a24bfa502ddbcaf54d176f2181d4a0f69fbc9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a82dbaad91d36bff2e32bc3e4d5a24bfa502ddbcaf54d176f2181d4a0f69fbc9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a82dbaad91d36bff2e32bc3e4d5a24bfa502ddbcaf54d176f2181d4a0f69fbc9", kill_on_drop: false }`
[INFO] [stdout] a82dbaad91d36bff2e32bc3e4d5a24bfa502ddbcaf54d176f2181d4a0f69fbc9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 536220a7184b40081722ca9bb131c2d3504504d52645f5f9a2294479b58a68fe
[INFO] running `Command { std: "docker" "start" "-a" "536220a7184b40081722ca9bb131c2d3504504d52645f5f9a2294479b58a68fe", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling 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)]` (part of `#[warn(unused)]`) 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`, `char as char_completer`, `combinator::opt`, `delimited`, `digit1`, and `tag`
[INFO] [stdout]   --> src/parser.rs:14:3
[INFO] [stdout]    |
[INFO] [stdout] 14 |   combinator::opt, 
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |   multi::{many1, many0},
[INFO] [stdout] 16 |   bytes::complete::{tag},
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 17 |   sequence::{delimited, preceded},
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 18 |   character::complete::{char as char_completer, alphanumeric1, digit1},
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/interpreter.rs:252:13
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let result = if let Value::Bool(true) = condition {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/interpreter.rs:283:7
[INFO] [stdout]     |
[INFO] [stdout] 283 |       x => {
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:209:15
[INFO] [stdout]     |
[INFO] [stdout] 209 |   let (input, x) = t_equal(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:210:15
[INFO] [stdout]     |
[INFO] [stdout] 210 |   let (input, x) = t_equal(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:368:15
[INFO] [stdout]     |
[INFO] [stdout] 368 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:369:15
[INFO] [stdout]     |
[INFO] [stdout] 369 |   let (input, x) = t_return(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:371:15
[INFO] [stdout]     |
[INFO] [stdout] 371 |   let (input, x) = t_semicolon(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:372:15
[INFO] [stdout]     |
[INFO] [stdout] 372 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:377:15
[INFO] [stdout]     |
[INFO] [stdout] 377 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:378:15
[INFO] [stdout]     |
[INFO] [stdout] 378 |   let (input, x) = t_return(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:380:15
[INFO] [stdout]     |
[INFO] [stdout] 380 |   let (input, x) = t_semicolon(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:381:15
[INFO] [stdout]     |
[INFO] [stdout] 381 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:386:15
[INFO] [stdout]     |
[INFO] [stdout] 386 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:387:15
[INFO] [stdout]     |
[INFO] [stdout] 387 |   let (input, x) = t_return(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:389:15
[INFO] [stdout]     |
[INFO] [stdout] 389 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]    --> src/parser.rs:402:15
[INFO] [stdout]     |
[INFO] [stdout] 402 |   let (input, first) = t_newline(input)?;
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]    --> src/parser.rs:403:15
[INFO] [stdout]     |
[INFO] [stdout] 403 |   let (input, second) = t_tab(input)?;
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:409:15
[INFO] [stdout]     |
[INFO] [stdout] 409 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:412:15
[INFO] [stdout]     |
[INFO] [stdout] 412 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:419:15
[INFO] [stdout]     |
[INFO] [stdout] 419 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:421:15
[INFO] [stdout]     |
[INFO] [stdout] 421 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:423:15
[INFO] [stdout]     |
[INFO] [stdout] 423 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:424:15
[INFO] [stdout]     |
[INFO] [stdout] 424 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:425:15
[INFO] [stdout]     |
[INFO] [stdout] 425 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:427:15
[INFO] [stdout]     |
[INFO] [stdout] 427 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:432:15
[INFO] [stdout]     |
[INFO] [stdout] 432 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:435:15
[INFO] [stdout]     |
[INFO] [stdout] 435 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:436:15
[INFO] [stdout]     |
[INFO] [stdout] 436 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:439:15
[INFO] [stdout]     |
[INFO] [stdout] 439 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:446:15
[INFO] [stdout]     |
[INFO] [stdout] 446 |   let (input, x) = t_let(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:448:15
[INFO] [stdout]     |
[INFO] [stdout] 448 |   let (input, x) = t_equal(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:449:15
[INFO] [stdout]     |
[INFO] [stdout] 449 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:452:15
[INFO] [stdout]     |
[INFO] [stdout] 452 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lexer.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         32 | 10 | 9=> TokenKind::WhiteSpace,
[INFO] [stdout]     |         ----------- matches all the relevant values
[INFO] [stdout] 163 |         10 => TokenKind::NewLine,
[INFO] [stdout]     |         ^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lexer.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         32 | 10 | 9=> TokenKind::WhiteSpace,
[INFO] [stdout]     |         ----------- matches all the relevant values
[INFO] [stdout] 163 |         10 => TokenKind::NewLine,
[INFO] [stdout] 164 |         9 => TokenKind::Tab,
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lexer.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |         x => TokenKind::Other,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.85s
[INFO] running `Command { std: "docker" "inspect" "536220a7184b40081722ca9bb131c2d3504504d52645f5f9a2294479b58a68fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "536220a7184b40081722ca9bb131c2d3504504d52645f5f9a2294479b58a68fe", kill_on_drop: false }`
[INFO] [stdout] 536220a7184b40081722ca9bb131c2d3504504d52645f5f9a2294479b58a68fe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 384c6d3c24be029232612a913c783d40aa45862a5941de78559730ea11e6de25
[INFO] running `Command { std: "docker" "start" "-a" "384c6d3c24be029232612a913c783d40aa45862a5941de78559730ea11e6de25", kill_on_drop: false }`
[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)]` (part of `#[warn(unused)]`) 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`, `char as char_completer`, `combinator::opt`, `delimited`, `digit1`, and `tag`
[INFO] [stdout]   --> src/parser.rs:14:3
[INFO] [stdout]    |
[INFO] [stdout] 14 |   combinator::opt, 
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |   multi::{many1, many0},
[INFO] [stdout] 16 |   bytes::complete::{tag},
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 17 |   sequence::{delimited, preceded},
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 18 |   character::complete::{char as char_completer, alphanumeric1, digit1},
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/interpreter.rs:252:13
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let result = if let Value::Bool(true) = condition {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/interpreter.rs:283:7
[INFO] [stdout]     |
[INFO] [stdout] 283 |       x => {
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:209:15
[INFO] [stdout]     |
[INFO] [stdout] 209 |   let (input, x) = t_equal(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling asalang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:210:15
[INFO] [stdout]     |
[INFO] [stdout] 210 |   let (input, x) = t_equal(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:368:15
[INFO] [stdout]     |
[INFO] [stdout] 368 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:369:15
[INFO] [stdout]     |
[INFO] [stdout] 369 |   let (input, x) = t_return(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:371:15
[INFO] [stdout]     |
[INFO] [stdout] 371 |   let (input, x) = t_semicolon(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:372:15
[INFO] [stdout]     |
[INFO] [stdout] 372 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:377:15
[INFO] [stdout]     |
[INFO] [stdout] 377 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:378:15
[INFO] [stdout]     |
[INFO] [stdout] 378 |   let (input, x) = t_return(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:380:15
[INFO] [stdout]     |
[INFO] [stdout] 380 |   let (input, x) = t_semicolon(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:381:15
[INFO] [stdout]     |
[INFO] [stdout] 381 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:386:15
[INFO] [stdout]     |
[INFO] [stdout] 386 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:387:15
[INFO] [stdout]     |
[INFO] [stdout] 387 |   let (input, x) = t_return(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:389:15
[INFO] [stdout]     |
[INFO] [stdout] 389 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]    --> src/parser.rs:402:15
[INFO] [stdout]     |
[INFO] [stdout] 402 |   let (input, first) = t_newline(input)?;
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]    --> src/parser.rs:403:15
[INFO] [stdout]     |
[INFO] [stdout] 403 |   let (input, second) = t_tab(input)?;
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:409:15
[INFO] [stdout]     |
[INFO] [stdout] 409 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:412:15
[INFO] [stdout]     |
[INFO] [stdout] 412 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:419:15
[INFO] [stdout]     |
[INFO] [stdout] 419 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:421:15
[INFO] [stdout]     |
[INFO] [stdout] 421 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:423:15
[INFO] [stdout]     |
[INFO] [stdout] 423 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:424:15
[INFO] [stdout]     |
[INFO] [stdout] 424 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:425:15
[INFO] [stdout]     |
[INFO] [stdout] 425 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:427:15
[INFO] [stdout]     |
[INFO] [stdout] 427 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:432:15
[INFO] [stdout]     |
[INFO] [stdout] 432 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:435:15
[INFO] [stdout]     |
[INFO] [stdout] 435 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:436:15
[INFO] [stdout]     |
[INFO] [stdout] 436 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:439:15
[INFO] [stdout]     |
[INFO] [stdout] 439 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:446:15
[INFO] [stdout]     |
[INFO] [stdout] 446 |   let (input, x) = t_let(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:448:15
[INFO] [stdout]     |
[INFO] [stdout] 448 |   let (input, x) = t_equal(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:449:15
[INFO] [stdout]     |
[INFO] [stdout] 449 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:452:15
[INFO] [stdout]     |
[INFO] [stdout] 452 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lexer.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         32 | 10 | 9=> TokenKind::WhiteSpace,
[INFO] [stdout]     |         ----------- matches all the relevant values
[INFO] [stdout] 163 |         10 => TokenKind::NewLine,
[INFO] [stdout]     |         ^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lexer.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         32 | 10 | 9=> TokenKind::WhiteSpace,
[INFO] [stdout]     |         ----------- matches all the relevant values
[INFO] [stdout] 163 |         10 => TokenKind::NewLine,
[INFO] [stdout] 164 |         9 => TokenKind::Tab,
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lexer.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |         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::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)]` (part of `#[warn(unused)]`) 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`, `char as char_completer`, `combinator::opt`, `delimited`, `digit1`, and `tag`
[INFO] [stdout]   --> src/parser.rs:14:3
[INFO] [stdout]    |
[INFO] [stdout] 14 |   combinator::opt, 
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |   multi::{many1, many0},
[INFO] [stdout] 16 |   bytes::complete::{tag},
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 17 |   sequence::{delimited, preceded},
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 18 |   character::complete::{char as char_completer, alphanumeric1, digit1},
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/interpreter.rs:252:13
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let result = if let Value::Bool(true) = condition {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/interpreter.rs:283:7
[INFO] [stdout]     |
[INFO] [stdout] 283 |       x => {
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:209:15
[INFO] [stdout]     |
[INFO] [stdout] 209 |   let (input, x) = t_equal(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:210:15
[INFO] [stdout]     |
[INFO] [stdout] 210 |   let (input, x) = t_equal(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:368:15
[INFO] [stdout]     |
[INFO] [stdout] 368 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:369:15
[INFO] [stdout]     |
[INFO] [stdout] 369 |   let (input, x) = t_return(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:371:15
[INFO] [stdout]     |
[INFO] [stdout] 371 |   let (input, x) = t_semicolon(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:372:15
[INFO] [stdout]     |
[INFO] [stdout] 372 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:377:15
[INFO] [stdout]     |
[INFO] [stdout] 377 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:378:15
[INFO] [stdout]     |
[INFO] [stdout] 378 |   let (input, x) = t_return(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:380:15
[INFO] [stdout]     |
[INFO] [stdout] 380 |   let (input, x) = t_semicolon(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:381:15
[INFO] [stdout]     |
[INFO] [stdout] 381 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:386:15
[INFO] [stdout]     |
[INFO] [stdout] 386 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:387:15
[INFO] [stdout]     |
[INFO] [stdout] 387 |   let (input, x) = t_return(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:389:15
[INFO] [stdout]     |
[INFO] [stdout] 389 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]    --> src/parser.rs:402:15
[INFO] [stdout]     |
[INFO] [stdout] 402 |   let (input, first) = t_newline(input)?;
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]    --> src/parser.rs:403:15
[INFO] [stdout]     |
[INFO] [stdout] 403 |   let (input, second) = t_tab(input)?;
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:409:15
[INFO] [stdout]     |
[INFO] [stdout] 409 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:412:15
[INFO] [stdout]     |
[INFO] [stdout] 412 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:419:15
[INFO] [stdout]     |
[INFO] [stdout] 419 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:421:15
[INFO] [stdout]     |
[INFO] [stdout] 421 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:423:15
[INFO] [stdout]     |
[INFO] [stdout] 423 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:424:15
[INFO] [stdout]     |
[INFO] [stdout] 424 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:425:15
[INFO] [stdout]     |
[INFO] [stdout] 425 |   let (input, x) = t_left_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:427:15
[INFO] [stdout]     |
[INFO] [stdout] 427 |   let (input, x) = t_right_curly(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:432:15
[INFO] [stdout]     |
[INFO] [stdout] 432 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:435:15
[INFO] [stdout]     |
[INFO] [stdout] 435 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:436:15
[INFO] [stdout]     |
[INFO] [stdout] 436 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:439:15
[INFO] [stdout]     |
[INFO] [stdout] 439 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:446:15
[INFO] [stdout]     |
[INFO] [stdout] 446 |   let (input, x) = t_let(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:448:15
[INFO] [stdout]     |
[INFO] [stdout] 448 |   let (input, x) = t_equal(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:449:15
[INFO] [stdout]     |
[INFO] [stdout] 449 |   let (input, x) = t_if(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/parser.rs:452:15
[INFO] [stdout]     |
[INFO] [stdout] 452 |   let (input, x) = t_else(input)?;
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[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]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 | 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] help: `compile_result` is captured in macro and introduced a unused variable
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 | 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]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) 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: `compile_result`
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 | 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] help: `compile_result` is captured in macro and introduced a unused variable
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 | 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]    = 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]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 | / test_program!(interpreter_define_function_more_statement, r#"fn main() {
[INFO] [stdout] 86 | |   return foo();
[INFO] [stdout] 87 | | }
[INFO] [stdout] 88 | | fn foo(){
[INFO] [stdout] 89 | |   let x = 5;
[INFO] [stdout] 90 | |   return x;
[INFO] [stdout] 91 | | }"#, Ok(Value::Number(5)));
[INFO] [stdout]    | |__________________________- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] help: `compile_result` is captured in macro and introduced a unused variable
[INFO] [stdout]   --> tests/interpreter.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |             let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 | / test_program!(interpreter_define_function_more_statement, r#"fn main() {
[INFO] [stdout] 86 | |   return foo();
[INFO] [stdout] 87 | | }
[INFO] [stdout] 88 | | fn foo(){
[INFO] [stdout] 89 | |   let x = 5;
[INFO] [stdout] 90 | |   return x;
[INFO] [stdout] 91 | | }"#, Ok(Value::Number(5)));
[INFO] [stdout]    | |__________________________- in this macro invocation
[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]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 | / test_program!(interpreter_define_full_program, r#"fn foo(a,b,c) {
[INFO] [stdout]  93 | |   let x = a + 1;     
[INFO] [stdout]  94 | |   let y = bar(c + b); 
[INFO] [stdout]  95 | |   return x + y;
[INFO] [stdout] ...   |
[INFO] [stdout] 103 | |   return foo(1,2,3);  
[INFO] [stdout] 104 | | }"#, Ok(Value::Number(10)));
[INFO] [stdout]     | |___________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `compile_result` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> tests/interpreter.rs:37:15
[INFO] [stdout]     |
[INFO] [stdout]  37 |             let compile_result = interpreter.exec(&tree)?;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 | / test_program!(interpreter_define_full_program, r#"fn foo(a,b,c) {
[INFO] [stdout]  93 | |   let x = a + 1;     
[INFO] [stdout]  94 | |   let y = bar(c + b); 
[INFO] [stdout]  95 | |   return x + y;
[INFO] [stdout] ...   |
[INFO] [stdout] 103 | |   return foo(1,2,3);  
[INFO] [stdout] 104 | | }"#, Ok(Value::Number(10)));
[INFO] [stdout]     | |___________________________- in this macro invocation
[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: unreachable pattern
[INFO] [stdout]    --> src/lexer.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         32 | 10 | 9=> TokenKind::WhiteSpace,
[INFO] [stdout]     |         ----------- matches all the relevant values
[INFO] [stdout] 163 |         10 => TokenKind::NewLine,
[INFO] [stdout]     |         ^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lexer.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         32 | 10 | 9=> TokenKind::WhiteSpace,
[INFO] [stdout]     |         ----------- matches all the relevant values
[INFO] [stdout] 163 |         10 => TokenKind::NewLine,
[INFO] [stdout] 164 |         9 => TokenKind::Tab,
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lexer.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |         x => TokenKind::Other,
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[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_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] 49 | 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:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | test_fragment!(interpreter_string, r#""helloworld""#, Ok(Value::String("helloworld".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] 50 | let _ = test_fragment!(interpreter_string, r#""helloworld""#, Ok(Value::String("helloworld".to_string())));
[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_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] 51 | 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:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | 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] 52 | 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:53:1
[INFO] [stdout]    |
[INFO] [stdout] 53 | test_fragment!(interpreter_identifier, r#"x"#, Err(AsaErrorKind::UndefinedVariable));
[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_identifier, r#"x"#, Err(AsaErrorKind::UndefinedVariable));
[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_function_call, r#"foo()"#, 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] 54 | let _ = test_fragment!(interpreter_function_call, r#"foo()"#, Err(AsaErrorKind::UndefinedFunction));
[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_function_call_one_arg, r#"foo(a)"#, 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] 55 | let _ = test_fragment!(interpreter_function_call_one_arg, r#"foo(a)"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | test_fragment!(interpreter_function_call_more_args, r#"foo(a,b,c)"#, 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] 56 | let _ = test_fragment!(interpreter_function_call_more_args, r#"foo(a,b,c)"#, Err(AsaErrorKind::UndefinedFunction));
[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_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] 57 | 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:58:1
[INFO] [stdout]    |
[INFO] [stdout] 58 | 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] 58 | 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:59:1
[INFO] [stdout]    |
[INFO] [stdout] 59 | 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] 59 | 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:60:1
[INFO] [stdout]    |
[INFO] [stdout] 60 | test_fragment!(interpreter_variable_string, r#"let string = "HelloWorld";"#, Ok(Value::String("HelloWorld".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] 60 | let _ = test_fragment!(interpreter_variable_string, r#"let string = "HelloWorld";"#, Ok(Value::String("HelloWorld".to_string())));
[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!(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] 61 | 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:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | 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] 62 | 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:63:1
[INFO] [stdout]    |
[INFO] [stdout] 63 | 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] 63 | 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:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | 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] 64 | 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:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | 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] 65 | 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:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 | test_fragment!(interpreter_assign_function, r#"let x = foo();"#, 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] 66 | let _ = test_fragment!(interpreter_assign_function, r#"let x = foo();"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/interpreter.rs:67:1
[INFO] [stdout]    |
[INFO] [stdout] 67 | test_fragment!(interpreter_assign_function_arguments, r#"let x = foo(a,b,c);"#, 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] 67 | let _ = test_fragment!(interpreter_assign_function_arguments, r#"let x = foo(a,b,c);"#, Err(AsaErrorKind::UndefinedFunction));
[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!(interpreter_if_expression_true, r#"if 2 > 3 {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] 69 | let _ = test_fragment!(interpreter_if_expression_true, r#"if 2 > 3 {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:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | test_fragment!(interpreter_if_expression_false, r#"if 3 > 2 {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] 70 | let _ = test_fragment!(interpreter_if_expression_false, r#"if 3 > 2 {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:72:1
[INFO] [stdout]    |
[INFO] [stdout] 72 | test_fragment!(interpreter_if_else_1, r#"if 3 > 2 {return 1;} else if x == y {return 2;} else {return 3}"#,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] 72 | let _ = test_fragment!(interpreter_if_else_1, r#"if 3 > 2 {return 1;} else if x == y {return 2;} else {return 3}"#,Ok(Value::Number(1)));
[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!(interpreter_if_else_2, r#"if 2 > 2 {return 1;} else if 2 == 2 {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] 73 | let _ = test_fragment!(interpreter_if_else_2, r#"if 2 > 2 {return 1;} else if 2 == 2 {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:74:1
[INFO] [stdout]    |
[INFO] [stdout] 74 | test_fragment!(interpreter_if_else_3, r#"if 2 > 3 {return 1;} else if 2 == 3 {return 2;} else {return 3}"#,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] 74 | let _ = test_fragment!(interpreter_if_else_3, r#"if 2 > 3 {return 1;} else if 2 == 3 {return 2;} else {return 3}"#,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!(interpreter_if_assign_true, r#"let x = 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] 76 | let _ = test_fragment!(interpreter_if_assign_true, r#"let x = if true {return false;} else {return true;}"#,Ok(Value::Bool(false)));
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.27s
[INFO] running `Command { std: "docker" "inspect" "384c6d3c24be029232612a913c783d40aa45862a5941de78559730ea11e6de25", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "384c6d3c24be029232612a913c783d40aa45862a5941de78559730ea11e6de25", kill_on_drop: false }`
[INFO] [stdout] 384c6d3c24be029232612a913c783d40aa45862a5941de78559730ea11e6de25
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b22ff9a34ab3ea2492105dfa72f87f0e76c0ba68bb997068d308f6a290ba98c7
[INFO] running `Command { std: "docker" "start" "-a" "b22ff9a34ab3ea2492105dfa72f87f0e76c0ba68bb997068d308f6a290ba98c7", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `nom::sequence::tuple`
[INFO] [stderr]  --> src/parser.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use nom::sequence::tuple;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nom::combinator::map`
[INFO] [stderr]  --> src/parser.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use nom::combinator::map;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `alphanumeric1`, `char as char_completer`, `combinator::opt`, `delimited`, `digit1`, and `tag`
[INFO] [stderr]   --> src/parser.rs:14:3
[INFO] [stderr]    |
[INFO] [stderr] 14 |   combinator::opt, 
[INFO] [stderr]    |   ^^^^^^^^^^^^^^^
[INFO] [stderr] 15 |   multi::{many1, many0},
[INFO] [stderr] 16 |   bytes::complete::{tag},
[INFO] [stderr]    |                     ^^^
[INFO] [stderr] 17 |   sequence::{delimited, preceded},
[INFO] [stderr]    |              ^^^^^^^^^
[INFO] [stderr] 18 |   character::complete::{char as char_completer, alphanumeric1, digit1},
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result`
[INFO] [stderr]    --> src/interpreter.rs:252:13
[INFO] [stderr]     |
[INFO] [stderr] 252 |         let result = if let Value::Bool(true) = condition {
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/interpreter.rs:283:7
[INFO] [stderr]     |
[INFO] [stderr] 283 |       x => {
[INFO] [stderr]     |       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:209:15
[INFO] [stderr]     |
[INFO] [stderr] 209 |   let (input, x) = t_equal(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:210:15
[INFO] [stderr]     |
[INFO] [stderr] 210 |   let (input, x) = t_equal(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:368:15
[INFO] [stderr]     |
[INFO] [stderr] 368 |   let (input, x) = t_left_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:369:15
[INFO] [stderr]     |
[INFO] [stderr] 369 |   let (input, x) = t_return(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:371:15
[INFO] [stderr]     |
[INFO] [stderr] 371 |   let (input, x) = t_semicolon(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:372:15
[INFO] [stderr]     |
[INFO] [stderr] 372 |   let (input, x) = t_right_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:377:15
[INFO] [stderr]     |
[INFO] [stderr] 377 |   let (input, x) = t_left_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:378:15
[INFO] [stderr]     |
[INFO] [stderr] 378 |   let (input, x) = t_return(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:380:15
[INFO] [stderr]     |
[INFO] [stderr] 380 |   let (input, x) = t_semicolon(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:381:15
[INFO] [stderr]     |
[INFO] [stderr] 381 |   let (input, x) = t_right_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:386:15
[INFO] [stderr]     |
[INFO] [stderr] 386 |   let (input, x) = t_left_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:387:15
[INFO] [stderr]     |
[INFO] [stderr] 387 |   let (input, x) = t_return(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:389:15
[INFO] [stderr]     |
[INFO] [stderr] 389 |   let (input, x) = t_right_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `first`
[INFO] [stderr]    --> src/parser.rs:402:15
[INFO] [stderr]     |
[INFO] [stderr] 402 |   let (input, first) = t_newline(input)?;
[INFO] [stderr]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `second`
[INFO] [stderr]    --> src/parser.rs:403:15
[INFO] [stderr]     |
[INFO] [stderr] 403 |   let (input, second) = t_tab(input)?;
[INFO] [stderr]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:409:15
[INFO] [stderr]     |
[INFO] [stderr] 409 |   let (input, x) = t_if(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:412:15
[INFO] [stderr]     |
[INFO] [stderr] 412 |   let (input, x) = t_else(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:419:15
[INFO] [stderr]     |
[INFO] [stderr] 419 |   let (input, x) = t_if(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:421:15
[INFO] [stderr]     |
[INFO] [stderr] 421 |   let (input, x) = t_left_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:423:15
[INFO] [stderr]     |
[INFO] [stderr] 423 |   let (input, x) = t_right_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:424:15
[INFO] [stderr]     |
[INFO] [stderr] 424 |   let (input, x) = t_else(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:425:15
[INFO] [stderr]     |
[INFO] [stderr] 425 |   let (input, x) = t_left_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:427:15
[INFO] [stderr]     |
[INFO] [stderr] 427 |   let (input, x) = t_right_curly(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:432:15
[INFO] [stderr]     |
[INFO] [stderr] 432 |   let (input, x) = t_if(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:435:15
[INFO] [stderr]     |
[INFO] [stderr] 435 |   let (input, x) = t_else(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:436:15
[INFO] [stderr]     |
[INFO] [stderr] 436 |   let (input, x) = t_if(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:439:15
[INFO] [stderr]     |
[INFO] [stderr] 439 |   let (input, x) = t_else(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:446:15
[INFO] [stderr]     |
[INFO] [stderr] 446 |   let (input, x) = t_let(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:448:15
[INFO] [stderr]     |
[INFO] [stderr] 448 |   let (input, x) = t_equal(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:449:15
[INFO] [stderr]     |
[INFO] [stderr] 449 |   let (input, x) = t_if(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/parser.rs:452:15
[INFO] [stderr]     |
[INFO] [stderr] 452 |   let (input, x) = t_else(input)?;
[INFO] [stderr]     |               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/lexer.rs:163:9
[INFO] [stderr]     |
[INFO] [stderr] 162 |         32 | 10 | 9=> TokenKind::WhiteSpace,
[INFO] [stderr]     |         ----------- matches all the relevant values
[INFO] [stderr] 163 |         10 => TokenKind::NewLine,
[INFO] [stderr]     |         ^^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/lexer.rs:164:9
[INFO] [stderr]     |
[INFO] [stderr] 162 |         32 | 10 | 9=> TokenKind::WhiteSpace,
[INFO] [stderr]     |         ----------- matches all the relevant values
[INFO] [stderr] 163 |         10 => TokenKind::NewLine,
[INFO] [stderr] 164 |         9 => TokenKind::Tab,
[INFO] [stderr]     |         ^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/lexer.rs:177:9
[INFO] [stderr]     |
[INFO] [stderr] 177 |         x => TokenKind::Other,
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: `asalang` (lib) generated 39 warnings (run `cargo fix --lib -p asalang` to apply 37 suggestions)
[INFO] [stderr] warning: unused import: `nom::IResult`
[INFO] [stderr]  --> tests/interpreter.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use nom::IResult;
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `compile_result`
[INFO] [stderr]   --> tests/interpreter.rs:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stderr]    |               ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 | test_program!(interpreter_define_function, r#"fn main(){return foo();} fn foo(){return 5;}"#, Ok(Value::Number(5)));
[INFO] [stderr]    | ------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr] help: `compile_result` is captured in macro and introduced a unused variable
[INFO] [stderr]   --> tests/interpreter.rs:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stderr]    |               ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 | test_program!(interpreter_define_function, r#"fn main(){return foo();} fn foo(){return 5;}"#, Ok(Value::Number(5)));
[INFO] [stderr]    | ------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `compile_result`
[INFO] [stderr]   --> tests/interpreter.rs:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stderr]    |               ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 84 | 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] [stderr]    | -------------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr] help: `compile_result` is captured in macro and introduced a unused variable
[INFO] [stderr]   --> tests/interpreter.rs:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 |           let compile_result = interpreter.exec(&tree)?;
[INFO] [stderr]    |               ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 84 | 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] [stderr]    | -------------------------------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `compile_result`
[INFO] [stderr]   --> tests/interpreter.rs:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 |             let compile_result = interpreter.exec(&tree)?;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 85 | / test_program!(interpreter_define_function_more_statement, r#"fn main() {
[INFO] [stderr] 86 | |   return foo();
[INFO] [stderr] 87 | | }
[INFO] [stderr] 88 | | fn foo(){
[INFO] [stderr] 89 | |   let x = 5;
[INFO] [stderr] 90 | |   return x;
[INFO] [stderr] 91 | | }"#, Ok(Value::Number(5)));
[INFO] [stderr]    | |__________________________- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr] help: `compile_result` is captured in macro and introduced a unused variable
[INFO] [stderr]   --> tests/interpreter.rs:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 |             let compile_result = interpreter.exec(&tree)?;
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 85 | / test_program!(interpreter_define_function_more_statement, r#"fn main() {
[INFO] [stderr] 86 | |   return foo();
[INFO] [stderr] 87 | | }
[INFO] [stderr] 88 | | fn foo(){
[INFO] [stderr] 89 | |   let x = 5;
[INFO] [stderr] 90 | |   return x;
[INFO] [stderr] 91 | | }"#, Ok(Value::Number(5)));
[INFO] [stderr]    | |__________________________- in this macro invocation
[INFO] [stderr]    = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `compile_result`
[INFO] [stderr]    --> tests/interpreter.rs:37:15
[INFO] [stderr]     |
[INFO] [stderr]  37 |             let compile_result = interpreter.exec(&tree)?;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  92 | / test_program!(interpreter_define_full_program, r#"fn foo(a,b,c) {
[INFO] [stderr]  93 | |   let x = a + 1;     
[INFO] [stderr]  94 | |   let y = bar(c + b); 
[INFO] [stderr]  95 | |   return x + y;
[INFO] [stderr] ...   |
[INFO] [stderr] 103 | |   return foo(1,2,3);  
[INFO] [stderr] 104 | | }"#, Ok(Value::Number(10)));
[INFO] [stderr]     | |___________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr] help: `compile_result` is captured in macro and introduced a unused variable
[INFO] [stderr]    --> tests/interpreter.rs:37:15
[INFO] [stderr]     |
[INFO] [stderr]  37 |             let compile_result = interpreter.exec(&tree)?;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  92 | / test_program!(interpreter_define_full_program, r#"fn foo(a,b,c) {
[INFO] [stderr]  93 | |   let x = a + 1;     
[INFO] [stderr]  94 | |   let y = bar(c + b); 
[INFO] [stderr]  95 | |   return x + y;
[INFO] [stderr] ...   |
[INFO] [stderr] 103 | |   return foo(1,2,3);  
[INFO] [stderr] 104 | | }"#, Ok(Value::Number(10)));
[INFO] [stderr]     | |___________________________- in this macro invocation
[INFO] [stderr]     = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:49:1
[INFO] [stderr]    |
[INFO] [stderr] 49 | test_fragment!(interpreter_numeric, r#"123"#, Ok(Value::Number(123)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 49 | let _ = test_fragment!(interpreter_numeric, r#"123"#, Ok(Value::Number(123)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:50:1
[INFO] [stderr]    |
[INFO] [stderr] 50 | test_fragment!(interpreter_string, r#""helloworld""#, Ok(Value::String("helloworld".to_string())));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 50 | let _ = test_fragment!(interpreter_string, r#""helloworld""#, Ok(Value::String("helloworld".to_string())));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:51:1
[INFO] [stderr]    |
[INFO] [stderr] 51 | test_fragment!(interpreter_bool_true, r#"true"#, Ok(Value::Bool(true)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 51 | let _ = test_fragment!(interpreter_bool_true, r#"true"#, Ok(Value::Bool(true)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:52:1
[INFO] [stderr]    |
[INFO] [stderr] 52 | test_fragment!(interpreter_bool_false, r#"false"#, Ok(Value::Bool(false)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 52 | let _ = test_fragment!(interpreter_bool_false, r#"false"#, Ok(Value::Bool(false)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:53:1
[INFO] [stderr]    |
[INFO] [stderr] 53 | test_fragment!(interpreter_identifier, r#"x"#, Err(AsaErrorKind::UndefinedVariable));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 53 | let _ = test_fragment!(interpreter_identifier, r#"x"#, Err(AsaErrorKind::UndefinedVariable));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:54:1
[INFO] [stderr]    |
[INFO] [stderr] 54 | test_fragment!(interpreter_function_call, r#"foo()"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 54 | let _ = test_fragment!(interpreter_function_call, r#"foo()"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:55:1
[INFO] [stderr]    |
[INFO] [stderr] 55 | test_fragment!(interpreter_function_call_one_arg, r#"foo(a)"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 55 | let _ = test_fragment!(interpreter_function_call_one_arg, r#"foo(a)"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:56:1
[INFO] [stderr]    |
[INFO] [stderr] 56 | test_fragment!(interpreter_function_call_more_args, r#"foo(a,b,c)"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 56 | let _ = test_fragment!(interpreter_function_call_more_args, r#"foo(a,b,c)"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:57:1
[INFO] [stderr]    |
[INFO] [stderr] 57 | test_fragment!(interpreter_variable_define, r#"let x = 123;"#, Ok(Value::Number(123)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 57 | let _ = test_fragment!(interpreter_variable_define, r#"let x = 123;"#, Ok(Value::Number(123)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:58:1
[INFO] [stderr]    |
[INFO] [stderr] 58 | test_fragment!(interpreter_variable_init, r#"let x = 1;"#, Ok(Value::Number(1)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 58 | let _ = test_fragment!(interpreter_variable_init, r#"let x = 1;"#, Ok(Value::Number(1)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:59:1
[INFO] [stderr]    |
[INFO] [stderr] 59 | test_fragment!(interpreter_variable_bool, r#"let bool = true;"#, Ok(Value::Bool(true)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 59 | let _ = test_fragment!(interpreter_variable_bool, r#"let bool = true;"#, Ok(Value::Bool(true)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:60:1
[INFO] [stderr]    |
[INFO] [stderr] 60 | test_fragment!(interpreter_variable_string, r#"let string = "HelloWorld";"#, Ok(Value::String("HelloWorld".to_string())));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 60 | let _ = test_fragment!(interpreter_variable_string, r#"let string = "HelloWorld";"#, Ok(Value::String("HelloWorld".to_string())));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:61:1
[INFO] [stderr]    |
[INFO] [stderr] 61 | test_fragment!(interpreter_variable_init_no_space, r#"let x=1;"#, Ok(Value::Number(1)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 61 | let _ = test_fragment!(interpreter_variable_init_no_space, r#"let x=1;"#, Ok(Value::Number(1)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:62:1
[INFO] [stderr]    |
[INFO] [stderr] 62 | test_fragment!(interpreter_math, r#"1 + 1"#, Ok(Value::Number(2)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 62 | let _ = test_fragment!(interpreter_math, r#"1 + 1"#, Ok(Value::Number(2)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:63:1
[INFO] [stderr]    |
[INFO] [stderr] 63 | test_fragment!(interpreter_math_no_space, r#"1-1"#, Ok(Value::Number(0)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 63 | let _ = test_fragment!(interpreter_math_no_space, r#"1-1"#, Ok(Value::Number(0)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:64:1
[INFO] [stderr]    |
[INFO] [stderr] 64 | test_fragment!(interpreter_math_multiply, r#"2 + 4"#, Ok(Value::Number(6)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 64 | let _ = test_fragment!(interpreter_math_multiply, r#"2 + 4"#, Ok(Value::Number(6)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:65:1
[INFO] [stderr]    |
[INFO] [stderr] 65 | test_fragment!(interpreter_assign_math, r#"let x = 1 + 1;"#, Ok(Value::Number(2)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 65 | let _ = test_fragment!(interpreter_assign_math, r#"let x = 1 + 1;"#, Ok(Value::Number(2)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:66:1
[INFO] [stderr]    |
[INFO] [stderr] 66 | test_fragment!(interpreter_assign_function, r#"let x = foo();"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 66 | let _ = test_fragment!(interpreter_assign_function, r#"let x = foo();"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:67:1
[INFO] [stderr]    |
[INFO] [stderr] 67 | test_fragment!(interpreter_assign_function_arguments, r#"let x = foo(a,b,c);"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 67 | let _ = test_fragment!(interpreter_assign_function_arguments, r#"let x = foo(a,b,c);"#, Err(AsaErrorKind::UndefinedFunction));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:69:1
[INFO] [stderr]    |
[INFO] [stderr] 69 | test_fragment!(interpreter_if_expression_true, r#"if 2 > 3 {return false;} else {return true;}"#,Ok(Value::Bool(true)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 69 | let _ = test_fragment!(interpreter_if_expression_true, r#"if 2 > 3 {return false;} else {return true;}"#,Ok(Value::Bool(true)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:70:1
[INFO] [stderr]    |
[INFO] [stderr] 70 | test_fragment!(interpreter_if_expression_false, r#"if 3 > 2 {return false;} else {return true;}"#,Ok(Value::Bool(false)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 70 | let _ = test_fragment!(interpreter_if_expression_false, r#"if 3 > 2 {return false;} else {return true;}"#,Ok(Value::Bool(false)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:72:1
[INFO] [stderr]    |
[INFO] [stderr] 72 | test_fragment!(interpreter_if_else_1, r#"if 3 > 2 {return 1;} else if x == y {return 2;} else {return 3}"#,Ok(Value::Number(1)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 72 | let _ = test_fragment!(interpreter_if_else_1, r#"if 3 > 2 {return 1;} else if x == y {return 2;} else {return 3}"#,Ok(Value::Number(1)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:73:1
[INFO] [stderr]    |
[INFO] [stderr] 73 | test_fragment!(interpreter_if_else_2, r#"if 2 > 2 {return 1;} else if 2 == 2 {return 2;} else {return 3}"#,Ok(Value::Number(2)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 73 | let _ = test_fragment!(interpreter_if_else_2, r#"if 2 > 2 {return 1;} else if 2 == 2 {return 2;} else {return 3}"#,Ok(Value::Number(2)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:74:1
[INFO] [stderr]    |
[INFO] [stderr] 74 | test_fragment!(interpreter_if_else_3, r#"if 2 > 3 {return 1;} else if 2 == 3 {return 2;} else {return 3}"#,Ok(Value::Number(3)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 74 | let _ = test_fragment!(interpreter_if_else_3, r#"if 2 > 3 {return 1;} else if 2 == 3 {return 2;} else {return 3}"#,Ok(Value::Number(3)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/interpreter.rs:76:1
[INFO] [stderr]    |
[INFO] [stderr] 76 | test_fragment!(interpreter_if_assign_true, r#"let x = if true {return false;} else {return true;}"#,Ok(Value::Bool(false)));
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 76 | let _ = test_fragment!(interpreter_if_assign_true, r#"let x = if true {return false;} else {return true;}"#,Ok(Value::Bool(false)));
[INFO] [stderr]    | +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `asalang` (test "interpreter") generated 30 warnings (run `cargo fix --test "interpreter" -p asalang` to apply 1 suggestion)
[INFO] [stderr] warning: `asalang` (lib test) generated 39 warnings (39 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/asalang-ce1af55de39e658f)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/asalang-f275c8446575b358)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/interpreter.rs (/opt/rustwide/target/debug/deps/interpreter-30a48580b1aa8b64)
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test interpreter_assign_function ... ok
[INFO] [stdout] test interpreter_assign_math ... ok
[INFO] [stdout] test interpreter_bool_false ... ok
[INFO] [stdout] test interpreter_bool_true ... ok
[INFO] [stdout] test interpreter_define_function_more_statement ... ok
[INFO] [stdout] test interpreter_function_call_more_args ... ok
[INFO] [stdout] test interpreter_function_call ... ok
[INFO] [stdout] test interpreter_assign_function_arguments ... ok
[INFO] [stdout] test interpreter_function_call_one_arg ... ok
[INFO] [stdout] test interpreter_identifier ... ok
[INFO] [stdout] test interpreter_define_function ... ok
[INFO] [stdout] test interpreter_if_expression_true ... FAILED
[INFO] [stdout] test interpreter_define_function_args ... ok
[INFO] [stdout] test interpreter_if_else_3 ... FAILED
[INFO] [stdout] test interpreter_if_assign_true ... FAILED
[INFO] [stdout] test interpreter_if_expression_false ... FAILED
[INFO] [stdout] test interpreter_math ... ok
[INFO] [stdout] test interpreter_if_else_1 ... FAILED
[INFO] [stdout] test interpreter_if_else_2 ... FAILED
[INFO] [stdout] test interpreter_math_no_space ... ok
[INFO] [stdout] test interpreter_numeric ... ok
[INFO] [stdout] test interpreter_variable_bool ... ok
[INFO] [stdout] test interpreter_math_multiply ... ok
[INFO] [stdout] test interpreter_variable_define ... ok
[INFO] [stdout] test interpreter_string ... ok
[INFO] [stdout] test interpreter_variable_init_no_space ... ok
[INFO] [stdout] test interpreter_variable_init ... ok
[INFO] [stdout] test interpreter_variable_string ... ok
[INFO] [stdout] test interpreter_define_full_program ... ok
[INFO] [stderr] error: test failed, to rerun pass `--test interpreter`
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- interpreter_if_expression_true stdout ----
[INFO] [stdout] Error: Generic("Error(Error { input: Tokens { tokens: [Token { kind: If, lexeme: [105], start_line: 1, end_line: 1, start_col: 1, end_col: 2 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 3, end_col: 3 }, Token { kind: Greater, lexeme: [62], start_line: 1, end_line: 1, start_col: 5, end_col: 5 }, Token { kind: Digit, lexeme: [51], start_line: 1, end_line: 1, start_col: 7, end_col: 7 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 9, end_col: 9 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 10, end_col: 15 }, Token { kind: False, lexeme: [102], start_line: 1, end_line: 1, start_col: 12, end_col: 16 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 13, end_col: 13 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 14, end_col: 14 }, Token { kind: Else, lexeme: [101], start_line: 1, end_line: 1, start_col: 16, end_col: 19 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 18, end_col: 18 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 19, end_col: 24 }, Token { kind: True, lexeme: [116], start_line: 1, end_line: 1, start_col: 21, end_col: 24 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 22, end_col: 22 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 23, end_col: 23 }, Token { kind: EOF, lexeme: [], start_line: 1, end_line: 1, start_col: 24, end_col: 24 }] }, code: Fail })")
[INFO] [stdout] 
[INFO] [stdout] ---- interpreter_if_else_3 stdout ----
[INFO] [stdout] Error: Generic("Error(Error { input: Tokens { tokens: [Token { kind: If, lexeme: [105], start_line: 1, end_line: 1, start_col: 1, end_col: 2 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 3, end_col: 3 }, Token { kind: Greater, lexeme: [62], start_line: 1, end_line: 1, start_col: 5, end_col: 5 }, Token { kind: Digit, lexeme: [51], start_line: 1, end_line: 1, start_col: 7, end_col: 7 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 9, end_col: 9 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 10, end_col: 15 }, Token { kind: Digit, lexeme: [49], start_line: 1, end_line: 1, start_col: 12, end_col: 12 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 13, end_col: 13 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 14, end_col: 14 }, Token { kind: Else, lexeme: [101], start_line: 1, end_line: 1, start_col: 16, end_col: 19 }, Token { kind: If, lexeme: [105], start_line: 1, end_line: 1, start_col: 18, end_col: 19 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 20, end_col: 20 }, Token { kind: DoubleEqual, lexeme: [61, 61], start_line: 1, end_line: 1, start_col: 22, end_col: 23 }, Token { kind: Digit, lexeme: [51], start_line: 1, end_line: 1, start_col: 24, end_col: 24 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 26, end_col: 26 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 27, end_col: 32 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 29, end_col: 29 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 30, end_col: 30 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 31, end_col: 31 }, Token { kind: Else, lexeme: [101], start_line: 1, end_line: 1, start_col: 33, end_col: 36 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 35, end_col: 35 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 36, end_col: 41 }, Token { kind: Digit, lexeme: [51], start_line: 1, end_line: 1, start_col: 38, end_col: 38 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 39, end_col: 39 }, Token { kind: EOF, lexeme: [], start_line: 1, end_line: 1, start_col: 40, end_col: 40 }] }, code: Fail })")
[INFO] [stdout] 
[INFO] [stdout] ---- interpreter_if_assign_true stdout ----
[INFO] [stdout] Error: Generic("Error(Error { input: Tokens { tokens: [Token { kind: Let, lexeme: [108], start_line: 1, end_line: 1, start_col: 1, end_col: 3 }, Token { kind: Alpha, lexeme: [120], start_line: 1, end_line: 1, start_col: 3, end_col: 3 }, Token { kind: Equal, lexeme: [61], start_line: 1, end_line: 1, start_col: 5, end_col: 5 }, Token { kind: If, lexeme: [105], start_line: 1, end_line: 1, start_col: 7, end_col: 8 }, Token { kind: True, lexeme: [116], start_line: 1, end_line: 1, start_col: 9, end_col: 12 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 11, end_col: 11 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 12, end_col: 17 }, Token { kind: False, lexeme: [102], start_line: 1, end_line: 1, start_col: 14, end_col: 18 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 15, end_col: 15 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 16, end_col: 16 }, Token { kind: Else, lexeme: [101], start_line: 1, end_line: 1, start_col: 18, end_col: 21 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 20, end_col: 20 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 21, end_col: 26 }, Token { kind: True, lexeme: [116], start_line: 1, end_line: 1, start_col: 23, end_col: 26 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 24, end_col: 24 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 25, end_col: 25 }, Token { kind: EOF, lexeme: [], start_line: 1, end_line: 1, start_col: 26, end_col: 26 }] }, code: Fail })")
[INFO] [stdout] 
[INFO] [stdout] ---- interpreter_if_expression_false stdout ----
[INFO] [stdout] Error: Generic("Error(Error { input: Tokens { tokens: [Token { kind: If, lexeme: [105], start_line: 1, end_line: 1, start_col: 1, end_col: 2 }, Token { kind: Digit, lexeme: [51], start_line: 1, end_line: 1, start_col: 3, end_col: 3 }, Token { kind: Greater, lexeme: [62], start_line: 1, end_line: 1, start_col: 5, end_col: 5 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 7, end_col: 7 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 9, end_col: 9 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 10, end_col: 15 }, Token { kind: False, lexeme: [102], start_line: 1, end_line: 1, start_col: 12, end_col: 16 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 13, end_col: 13 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 14, end_col: 14 }, Token { kind: Else, lexeme: [101], start_line: 1, end_line: 1, start_col: 16, end_col: 19 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 18, end_col: 18 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 19, end_col: 24 }, Token { kind: True, lexeme: [116], start_line: 1, end_line: 1, start_col: 21, end_col: 24 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 22, end_col: 22 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 23, end_col: 23 }, Token { kind: EOF, lexeme: [], start_line: 1, end_line: 1, start_col: 24, end_col: 24 }] }, code: Fail })")
[INFO] [stdout] 
[INFO] [stdout] ---- interpreter_if_else_1 stdout ----
[INFO] [stdout] Error: Generic("Error(Error { input: Tokens { tokens: [Token { kind: If, lexeme: [105], start_line: 1, end_line: 1, start_col: 1, end_col: 2 }, Token { kind: Digit, lexeme: [51], start_line: 1, end_line: 1, start_col: 3, end_col: 3 }, Token { kind: Greater, lexeme: [62], start_line: 1, end_line: 1, start_col: 5, end_col: 5 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 7, end_col: 7 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 9, end_col: 9 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 10, end_col: 15 }, Token { kind: Digit, lexeme: [49], start_line: 1, end_line: 1, start_col: 12, end_col: 12 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 13, end_col: 13 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 14, end_col: 14 }, Token { kind: Else, lexeme: [101], start_line: 1, end_line: 1, start_col: 16, end_col: 19 }, Token { kind: If, lexeme: [105], start_line: 1, end_line: 1, start_col: 18, end_col: 19 }, Token { kind: Alpha, lexeme: [120], start_line: 1, end_line: 1, start_col: 20, end_col: 20 }, Token { kind: DoubleEqual, lexeme: [61, 61], start_line: 1, end_line: 1, start_col: 22, end_col: 23 }, Token { kind: Alpha, lexeme: [121], start_line: 1, end_line: 1, start_col: 24, end_col: 24 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 26, end_col: 26 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 27, end_col: 32 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 29, end_col: 29 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 30, end_col: 30 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 31, end_col: 31 }, Token { kind: Else, lexeme: [101], start_line: 1, end_line: 1, start_col: 33, end_col: 36 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 35, end_col: 35 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 36, end_col: 41 }, Token { kind: Digit, lexeme: [51], start_line: 1, end_line: 1, start_col: 38, end_col: 38 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 39, end_col: 39 }, Token { kind: EOF, lexeme: [], start_line: 1, end_line: 1, start_col: 40, end_col: 40 }] }, code: Fail })")
[INFO] [stdout] 
[INFO] [stdout] ---- interpreter_if_else_2 stdout ----
[INFO] [stdout] Error: Generic("Error(Error { input: Tokens { tokens: [Token { kind: If, lexeme: [105], start_line: 1, end_line: 1, start_col: 1, end_col: 2 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 3, end_col: 3 }, Token { kind: Greater, lexeme: [62], start_line: 1, end_line: 1, start_col: 5, end_col: 5 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 7, end_col: 7 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 9, end_col: 9 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 10, end_col: 15 }, Token { kind: Digit, lexeme: [49], start_line: 1, end_line: 1, start_col: 12, end_col: 12 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 13, end_col: 13 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 14, end_col: 14 }, Token { kind: Else, lexeme: [101], start_line: 1, end_line: 1, start_col: 16, end_col: 19 }, Token { kind: If, lexeme: [105], start_line: 1, end_line: 1, start_col: 18, end_col: 19 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 20, end_col: 20 }, Token { kind: DoubleEqual, lexeme: [61, 61], start_line: 1, end_line: 1, start_col: 22, end_col: 23 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 24, end_col: 24 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 26, end_col: 26 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 27, end_col: 32 }, Token { kind: Digit, lexeme: [50], start_line: 1, end_line: 1, start_col: 29, end_col: 29 }, Token { kind: Semicolon, lexeme: [59], start_line: 1, end_line: 1, start_col: 30, end_col: 30 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 31, end_col: 31 }, Token { kind: Else, lexeme: [101], start_line: 1, end_line: 1, start_col: 33, end_col: 36 }, Token { kind: LeftCurly, lexeme: [123], start_line: 1, end_line: 1, start_col: 35, end_col: 35 }, Token { kind: Return, lexeme: [114], start_line: 1, end_line: 1, start_col: 36, end_col: 41 }, Token { kind: Digit, lexeme: [51], start_line: 1, end_line: 1, start_col: 38, end_col: 38 }, Token { kind: RightCurly, lexeme: [125], start_line: 1, end_line: 1, start_col: 39, end_col: 39 }, Token { kind: EOF, lexeme: [], start_line: 1, end_line: 1, start_col: 40, end_col: 40 }] }, code: Fail })")
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     interpreter_if_assign_true
[INFO] [stdout]     interpreter_if_else_1
[INFO] [stdout]     interpreter_if_else_2
[INFO] [stdout]     interpreter_if_else_3
[INFO] [stdout]     interpreter_if_expression_false
[INFO] [stdout]     interpreter_if_expression_true
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 23 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b22ff9a34ab3ea2492105dfa72f87f0e76c0ba68bb997068d308f6a290ba98c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b22ff9a34ab3ea2492105dfa72f87f0e76c0ba68bb997068d308f6a290ba98c7", kill_on_drop: false }`
[INFO] [stdout] b22ff9a34ab3ea2492105dfa72f87f0e76c0ba68bb997068d308f6a290ba98c7
