[INFO] cloning repository https://github.com/edhubbard1994/letscript
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/edhubbard1994/letscript" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fedhubbard1994%2Fletscript", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fedhubbard1994%2Fletscript'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8cd88a4ef4df1b3170ba4c8d382d81b0130353f1
[INFO] checking edhubbard1994/letscript against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fedhubbard1994%2Fletscript" "/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/edhubbard1994/letscript
[INFO] finished tweaking git repo https://github.com/edhubbard1994/letscript
[INFO] tweaked toml for git repo https://github.com/edhubbard1994/letscript written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/edhubbard1994/letscript on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/edhubbard1994/letscript 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded uwl v0.6.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 656d6f5f2cadc77ea0fa77eddc30fbced456598248184087f9d1d3d36d0a5832
[INFO] running `Command { std: "docker" "start" "-a" "656d6f5f2cadc77ea0fa77eddc30fbced456598248184087f9d1d3d36d0a5832", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "656d6f5f2cadc77ea0fa77eddc30fbced456598248184087f9d1d3d36d0a5832", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "656d6f5f2cadc77ea0fa77eddc30fbced456598248184087f9d1d3d36d0a5832", kill_on_drop: false }`
[INFO] [stdout] 656d6f5f2cadc77ea0fa77eddc30fbced456598248184087f9d1d3d36d0a5832
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] db5736545f1d42b862e445b71f884f8cad1ab7a32f5241a8bfeaf812f1ef8f8c
[INFO] running `Command { std: "docker" "start" "-a" "db5736545f1d42b862e445b71f884f8cad1ab7a32f5241a8bfeaf812f1ef8f8c", kill_on_drop: false }`
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling generic-array v0.14.6
[INFO] [stderr]     Checking siphasher v0.3.10
[INFO] [stderr]     Checking regex-syntax v0.6.26
[INFO] [stderr]     Checking cpufeatures v0.2.5
[INFO] [stderr]     Checking uwl v0.6.0
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]     Checking phf_shared v0.11.1
[INFO] [stderr]     Checking phf v0.11.1
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking regex v1.5.6
[INFO] [stderr]     Checking interp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::token::TokenType`
[INFO] [stdout]  --> src/ast.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::token::TokenType;
[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::ops::DerefMut`
[INFO] [stdout]  --> src/ast.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::ops::DerefMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::token`
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::token;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/parser.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Scope`, `SymbolType`, and `tokenizer::tokenize`
[INFO] [stdout]  --> src/test_ast.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     ast::{Scope, SymbolType},
[INFO] [stdout]   |           ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 3 |     tokenizer::tokenize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | mod test_ast;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::operate`
[INFO] [stdout]  --> src/test_expr.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::expr::operate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod test_expr;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::collect_expression_tokens`
[INFO] [stdout]  --> src/test_expr.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::collect_expression_tokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod test_expr;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::infix_to_postfix`
[INFO] [stdout]  --> src/test_expr.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::parser::infix_to_postfix;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod test_expr;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::precedence`
[INFO] [stdout]  --> src/test_expr.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::parser::precedence;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod test_expr;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::token::TokenType`
[INFO] [stdout]  --> src/test_expr.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::token::TokenType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod test_expr;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tokenizer::tokenize`
[INFO] [stdout]  --> src/test_expr.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::tokenizer::tokenize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod test_expr;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::collect_expression_tokens`
[INFO] [stdout]  --> src/test_parser.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::collect_expression_tokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod test_parser;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::eval_expression`
[INFO] [stdout]  --> src/test_parser.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::eval_expression;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod test_parser;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::infix_to_postfix`
[INFO] [stdout]  --> src/test_parser.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::parser::infix_to_postfix;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod test_parser;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::parse_logical_iter`
[INFO] [stdout]  --> src/test_parser.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::parser::parse_logical_iter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/main.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod test_parser;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::token::TokenType`
[INFO] [stdout]  --> src/ast.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::token::TokenType;
[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::ops::DerefMut`
[INFO] [stdout]  --> src/ast.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::ops::DerefMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::token`
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::token;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/parser.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Scope`, `SymbolType`, and `tokenizer::tokenize`
[INFO] [stdout]  --> src/test_ast.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     ast::{Scope, SymbolType},
[INFO] [stdout]   |           ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 3 |     tokenizer::tokenize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::collect_expression_tokens`
[INFO] [stdout]  --> src/test_expr.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::collect_expression_tokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::infix_to_postfix`
[INFO] [stdout]  --> src/test_expr.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::parser::infix_to_postfix;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::precedence`
[INFO] [stdout]  --> src/test_expr.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::parser::precedence;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ast.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut scope = stack.back_mut().unwrap();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `undef_regx`
[INFO] [stdout]    --> src/expr.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let undef_regx = Regex::new(r"^undefined$").unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_undef_regx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expr` is never read
[INFO] [stdout]    --> src/expr.rs:177:20
[INFO] [stdout]     |
[INFO] [stdout] 177 |     let mut expr = LSExpr::Undefined;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parser.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut token = itr.next();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parser.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut block = Vec::<Token>::new();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parser.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let mut current = token.next();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block`
[INFO] [stdout]   --> src/parser.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut block = Vec::<Token>::new();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]   --> src/parser.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let mut current = token.next();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let mut tok = tokens.peek_mut();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let mut val: ast::SymbolType;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut toks:  Box<Peekable<Iter<'a, Token>>>;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:196:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let mut i = tok.unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:199:21
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 let mut arr;
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:222:21
[INFO] [stdout]     |
[INFO] [stdout] 222 |                 let mut str;
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sym`
[INFO] [stdout]    --> src/parser.rs:359:26
[INFO] [stdout]     |
[INFO] [stdout] 359 |                     Some(sym) => {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_sym`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_token`
[INFO] [stdout]    --> src/parser.rs:385:5
[INFO] [stdout]     |
[INFO] [stdout] 385 |     current_token: &'a Token,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let mut token = itr.next();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parser.rs:514:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |         TokenType::Equals => 252,
[INFO] [stdout]     |         ----------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 514 |         TokenType::Equals => 250,
[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: unused variable: `args`
[INFO] [stdout]   --> src/main.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_args(args: Vec<String>) {}
[INFO] [stdout]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/main.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let args: Vec<String> = env::args().collect();
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pasrsed_tokens`
[INFO] [stdout]   --> src/main.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let pasrsed_tokens = parser::parse(&mut tokens);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pasrsed_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_args` is never used
[INFO] [stdout]   --> src/main.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_args(args: Vec<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: variants `Object` and `Function` are never constructed
[INFO] [stdout]   --> src/ast.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum SymbolType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 23 |     Object(BTreeMap<SymbolType, SymbolType>),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 24 |     Array(Vec<SymbolType>),
[INFO] [stdout] 25 |     Function(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionSymbolArgs` is never constructed
[INFO] [stdout]   --> src/ast.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct FunctionSymbolArgs {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjectSymbolArgs` is never constructed
[INFO] [stdout]   --> src/ast.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct ObjectSymbolArgs {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArraySymbolArgs` is never constructed
[INFO] [stdout]   --> src/ast.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct ArraySymbolArgs {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push` and `pop` are never used
[INFO] [stdout]   --> src/ast.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl CALL_STACK {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 64 |     pub fn push(&self, scope: Scope) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn pop(&self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/expr.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum LSExpr {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     SubtractF64I32(f64, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     ModF64I32(f64, i32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     Equal(bool, bool),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |     NotEqual(bool, bool),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 34 |     Gt(bool, bool),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 35 |     Lt(bool, bool),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 36 |     Gte(bool, bool),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 37 |     Lte(bool, bool),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 38 |     EqualI32(i32, i32),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     NotEqualI32(i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 40 |     GtI32(i32, i32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 41 |     LtI32(i32, i32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 42 |     GteI32(i32, i32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 43 |     LteI32(i32, i32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 44 |     EqualF64(f64, f64),
[INFO] [stdout] 45 |     NotEqualF64(f64, f64),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LSExpr` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cast_to_int` is never used
[INFO] [stdout]    --> src/expr.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl LSExpr {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn cast_to_int(&self) -> LSExpr {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_assignment` is never used
[INFO] [stdout]   --> src/parser.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn parse_assignment(tokens: &mut Vec<Token>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_block` is never used
[INFO] [stdout]   --> src/parser.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn parse_block(tokens: Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_expression` is never used
[INFO] [stdout]   --> src/parser.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn parse_expression(expr: &mut Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_string` is never used
[INFO] [stdout]    --> src/parser.rs:234:4
[INFO] [stdout]     |
[INFO] [stdout] 234 | fn parse_string(tokens: Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_array` is never used
[INFO] [stdout]    --> src/parser.rs:269:4
[INFO] [stdout]     |
[INFO] [stdout] 269 | fn parse_array(tokens: Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_object` is never used
[INFO] [stdout]    --> src/parser.rs:311:4
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn parse_object(tokens: Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_expression_tokens` is never used
[INFO] [stdout]    --> src/parser.rs:384:8
[INFO] [stdout]     |
[INFO] [stdout] 384 | pub fn collect_expression_tokens<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_number_sign_helper` is never used
[INFO] [stdout]    --> src/parser.rs:410:8
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub fn find_number_sign_helper(mut itr: std::vec::IntoIter<Token>) -> Token {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expr_type_factory` is never used
[INFO] [stdout]    --> src/parser.rs:519:8
[INFO] [stdout]     |
[INFO] [stdout] 519 | pub fn expr_type_factory(mut itr: vec::IntoIter<Token>) -> Vec<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_resolve_unary_operators_4` is never used
[INFO] [stdout]   --> src/test_parser.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn test_resolve_unary_operators_4() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Period`, `Object`, and `TokenError` are never constructed
[INFO] [stdout]   --> src/token.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub enum TokenType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Period,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     Object,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     TokenError,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_regex_token` is never used
[INFO] [stdout]    --> src/tokenizer.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn generate_regex_token(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ast.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut scope = stack.back_mut().unwrap();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `undef_regx`
[INFO] [stdout]    --> src/expr.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let undef_regx = Regex::new(r"^undefined$").unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_undef_regx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `expr` is never read
[INFO] [stdout]    --> src/expr.rs:177:20
[INFO] [stdout]     |
[INFO] [stdout] 177 |     let mut expr = LSExpr::Undefined;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parser.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut token = itr.next();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parser.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut block = Vec::<Token>::new();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parser.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let mut current = token.next();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block`
[INFO] [stdout]   --> src/parser.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut block = Vec::<Token>::new();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]   --> src/parser.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let mut current = token.next();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let mut tok = tokens.peek_mut();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let mut val: ast::SymbolType;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut toks:  Box<Peekable<Iter<'a, Token>>>;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:196:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let mut i = tok.unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:199:21
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 let mut arr;
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:222:21
[INFO] [stdout]     |
[INFO] [stdout] 222 |                 let mut str;
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sym`
[INFO] [stdout]    --> src/parser.rs:359:26
[INFO] [stdout]     |
[INFO] [stdout] 359 |                     Some(sym) => {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_sym`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_token`
[INFO] [stdout]    --> src/parser.rs:385:5
[INFO] [stdout]     |
[INFO] [stdout] 385 |     current_token: &'a Token,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let mut token = itr.next();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parser.rs:514:9
[INFO] [stdout]     |
[INFO] [stdout] 505 |         TokenType::Equals => 252,
[INFO] [stdout]     |         ----------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 514 |         TokenType::Equals => 250,
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/test_parser.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |     let mut tokens = binding.iter();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/test_parser.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let mut x;
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `x` is assigned to, but never used
[INFO] [stdout]    --> src/test_parser.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let mut x;
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_x` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]    --> src/test_parser.rs:251:6
[INFO] [stdout]     |
[INFO] [stdout] 251 |     (x, y) = parse_logical_iter(Box::new(tokens.peekable()));
[INFO] [stdout]     |      ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/main.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_args(args: Vec<String>) {}
[INFO] [stdout]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/main.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let args: Vec<String> = env::args().collect();
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pasrsed_tokens`
[INFO] [stdout]   --> src/main.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let pasrsed_tokens = parser::parse(&mut tokens);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pasrsed_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_args` is never used
[INFO] [stdout]   --> src/main.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_args(args: Vec<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: variants `Object` and `Function` are never constructed
[INFO] [stdout]   --> src/ast.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum SymbolType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 23 |     Object(BTreeMap<SymbolType, SymbolType>),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 24 |     Array(Vec<SymbolType>),
[INFO] [stdout] 25 |     Function(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionSymbolArgs` is never constructed
[INFO] [stdout]   --> src/ast.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct FunctionSymbolArgs {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ObjectSymbolArgs` is never constructed
[INFO] [stdout]   --> src/ast.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct ObjectSymbolArgs {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArraySymbolArgs` is never constructed
[INFO] [stdout]   --> src/ast.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct ArraySymbolArgs {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push` and `pop` are never used
[INFO] [stdout]   --> src/ast.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl CALL_STACK {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 64 |     pub fn push(&self, scope: Scope) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn pop(&self) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/expr.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum LSExpr {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     SubtractF64I32(f64, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     ModF64I32(f64, i32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     Equal(bool, bool),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |     NotEqual(bool, bool),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 34 |     Gt(bool, bool),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 35 |     Lt(bool, bool),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 36 |     Gte(bool, bool),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 37 |     Lte(bool, bool),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 38 |     EqualI32(i32, i32),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     NotEqualI32(i32, i32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 40 |     GtI32(i32, i32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 41 |     LtI32(i32, i32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 42 |     GteI32(i32, i32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 43 |     LteI32(i32, i32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 44 |     EqualF64(f64, f64),
[INFO] [stdout] 45 |     NotEqualF64(f64, f64),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LSExpr` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cast_to_int` is never used
[INFO] [stdout]    --> src/expr.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl LSExpr {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn cast_to_int(&self) -> LSExpr {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_assignment` is never used
[INFO] [stdout]   --> src/parser.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn parse_assignment(tokens: &mut Vec<Token>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_block` is never used
[INFO] [stdout]   --> src/parser.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn parse_block(tokens: Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_expression` is never used
[INFO] [stdout]   --> src/parser.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn parse_expression(expr: &mut Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_string` is never used
[INFO] [stdout]    --> src/parser.rs:234:4
[INFO] [stdout]     |
[INFO] [stdout] 234 | fn parse_string(tokens: Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_array` is never used
[INFO] [stdout]    --> src/parser.rs:269:4
[INFO] [stdout]     |
[INFO] [stdout] 269 | fn parse_array(tokens: Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_object` is never used
[INFO] [stdout]    --> src/parser.rs:311:4
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn parse_object(tokens: Vec<Token>) -> ast::SymbolType {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_number_sign_helper` is never used
[INFO] [stdout]    --> src/parser.rs:410:8
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub fn find_number_sign_helper(mut itr: std::vec::IntoIter<Token>) -> Token {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expr_type_factory` is never used
[INFO] [stdout]    --> src/parser.rs:519:8
[INFO] [stdout]     |
[INFO] [stdout] 519 | pub fn expr_type_factory(mut itr: vec::IntoIter<Token>) -> Vec<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_resolve_unary_operators_4` is never used
[INFO] [stdout]   --> src/test_parser.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn test_resolve_unary_operators_4() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Period`, `Object`, and `TokenError` are never constructed
[INFO] [stdout]   --> src/token.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub enum TokenType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Period,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     Object,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     TokenError,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.39s
[INFO] running `Command { std: "docker" "inspect" "db5736545f1d42b862e445b71f884f8cad1ab7a32f5241a8bfeaf812f1ef8f8c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "db5736545f1d42b862e445b71f884f8cad1ab7a32f5241a8bfeaf812f1ef8f8c", kill_on_drop: false }`
[INFO] [stdout] db5736545f1d42b862e445b71f884f8cad1ab7a32f5241a8bfeaf812f1ef8f8c
