[INFO] cloning repository https://github.com/AzLangProgramingLanguage/AzLang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AzLangProgramingLanguage/AzLang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAzLangProgramingLanguage%2FAzLang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAzLangProgramingLanguage%2FAzLang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 08a49abe331691e68276f220ae29eabf74442bf8
[INFO] checking AzLangProgramingLanguage/AzLang against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6+rustflags=-Znext-solver=coherence for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAzLangProgramingLanguage%2FAzLang" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/AzLangProgramingLanguage/AzLang
[INFO] finished tweaking git repo https://github.com/AzLangProgramingLanguage/AzLang
[INFO] tweaked toml for git repo https://github.com/AzLangProgramingLanguage/AzLang written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AzLangProgramingLanguage/AzLang on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AzLangProgramingLanguage/AzLang 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap v4.5.51
[INFO] [stderr]   Downloaded clap_builder v4.5.51
[INFO] [stderr]   Downloaded which v8.0.5
[INFO] [stderr]   Downloaded syn v2.0.108
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] bc459cda0afda60dc7f097c4a4487696dd48b386ac63eabdd174db7e85566282
[INFO] running `Command { std: "docker" "start" "bc459cda0afda60dc7f097c4a4487696dd48b386ac63eabdd174db7e85566282", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bc459cda0afda60dc7f097c4a4487696dd48b386ac63eabdd174db7e85566282", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bc459cda0afda60dc7f097c4a4487696dd48b386ac63eabdd174db7e85566282" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bc459cda0afda60dc7f097c4a4487696dd48b386ac63eabdd174db7e85566282", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Znext-solver=coherence" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "bc459cda0afda60dc7f097c4a4487696dd48b386ac63eabdd174db7e85566282" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking siphasher v1.0.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]     Checking logging v0.1.0 (/opt/rustwide/workdir/crates/logging)
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking precomputed-hash v0.1.1
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking tokenizer v0.1.0 (/opt/rustwide/workdir/crates/tokenizer)
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]     Checking anstyle-query v1.1.4
[INFO] [stderr]     Checking phf_shared v0.13.1
[INFO] [stderr]     Checking anstyle v1.0.13
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking file_system v0.1.0 (/opt/rustwide/workdir/crates/file_system)
[INFO] [stdout] warning: unused import: `std::io::ErrorKind`
[INFO] [stdout]  --> crates/file_system/src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::ErrorKind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking which v8.0.5
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking unicode-ident v1.0.22
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]     Checking phf_generator v0.13.1
[INFO] [stdout] warning: unused imports: `env` and `fs`
[INFO] [stdout]  --> crates/file_system/tests/mod.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use std::{env, fs};
[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: `file_system::errors::FileSystemError`
[INFO] [stdout]  --> crates/file_system/tests/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use file_system::errors::FileSystemError;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking clap_builder v4.5.51
[INFO] [stdout] warning: unused import: `f64::consts::PI`
[INFO] [stdout]  --> crates/tokenizer/src/tests.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{f64::consts::PI, vec};
[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: `std::io::ErrorKind`
[INFO] [stdout]  --> crates/file_system/src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::ErrorKind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking string_cache_codegen v0.6.1
[INFO] [stderr]     Checking string_cache v0.9.0
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]     Checking parser v0.1.0 (/opt/rustwide/workdir/crates/parser)
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> crates/parser/src/binary_op.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[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: `parse_link_directive`
[INFO] [stdout]   --> crates/parser/src/binary_op.rs:10:72
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::function::{parse_external_function_def, parse_function_def, parse_link_directive};
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::helpers::expect_token`
[INFO] [stdout]   --> crates/parser/src/binary_op.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::helpers::expect_token;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Cow`
[INFO] [stdout]  --> crates/parser/src/enum.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Cow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> crates/parser/src/enum.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ast::{Expr, Statement},
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Statement`
[INFO] [stdout]  --> crates/parser/src/expressions.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ast::{Expr, Operation, Statement},
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> crates/parser/src/binary_op.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[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: `parse_link_directive`
[INFO] [stdout]   --> crates/parser/src/binary_op.rs:10:72
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::function::{parse_external_function_def, parse_function_def, parse_link_directive};
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::helpers::expect_token`
[INFO] [stdout]   --> crates/parser/src/binary_op.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::helpers::expect_token;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Cow`
[INFO] [stdout]  --> crates/parser/src/enum.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Cow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> crates/parser/src/enum.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ast::{Expr, Statement},
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Statement`
[INFO] [stdout]  --> crates/parser/src/expressions.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ast::{Expr, Operation, Statement},
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> crates/parser/src/enum.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         span,
[INFO] [stdout]    |         ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking validator v0.1.0 (/opt/rustwide/workdir/crates/validator)
[INFO] [stdout] warning: unused import: `crate::validate::ValidatorExpr`
[INFO] [stdout]  --> crates/validator/src/ast.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::validate::ValidatorExpr;
[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: `binary_op`
[INFO] [stdout]  --> crates/validator/src/expr.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     binary_op,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ast`
[INFO] [stdout]  --> crates/validator/src/expr.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |     ast::{self, Ast},
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> crates/validator/src/tests/assignment.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Validator`, `errors::ValidatorError`, and `validate::validate_statement`
[INFO] [stdout]  --> crates/validator/src/tests/assignment.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{validate::validate_statement, Validator, errors::ValidatorError};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Symbol` and `shared_ast::Type`
[INFO] [stdout]  --> crates/validator/src/tests/assignment.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 |     ast::{Atom, Expr, Statement, Symbol},
[INFO] [stdout]   |                                  ^^^^^^
[INFO] [stdout] 6 |     shared_ast::Type,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::assert_matches`
[INFO] [stdout]  --> crates/validator/src/tests/assignment.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::assert_matches;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Atom`, `Expr`, `Operation`, `Statement`, `StringEnum`, and `Type`
[INFO] [stdout]  --> crates/validator/src/tests/binary_op.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ast::{Atom, Expr, Operation, Statement},
[INFO] [stdout]   |           ^^^^  ^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 5 |     shared_ast::{StringEnum, Type},
[INFO] [stdout]   |                  ^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Validator`, `ast::Ast`, `ast::Expr as ValidatorExpr`, and `errors::ValidatorError`
[INFO] [stdout]  --> crates/validator/src/tests/function_call.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{Validator, ast::Ast, ast::Expr as ValidatorExpr, errors::ValidatorError};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Expr`
[INFO] [stdout]  --> crates/validator/src/tests/function_call.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ast::{Atom, Expr, Parameter, Statement},
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::assert_matches`
[INFO] [stdout]  --> crates/validator/src/tests/function_call.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::assert_matches;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Validator`
[INFO] [stdout]  --> crates/validator/src/tests/function_def.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::Validator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> crates/parser/src/enum.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         span,
[INFO] [stdout]    |         ^^^^ help: try ignoring the field: `span: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Atom`, `Expr`, `StringEnum`, `Symbol`, and `Type`
[INFO] [stdout]  --> crates/validator/src/tests/variable_decl.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 |     ast::{Atom, Expr, Symbol},
[INFO] [stdout]   |           ^^^^  ^^^^  ^^^^^^
[INFO] [stdout] 6 |     shared_ast::{StringEnum, Type},
[INFO] [stdout]   |                  ^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rc::Rc`
[INFO] [stdout]  --> crates/validator/src/tests/variable_decl.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::{collections::HashMap, rc::Rc};
[INFO] [stdout]   |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap` and `rc::Rc`
[INFO] [stdout]  --> crates/validator/src/validate.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, rc::Rc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StringEnum` and `Symbol`
[INFO] [stdout]  --> crates/validator/src/validate.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ast::{Statement, Symbol},
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 5 |     shared_ast::{StringEnum, Type},
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Function` and `self`
[INFO] [stdout]   --> crates/validator/src/validate.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 |     ast::{self, Ast, Else, Function, IF},
[INFO] [stdout]    |           ^^^^             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/validator/src/helper.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         _ => Err(ValidatorError::UnknownType(format!(
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/validator/src/helper.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout]  14 |         Expr::Number(_) => Ok(Type::Integer),
[INFO] [stdout]     |         --------------- matches some of the same values
[INFO] [stdout]  15 |         Expr::TemplateString(_) => Ok(Type::String(StringEnum::DynamicString)),
[INFO] [stdout]     |         ----------------------- matches some of the same values
[INFO] [stdout]  16 |         Expr::UnaryOp { op, expr } => {
[INFO] [stdout]     |         -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  24 |         Expr::Bool(_) => Ok(Type::Bool),
[INFO] [stdout]     |         ------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 107 |         _ => Err(ValidatorError::UnknownType(format!(
[INFO] [stdout]     |         ^ ...and 15 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]   --> crates/validator/src/helper.rs:63:33
[INFO] [stdout]    |
[INFO] [stdout] 63 |             VariableRef { name, symbol } => {
[INFO] [stdout]    |                                 ^^^^^^ help: try ignoring the field: `symbol: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> crates/validator/src/tests/function_call.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     symbol: &str,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]    --> crates/validator/src/validate.rs:112:27
[INFO] [stdout]     |
[INFO] [stdout] 112 |         Statement::Loop { body } => Ok(Ast::Loop { body: vec![] }),
[INFO] [stdout]     |                           ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_body` is never used
[INFO] [stdout]    --> crates/validator/src/helper.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn validate_body<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assign` is never used
[INFO] [stdout]   --> crates/validator/src/tests/assignment.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn assign(name: &str, value: Expr) -> Statement {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_func` is never used
[INFO] [stdout]  --> crates/validator/src/tests/function_call.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn make_func(
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_external_func` is never used
[INFO] [stdout]    --> crates/validator/src/tests/function_call.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn make_external_func(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_func` is never used
[INFO] [stdout]  --> crates/validator/src/tests/function_def.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn make_func(
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_decl` is never used
[INFO] [stdout]   --> crates/validator/src/tests/function_def.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn make_decl(name: &str, typ: Type, is_mutable: bool, value: Expr) -> Statement {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_validator` is never used
[INFO] [stdout]   --> crates/validator/src/tests/variable_decl.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn setup_validator() -> Validator {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::validate::ValidatorExpr`
[INFO] [stdout]  --> crates/validator/src/ast.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::validate::ValidatorExpr;
[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: `binary_op`
[INFO] [stdout]  --> crates/validator/src/expr.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     binary_op,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ast`
[INFO] [stdout]  --> crates/validator/src/expr.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |     ast::{self, Ast},
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap` and `rc::Rc`
[INFO] [stdout]  --> crates/validator/src/validate.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, rc::Rc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StringEnum` and `Symbol`
[INFO] [stdout]  --> crates/validator/src/validate.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ast::{Statement, Symbol},
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 5 |     shared_ast::{StringEnum, Type},
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Function` and `self`
[INFO] [stdout]   --> crates/validator/src/validate.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 |     ast::{self, Ast, Else, Function, IF},
[INFO] [stdout]    |           ^^^^             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking transpiler v0.1.0 (/opt/rustwide/workdir/crates/transpiler)
[INFO] [stdout] warning: unused import: `io::Write`
[INFO] [stdout]  --> crates/transpiler/src/lib.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::HashMap, io::Write};
[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: `io::Write`
[INFO] [stdout]  --> crates/transpiler/src/lib.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::HashMap, io::Write};
[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: `return_type`
[INFO] [stdout]   --> crates/transpiler/src/lib.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 return_type,
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: try ignoring the field: `return_type: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |             target, args, name, ..
[INFO] [stdout]     |             ^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `return_type`
[INFO] [stdout]   --> crates/transpiler/src/lib.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 return_type,
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: try ignoring the field: `return_type: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elif`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:149:40
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 Ast::Condition { main, elif, other } => {
[INFO] [stdout]     |                                        ^^^^ help: try ignoring the field: `elif: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |             target, args, name, ..
[INFO] [stdout]     |             ^^^^^^ help: try ignoring the field: `target: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:169:29
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 Ast::Loop { body } => {
[INFO] [stdout]     |                             ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_mutable`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     is_mutable,
[INFO] [stdout]     |                     ^^^^^^^^^^ help: try ignoring the field: `is_mutable: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strenum`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:180:34
[INFO] [stdout]     |
[INFO] [stdout] 180 |                     Type::String(strenum) => {
[INFO] [stdout]     |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strenum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `labels` is never read
[INFO] [stdout]   --> crates/transpiler/src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Transpiler {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     labels: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elif`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:149:40
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 Ast::Condition { main, elif, other } => {
[INFO] [stdout]     |                                        ^^^^ help: try ignoring the field: `elif: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:169:29
[INFO] [stdout]     |
[INFO] [stdout] 169 |                 Ast::Loop { body } => {
[INFO] [stdout]     |                             ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_mutable`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     is_mutable,
[INFO] [stdout]     |                     ^^^^^^^^^^ help: try ignoring the field: `is_mutable: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strenum`
[INFO] [stdout]    --> crates/transpiler/src/lib.rs:180:34
[INFO] [stdout]     |
[INFO] [stdout] 180 |                     Type::String(strenum) => {
[INFO] [stdout]     |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strenum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `labels` is never read
[INFO] [stdout]   --> crates/transpiler/src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Transpiler {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     labels: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking compiler v0.1.0 (/opt/rustwide/workdir/compiler)
[INFO] [stdout] warning: unused import: `ffi::OsString`
[INFO] [stdout]  --> compiler/src/pipline.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ffi::OsString, path::PathBuf, process::Command};
[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: `parser::ParsedProgram`
[INFO] [stdout]  --> compiler/src/pipline.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::ParsedProgram;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `transpiler::Transpiler`
[INFO] [stdout]  --> compiler/src/pipline.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use transpiler::Transpiler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ValidatedProgram`, `Validator`, and `errors::ValidatorError`
[INFO] [stdout]  --> compiler/src/pipline.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use validator::{ValidatedProgram, Validator, errors::ValidatorError};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/assignment.rs:25:9
[INFO] [stdout]     |
[INFO] [stdout]  24 |     validator.declare_variable(
[INFO] [stdout]     |               ---------------- arguments to this method are incorrect
[INFO] [stdout]  25 |         "x".to_string(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ expected `Atom<EmptyStaticAtomSet>`, found `String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found struct `std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn declare_variable(&mut self, var_name: Atom, symbol: Symbol) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^            --------------
[INFO] [stdout] help: call `Into::into` on this expression to convert `std::string::String` into `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]     |
[INFO] [stdout]  25 |         "x".to_string().into(),
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ffi::OsString`
[INFO] [stdout]  --> compiler/src/pipline.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ffi::OsString, path::PathBuf, process::Command};
[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: `parser::ParsedProgram`
[INFO] [stdout]  --> compiler/src/pipline.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::ParsedProgram;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `transpiler::Transpiler`
[INFO] [stdout]  --> compiler/src/pipline.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use transpiler::Transpiler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ValidatedProgram`, `Validator`, and `errors::ValidatorError`
[INFO] [stdout]  --> compiler/src/pipline.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use validator::{ValidatedProgram, Validator, errors::ValidatorError};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `path::PathBuf` and `process::Command`
[INFO] [stdout]  --> compiler/src/tests/compiler_test.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{path::PathBuf, process::Command};
[INFO] [stdout]   |           ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `file_system::write_file`
[INFO] [stdout]  --> compiler/src/tests/compiler_test.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use file_system::write_file;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `transpiler::Transpiler`
[INFO] [stdout]  --> compiler/src/tests/compiler_test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use transpiler::Transpiler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser`
[INFO] [stdout]  --> compiler/src/tests/compiler_test.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     parser,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> crates/validator/src/tests/assignment.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 |         .get("x")
[INFO] [stdout]    |          --- ^^^ expected `&Atom<EmptyStaticAtomSet>`, found `&str`
[INFO] [stdout]    |          |
[INFO] [stdout]    |          arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]               found reference `&'static str`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/3154cc1a3e6424e44f438a95007d043ed5ceaaf6/library/std/src/collections/hash/map.rs:1034:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/assignment.rs:55:9
[INFO] [stdout]     |
[INFO] [stdout]  54 |     validator.declare_variable(
[INFO] [stdout]     |               ---------------- arguments to this method are incorrect
[INFO] [stdout]  55 |         "x".to_string(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ expected `Atom<EmptyStaticAtomSet>`, found `String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found struct `std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn declare_variable(&mut self, var_name: Atom, symbol: Symbol) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^            --------------
[INFO] [stdout] help: call `Into::into` on this expression to convert `std::string::String` into `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]     |
[INFO] [stdout]  55 |         "x".to_string().into(),
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/assignment.rs:73:9
[INFO] [stdout]     |
[INFO] [stdout]  72 |     validator.declare_variable(
[INFO] [stdout]     |               ---------------- arguments to this method are incorrect
[INFO] [stdout]  73 |         "x".to_string(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ expected `Atom<EmptyStaticAtomSet>`, found `String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found struct `std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn declare_variable(&mut self, var_name: Atom, symbol: Symbol) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^            --------------
[INFO] [stdout] help: call `Into::into` on this expression to convert `std::string::String` into `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]     |
[INFO] [stdout]  73 |         "x".to_string().into(),
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> crates/validator/src/tests/binary_op.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |       let (_validator, program) = Validator::default()
[INFO] [stdout]    |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 15 | |         .validate(vec![stmt])
[INFO] [stdout] 16 | |         .expect("valid program should not fail");
[INFO] [stdout]    | |________________________________________________- this expression has type `Program`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Program`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompilerPipline` is never constructed
[INFO] [stdout]   --> compiler/src/pipline.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct CompilerPipline<T>(pub T);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> crates/validator/src/tests/binary_op.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |       let (_validator, program) = Validator::default()
[INFO] [stdout]    |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 37 | |         .validate(vec![stmt])
[INFO] [stdout] 38 | |         .expect("valid program should not fail");
[INFO] [stdout]    | |________________________________________________- this expression has type `Program`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Program`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> crates/validator/src/tests/binary_op.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |       let (_validator, program) = Validator::default()
[INFO] [stdout]    |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 60 | |         .validate(vec![stmt])
[INFO] [stdout] 61 | |         .expect("valid program should not fail");
[INFO] [stdout]    | |________________________________________________- this expression has type `Program`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Program`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> crates/validator/src/tests/binary_op.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |       let (_validator, program) = Validator::default()
[INFO] [stdout]    |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 82 | |         .validate(vec![stmt])
[INFO] [stdout] 83 | |         .expect("valid program should not fail");
[INFO] [stdout]    | |________________________________________________- this expression has type `Program`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Program`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/binary_op.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 104 | |         .validate(vec![stmt])
[INFO] [stdout] 105 | |         .expect("valid program should not fail");
[INFO] [stdout]     | |________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/binary_op.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 126 | |         .validate(vec![stmt])
[INFO] [stdout] 127 | |         .expect("valid program should not fail");
[INFO] [stdout]     | |________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/binary_op.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 148 | |         .validate(vec![stmt])
[INFO] [stdout] 149 | |         .expect("valid program should not fail");
[INFO] [stdout]     | |________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/binary_op.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 170 | |         .validate(vec![stmt])
[INFO] [stdout] 171 | |         .expect("valid program should not fail");
[INFO] [stdout]     | |________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/binary_op.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 192 | |         .validate(vec![stmt])
[INFO] [stdout] 193 | |         .expect("valid program should not fail");
[INFO] [stdout]     | |________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/binary_op.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 214 | |         .validate(vec![stmt])
[INFO] [stdout] 215 | |         .expect("valid program should not fail");
[INFO] [stdout]     | |________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/binary_op.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 236 | |         .validate(vec![stmt])
[INFO] [stdout] 237 | |         .expect("valid program should not fail");
[INFO] [stdout]     | |________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/binary_op.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 258 | |         .validate(vec![stmt])
[INFO] [stdout] 259 | |         .expect("valid program should not fail");
[INFO] [stdout]     | |________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/binary_op.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 280 | |         .validate(vec![stmt])
[INFO] [stdout] 281 | |         .expect("valid program should not fail");
[INFO] [stdout]     | |________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/function_call.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 111 | |         .validate(stmts)
[INFO] [stdout] 112 | |         .expect("should validate");
[INFO] [stdout]     | |__________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `parser::shared_ast::Type` cannot be dereferenced
[INFO] [stdout]    --> crates/validator/src/tests/function_call.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |     assert_eq!(*returned_type, Type::Integer);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/function_call.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 134 | |         .validate(stmts)
[INFO] [stdout] 135 | |         .expect("should validate");
[INFO] [stdout]     | |__________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `parser::shared_ast::Type` cannot be dereferenced
[INFO] [stdout]    --> crates/validator/src/tests/function_call.rs:140:16
[INFO] [stdout]     |
[INFO] [stdout] 140 |     assert_eq!(*returned_type, Type::Bool);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/function_call.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 404 | |         .validate(stmts)
[INFO] [stdout] 405 | |         .expect("should validate with link_name");
[INFO] [stdout]     | |_________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompilerPipline` is never constructed
[INFO] [stdout]   --> compiler/src/pipline.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct CompilerPipline<T>(pub T);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/function_call.rs:432:9
[INFO] [stdout]     |
[INFO] [stdout] 432 |       let (_validator, program) = Validator::default()
[INFO] [stdout]     |  _________^^^^^^^^^^^^^^^^^^^^^___-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         expected `Program`, found `(_, _)`
[INFO] [stdout] 433 | |         .validate(stmts)
[INFO] [stdout] 434 | |         .expect("should validate without link_name");
[INFO] [stdout]     | |____________________________________________________- this expression has type `Program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0605]: non-primitive cast: `Result<&mut Validator, ValidatorError>` as `*mut Validator`
[INFO] [stdout]    --> crates/validator/src/tests/function_def.rs:226:16
[INFO] [stdout]     |
[INFO] [stdout] 226 |     assert_eq!(result as *mut Validator, &mut validator as *mut Validator);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^ an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/function_def.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 271 |     let (validator, _program) = Validator::default().validate(stmts).expect("should validate");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^   -------------------------------------------------------------- this expression has type `Program`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected `Program`, found `(_, _)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/function_def.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |     let (validator, _program) = Validator::default().validate(stmts).expect("should validate");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^   -------------------------------------------------------------- this expression has type `Program`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected `Program`, found `(_, _)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Program`
[INFO] [stdout]                 found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/variable_decl.rs:32:41
[INFO] [stdout]     |
[INFO] [stdout]  32 |     let sym = validator.lookup_variable("x").unwrap();
[INFO] [stdout]     |                         --------------- ^^^ expected `&Atom<EmptyStaticAtomSet>`, found `&str`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found reference `&'static str`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn lookup_variable(&self, var_name: &Atom) -> Option<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^        ---------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/variable_decl.rs:42:9
[INFO] [stdout]     |
[INFO] [stdout]  41 |     validator.declare_variable(
[INFO] [stdout]     |               ---------------- arguments to this method are incorrect
[INFO] [stdout]  42 |         "x".to_string(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ expected `Atom<EmptyStaticAtomSet>`, found `String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found struct `std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn declare_variable(&mut self, var_name: Atom, symbol: Symbol) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^            --------------
[INFO] [stdout] help: call `Into::into` on this expression to convert `std::string::String` into `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]     |
[INFO] [stdout]  42 |         "x".to_string().into(),
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/variable_decl.rs:74:41
[INFO] [stdout]     |
[INFO] [stdout]  74 |     let sym = validator.lookup_variable("s").unwrap();
[INFO] [stdout]     |                         --------------- ^^^ expected `&Atom<EmptyStaticAtomSet>`, found `&str`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found reference `&'static str`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn lookup_variable(&self, var_name: &Atom) -> Option<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^        ---------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/variable_decl.rs:90:41
[INFO] [stdout]     |
[INFO] [stdout]  90 |     let sym = validator.lookup_variable("s").unwrap();
[INFO] [stdout]     |                         --------------- ^^^ expected `&Atom<EmptyStaticAtomSet>`, found `&str`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found reference `&'static str`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn lookup_variable(&self, var_name: &Atom) -> Option<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^        ---------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/variable_decl.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     validator.declare_variable(
[INFO] [stdout]     |               ---------------- arguments to this method are incorrect
[INFO] [stdout] 118 |         "s".to_string(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ expected `Atom<EmptyStaticAtomSet>`, found `String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found struct `std::string::String`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn declare_variable(&mut self, var_name: Atom, symbol: Symbol) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^            --------------
[INFO] [stdout] help: call `Into::into` on this expression to convert `std::string::String` into `string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]     |
[INFO] [stdout] 118 |         "s".to_string().into(),
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/variable_decl.rs:202:41
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let sym = validator.lookup_variable("a").unwrap();
[INFO] [stdout]     |                         --------------- ^^^ expected `&Atom<EmptyStaticAtomSet>`, found `&str`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found reference `&'static str`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn lookup_variable(&self, var_name: &Atom) -> Option<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^        ---------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/variable_decl.rs:218:41
[INFO] [stdout]     |
[INFO] [stdout] 218 |     let sym = validator.lookup_variable("a").unwrap();
[INFO] [stdout]     |                         --------------- ^^^ expected `&Atom<EmptyStaticAtomSet>`, found `&str`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found reference `&'static str`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn lookup_variable(&self, var_name: &Atom) -> Option<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^        ---------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/variable_decl.rs:398:41
[INFO] [stdout]     |
[INFO] [stdout] 398 |     let sym = validator.lookup_variable("arr").unwrap();
[INFO] [stdout]     |                         --------------- ^^^^^ expected `&Atom<EmptyStaticAtomSet>`, found `&str`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found reference `&'static str`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn lookup_variable(&self, var_name: &Atom) -> Option<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^        ---------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/validator/src/tests/variable_decl.rs:414:41
[INFO] [stdout]     |
[INFO] [stdout] 414 |     let sym = validator.lookup_variable("arr").unwrap();
[INFO] [stdout]     |                         --------------- ^^^^^ expected `&Atom<EmptyStaticAtomSet>`, found `&str`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&string_cache::atom::Atom<string_cache::static_sets::EmptyStaticAtomSet>`
[INFO] [stdout]                found reference `&'static str`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> crates/validator/src/lib.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn lookup_variable(&self, var_name: &Atom) -> Option<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^        ---------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/validator/src/helper.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         _ => Err(ValidatorError::UnknownType(format!(
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/validator/src/helper.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout]  14 |         Expr::Number(_) => Ok(Type::Integer),
[INFO] [stdout]     |         --------------- matches some of the same values
[INFO] [stdout]  15 |         Expr::TemplateString(_) => Ok(Type::String(StringEnum::DynamicString)),
[INFO] [stdout]     |         ----------------------- matches some of the same values
[INFO] [stdout]  16 |         Expr::UnaryOp { op, expr } => {
[INFO] [stdout]     |         -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  24 |         Expr::Bool(_) => Ok(Type::Bool),
[INFO] [stdout]     |         ------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 107 |         _ => Err(ValidatorError::UnknownType(format!(
[INFO] [stdout]     |         ^ ...and 15 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]   --> crates/validator/src/helper.rs:63:33
[INFO] [stdout]    |
[INFO] [stdout] 63 |             VariableRef { name, symbol } => {
[INFO] [stdout]    |                                 ^^^^^^ help: try ignoring the field: `symbol: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol`
[INFO] [stdout]    --> crates/validator/src/tests/function_call.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     symbol: &str,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `validator` as mutable, as it is not declared as mutable
[INFO] [stdout]   --> crates/validator/src/tests/while_loop.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let result = validator.validate(program);
[INFO] [stdout]    |                      ^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mut validator = Validator::default();
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `validator` as mutable, as it is not declared as mutable
[INFO] [stdout]   --> crates/validator/src/tests/while_loop.rs:28:22
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let result = validator.validate(program);
[INFO] [stdout]    |                      ^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut validator = Validator::default();
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `validator` as mutable, as it is not declared as mutable
[INFO] [stdout]   --> crates/validator/src/tests/while_loop.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let result = validator.validate(program);
[INFO] [stdout]    |                      ^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut validator = Validator::default();
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]    --> crates/validator/src/validate.rs:112:27
[INFO] [stdout]     |
[INFO] [stdout] 112 |         Statement::Loop { body } => Ok(Ast::Loop { body: vec![] }),
[INFO] [stdout]     |                           ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0596, E0605, E0614.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `validator` (lib test) due to 38 previous errors; 10 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] warning: unused dependency `logging`
[INFO] [stderr]  --> crates/tokenizer/Cargo.toml:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | logging = { path = "../logging" }
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `logging`
[INFO] [stderr] warning: `tokenizer` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "inspect" "bc459cda0afda60dc7f097c4a4487696dd48b386ac63eabdd174db7e85566282", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bc459cda0afda60dc7f097c4a4487696dd48b386ac63eabdd174db7e85566282", kill_on_drop: false }`
[INFO] [stdout] bc459cda0afda60dc7f097c4a4487696dd48b386ac63eabdd174db7e85566282
