[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 try#b83b707f97d809763b7861afa7638871f3339a33 for pr-145838-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconeal273%2FInterpreter-Project" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/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-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/coneal273/Interpreter-Project on toolchain b83b707f97d809763b7861afa7638871f3339a33 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "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" "+b83b707f97d809763b7861afa7638871f3339a33" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 36f43d5b1da0745536c2ac54c228a80aeec53045caf7a75ebe96f20f5d2a3c00 [INFO] running `Command { std: "docker" "start" "-a" "36f43d5b1da0745536c2ac54c228a80aeec53045caf7a75ebe96f20f5d2a3c00", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "36f43d5b1da0745536c2ac54c228a80aeec53045caf7a75ebe96f20f5d2a3c00", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "36f43d5b1da0745536c2ac54c228a80aeec53045caf7a75ebe96f20f5d2a3c00", kill_on_drop: false }` [INFO] [stdout] 36f43d5b1da0745536c2ac54c228a80aeec53045caf7a75ebe96f20f5d2a3c00 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7139ee21c854a8ae118d32e96a8a559e9e1ae6db594abb06d34f8b0eacac477c [INFO] running `Command { std: "docker" "start" "-a" "7139ee21c854a8ae118d32e96a8a559e9e1ae6db594abb06d34f8b0eacac477c", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.7.2 [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.84s [INFO] running `Command { std: "docker" "inspect" "7139ee21c854a8ae118d32e96a8a559e9e1ae6db594abb06d34f8b0eacac477c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7139ee21c854a8ae118d32e96a8a559e9e1ae6db594abb06d34f8b0eacac477c", kill_on_drop: false }` [INFO] [stdout] 7139ee21c854a8ae118d32e96a8a559e9e1ae6db594abb06d34f8b0eacac477c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1c0ca24874649029648988d95fe089606afd7fb9215daffc5cb446acb4684e87 [INFO] running `Command { std: "docker" "start" "-a" "1c0ca24874649029648988d95fe089606afd7fb9215daffc5cb446acb4684e87", kill_on_drop: false }` [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] [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: `compile_result` [INFO] [stdout] --> tests/interpreter.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 37 | let compile_result = interpreter.exec(&tree)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result` [INFO] [stdout] ... [INFO] [stdout] 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] = 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] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result` [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] = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `compile_result` [INFO] [stdout] --> tests/interpreter.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 37 | let compile_result = interpreter.exec(&tree)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result` [INFO] [stdout] ... [INFO] [stdout] 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] = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `compile_result` [INFO] [stdout] --> tests/interpreter.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 37 | let compile_result = interpreter.exec(&tree)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result` [INFO] [stdout] ... [INFO] [stdout] 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] = note: this warning originates in the macro `test_program` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> tests/interpreter.rs: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] [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 `test` profile [unoptimized + debuginfo] target(s) in 0.86s [INFO] running `Command { std: "docker" "inspect" "1c0ca24874649029648988d95fe089606afd7fb9215daffc5cb446acb4684e87", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c0ca24874649029648988d95fe089606afd7fb9215daffc5cb446acb4684e87", kill_on_drop: false }` [INFO] [stdout] 1c0ca24874649029648988d95fe089606afd7fb9215daffc5cb446acb4684e87 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 4d11c6319131780c73fb7ee368d8a50d039fa86ee697975b93fbe0c9d2d4c9ca [INFO] running `Command { std: "docker" "start" "-a" "4d11c6319131780c73fb7ee368d8a50d039fa86ee697975b93fbe0c9d2d4c9ca", 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 3 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] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result` [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] = 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] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result` [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] = 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] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result` [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] = 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] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compile_result` [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] = 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"` 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.17s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/asalang-2b2adb8b033d66ae) [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-cfcf030692178a00) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stderr] Running tests/interpreter.rs (/opt/rustwide/target/debug/deps/interpreter-ae05b27c4f62c627) [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 29 tests [INFO] [stdout] test interpreter_bool_false ... ok [INFO] [stdout] test interpreter_assign_math ... ok [INFO] [stdout] test interpreter_define_function ... ok [INFO] [stdout] test interpreter_assign_function ... ok [INFO] [stdout] test interpreter_bool_true ... ok [INFO] [stdout] test interpreter_define_function_args ... ok [INFO] [stdout] test interpreter_if_assign_true ... FAILED [INFO] [stdout] test interpreter_identifier ... ok [INFO] [stdout] test interpreter_function_call_more_args ... ok [INFO] [stdout] test interpreter_function_call_one_arg ... ok [INFO] [stdout] test interpreter_if_else_1 ... FAILED [INFO] [stdout] test interpreter_if_expression_true ... FAILED [INFO] [stdout] test interpreter_assign_function_arguments ... ok [INFO] [stdout] test interpreter_variable_bool ... ok [INFO] [stdout] test interpreter_math_multiply ... ok [INFO] [stdout] test interpreter_if_else_3 ... FAILED [INFO] [stdout] test interpreter_math ... ok [INFO] [stdout] test interpreter_math_no_space ... ok [INFO] [stdout] test interpreter_numeric ... ok [INFO] [stdout] test interpreter_variable_define ... ok [INFO] [stdout] test interpreter_variable_init ... ok [INFO] [stdout] test interpreter_variable_init_no_space ... ok [INFO] [stdout] test interpreter_variable_string ... ok [INFO] [stdout] test interpreter_if_expression_false ... FAILED [INFO] [stdout] test interpreter_function_call ... ok [INFO] [stdout] test interpreter_if_else_2 ... FAILED [INFO] [stdout] test interpreter_define_function_more_statement ... ok [INFO] [stdout] test interpreter_string ... ok [INFO] [stderr] error: test failed, to rerun pass `--test interpreter` [INFO] [stdout] test interpreter_define_full_program ... ok [INFO] [stdout] [INFO] [stdout] failures: [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_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_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_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_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.04s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "4d11c6319131780c73fb7ee368d8a50d039fa86ee697975b93fbe0c9d2d4c9ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4d11c6319131780c73fb7ee368d8a50d039fa86ee697975b93fbe0c9d2d4c9ca", kill_on_drop: false }` [INFO] [stdout] 4d11c6319131780c73fb7ee368d8a50d039fa86ee697975b93fbe0c9d2d4c9ca