[INFO] cloning repository https://github.com/andyyu2004/l-language
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/andyyu2004/l-language" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandyyu2004%2Fl-language", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandyyu2004%2Fl-language'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6c62c32c582ef9e7086f12d0b4fb36f37816fa62
[INFO] checking andyyu2004/l-language against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandyyu2004%2Fl-language" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/andyyu2004/l-language
[INFO] finished tweaking git repo https://github.com/andyyu2004/l-language
[INFO] tweaked toml for git repo https://github.com/andyyu2004/l-language written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/andyyu2004/l-language on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/andyyu2004/l-language 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rustyline v5.0.0
[INFO] [stderr]   Downloaded utf8parse v0.1.1
[INFO] [stderr]   Downloaded log v0.4.7
[INFO] [stderr]   Downloaded dirs v2.0.1
[INFO] [stderr]   Downloaded cc v1.0.38
[INFO] [stderr]   Downloaded dirs-sys v0.3.3
[INFO] [stderr]   Downloaded backtrace v0.3.33
[INFO] [stderr]   Downloaded syn v0.15.41
[INFO] [stderr]   Downloaded libc v0.2.60
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2dd29005d14407c930efe15ed522353c4d3e869155486d3a2f5861e8c6bd0db8
[INFO] running `Command { std: "docker" "start" "2dd29005d14407c930efe15ed522353c4d3e869155486d3a2f5861e8c6bd0db8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2dd29005d14407c930efe15ed522353c4d3e869155486d3a2f5861e8c6bd0db8", 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" "2dd29005d14407c930efe15ed522353c4d3e869155486d3a2f5861e8c6bd0db8" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2dd29005d14407c930efe15ed522353c4d3e869155486d3a2f5861e8c6bd0db8", 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" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2dd29005d14407c930efe15ed522353c4d3e869155486d3a2f5861e8c6bd0db8" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.60
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]    Compiling log v0.4.7
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking unicode-segmentation v1.3.0
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]     Checking utf8parse v0.1.1
[INFO] [stderr]     Checking either v1.5.2
[INFO] [stderr]     Checking itertools v0.8.0
[INFO] [stderr]     Checking dirs-sys v0.3.3
[INFO] [stderr]     Checking dirs v2.0.1
[INFO] [stderr]     Checking rustyline v5.0.0
[INFO] [stderr]     Checking l v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/lexing/lexer.rs:116:20
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 '0'...'9' => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/lexing/lexer.rs:148:20
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 'A'...'Z' => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lexing::Token`
[INFO] [stdout]  --> src/interpreting/objects/l_struct.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::lexing::Token;
[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: `crate::errors::LError`
[INFO] [stdout]  --> src/interpreting/objects/l_lambda.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::errors::LError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/types/l_types.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/types/l_types.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> src/types/l_types.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::main`
[INFO] [stdout]   --> src/types/l_types.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::main;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec_to_type_map`
[INFO] [stdout]   --> src/types/l_types.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::utility::{vec_to_type_map, vec_to_vec_map, vec_contains_key, vec_replace_key, vec_update_value};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec_to_type_map`
[INFO] [stdout]   --> src/types/type_checker.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::utility::{vec_to_type_map, vec_to_vec_map};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::l_types::LType::TVar`
[INFO] [stdout]   --> src/static_analysis/static_analyser.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::l_types::LType::TVar;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/lexing/lexer.rs:116:20
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 '0'...'9' => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/lexing/lexer.rs:148:20
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 'A'...'Z' => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lexing::Token`
[INFO] [stdout]  --> src/interpreting/objects/l_struct.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::lexing::Token;
[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: `crate::errors::LError`
[INFO] [stdout]  --> src/interpreting/objects/l_lambda.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::errors::LError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]   --> src/types/l_types.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::rc::Rc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]   --> src/types/l_types.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::cell::RefCell;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> src/types/l_types.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::main`
[INFO] [stdout]   --> src/types/l_types.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::main;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec_to_type_map`
[INFO] [stdout]   --> src/types/l_types.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::utility::{vec_to_type_map, vec_to_vec_map, vec_contains_key, vec_replace_key, vec_update_value};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec_to_type_map`
[INFO] [stdout]   --> src/types/type_checker.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::utility::{vec_to_type_map, vec_to_vec_map};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::l_types::LType::TVar`
[INFO] [stdout]   --> src/static_analysis/static_analyser.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::l_types::LType::TVar;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LInvocable`
[INFO] [stdout]   --> src/interpreting/interpreter.rs:19:45
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::interpreting::objects::{LObject, LInvocable, Variant, Function, Struct, Tuple, Lambda};
[INFO] [stdout]    |                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LInvocable`
[INFO] [stdout]   --> src/interpreting/interpreter.rs:19:45
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::interpreting::objects::{LObject, LInvocable, Variant, Function, Struct, Tuple, Lambda};
[INFO] [stdout]    |                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/utility/mod.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |     for (k, v) in xs {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/utility/mod.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (k, v) in xs {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/interpreting/objects/l_function.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 |             FnCurried { name, param, ret, .. } => {
[INFO] [stdout]    |                         ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/utility/mod.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |     for (k, v) in xs {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/utility/mod.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |     for (k, v) in xs {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/types/l_types.rs:187:23
[INFO] [stdout]     |
[INFO] [stdout] 187 |             (TVar(_), t) => true,
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/types/l_types.rs:188:14
[INFO] [stdout]     |
[INFO] [stdout] 188 |             (t, TVar(_)) => true,
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/interpreting/objects/l_function.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 |             FnCurried { name, param, ret, .. } => {
[INFO] [stdout]    |                         ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/types/l_types.rs:187:23
[INFO] [stdout]     |
[INFO] [stdout] 187 |             (TVar(_), t) => true,
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/types/l_types.rs:188:14
[INFO] [stdout]     |
[INFO] [stdout] 188 |             (t, TVar(_)) => true,
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/types/l_types.rs:386:35
[INFO] [stdout]     |
[INFO] [stdout] 386 |     let yvalues = ys.iter().map(|(x,y)| y).collect_vec();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/types/l_types.rs:385:35
[INFO] [stdout]     |
[INFO] [stdout] 385 |     let xvalues = xs.iter().map(|(x,y)| y).collect_vec();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/types/l_types.rs:386:35
[INFO] [stdout]     |
[INFO] [stdout] 386 |     let yvalues = ys.iter().map(|(x,y)| y).collect_vec();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/types/l_types.rs:385:35
[INFO] [stdout]     |
[INFO] [stdout] 385 |     let xvalues = xs.iter().map(|(x,y)| y).collect_vec();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/types/type_checker.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |             _ => panic!("Unimplented in type_check_stmt")
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/types/type_checker.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout]  93 |             LStmt(ref mut expr) | ExprStmt(ref mut expr) | PrintStmt(ref mut expr) => self.type_of_expr(expr),
[INFO] [stdout]     |             ---------------------------------------------------------------------- matches some of the same values
[INFO] [stdout]  94 |             FnStmt { name, token, param, ret_type, body, tparams } =>
[INFO] [stdout]     |             ------------------------------------------------------ matches some of the same values
[INFO] [stdout]  95 |                 self.type_of_fn(name, token, tparams, param,ret_type, body),
[INFO] [stdout]  96 |             FnCurried { name, tparams, param, ret, token } =>
[INFO] [stdout]     |             ---------------------------------------------- matches some of the same values
[INFO] [stdout]  97 |                 self.type_of_curried_fn(name, token, tparams, param, ret),
[INFO] [stdout]  98 |             VarStmt { name, ltype, init}  => self.type_of_var_decl(name, ltype, init.as_mut()),
[INFO] [stdout]     |             ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 105 |             _ => panic!("Unimplented in type_check_stmt")
[INFO] [stdout]     |             ^ ...and 6 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: unreachable pattern
[INFO] [stdout]    --> src/types/type_checker.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |             _ => panic!("Unimplented in type_check_stmt")
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/types/type_checker.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout]  93 |             LStmt(ref mut expr) | ExprStmt(ref mut expr) | PrintStmt(ref mut expr) => self.type_of_expr(expr),
[INFO] [stdout]     |             ---------------------------------------------------------------------- matches some of the same values
[INFO] [stdout]  94 |             FnStmt { name, token, param, ret_type, body, tparams } =>
[INFO] [stdout]     |             ------------------------------------------------------ matches some of the same values
[INFO] [stdout]  95 |                 self.type_of_fn(name, token, tparams, param,ret_type, body),
[INFO] [stdout]  96 |             FnCurried { name, tparams, param, ret, token } =>
[INFO] [stdout]     |             ---------------------------------------------- matches some of the same values
[INFO] [stdout]  97 |                 self.type_of_curried_fn(name, token, tparams, param, ret),
[INFO] [stdout]  98 |             VarStmt { name, ltype, init}  => self.type_of_var_decl(name, ltype, init.as_mut()),
[INFO] [stdout]     |             ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 105 |             _ => panic!("Unimplented in type_check_stmt")
[INFO] [stdout]     |             ^ ...and 6 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: `k`
[INFO] [stdout]    --> src/types/type_checker.rs:128:14
[INFO] [stdout]     |
[INFO] [stdout] 128 |         for (k, v) in variants {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/types/type_checker.rs:128:14
[INFO] [stdout]     |
[INFO] [stdout] 128 |         for (k, v) in variants {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/types/type_checker.rs:701:22
[INFO] [stdout]     |
[INFO] [stdout] 701 |             FnStmt { name, param, ret_type, .. } => match param {
[INFO] [stdout]     |                      ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/types/type_checker.rs:701:22
[INFO] [stdout]     |
[INFO] [stdout] 701 |             FnStmt { name, param, ret_type, .. } => match param {
[INFO] [stdout]     |                      ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/static_analysis/static_analyser.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             x => unimplemented!("Unimplemented in analyse stmt {}", x)
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/static_analysis/static_analyser.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |             LStmt(expr) | ExprStmt(expr) | PrintStmt(expr) => self.analyse_expr(expr),
[INFO] [stdout]    |             ---------------------------------------------- matches some of the same values
[INFO] [stdout] 53 |             VarStmt { name , init, .. } => self.analyse_var_decl(name, init),
[INFO] [stdout]    |             --------------------------- matches some of the same values
[INFO] [stdout] 54 |             LetStmt{ token, pattern , init, ..} => self.analyse_let_binding(token, pattern, init),
[INFO] [stdout]    |             ----------------------------------- matches some of the same values
[INFO] [stdout] 55 |             FnStmt { name, param, body, tparams, token, ..} =>
[INFO] [stdout]    |             ----------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 67 |             x => unimplemented!("Unimplemented in analyse stmt {}", x)
[INFO] [stdout]    |             ^ ...and 6 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/static_analysis/static_analyser.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             x => unimplemented!("Unimplemented in analyse stmt {}", x)
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/static_analysis/static_analyser.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |             LStmt(expr) | ExprStmt(expr) | PrintStmt(expr) => self.analyse_expr(expr),
[INFO] [stdout]    |             ---------------------------------------------- matches some of the same values
[INFO] [stdout] 53 |             VarStmt { name , init, .. } => self.analyse_var_decl(name, init),
[INFO] [stdout]    |             --------------------------- matches some of the same values
[INFO] [stdout] 54 |             LetStmt{ token, pattern , init, ..} => self.analyse_let_binding(token, pattern, init),
[INFO] [stdout]    |             ----------------------------------- matches some of the same values
[INFO] [stdout] 55 |             FnStmt { name, param, body, tparams, token, ..} =>
[INFO] [stdout]    |             ----------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 67 |             x => unimplemented!("Unimplemented in analyse stmt {}", x)
[INFO] [stdout]    |             ^ ...and 6 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/static_analysis/static_analyser.rs:250:35
[INFO] [stdout]     |
[INFO] [stdout] 250 |     fn analyse_fn_decl(&mut self, token: &Token, name: &Option<String>, param: &Option<Pair<LType>>, body: &Vec<Stmt>, tparams: &Ve...
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tparams`
[INFO] [stdout]    --> src/static_analysis/static_analyser.rs:250:120
[INFO] [stdout]     |
[INFO] [stdout] 250 | ...ype>>, body: &Vec<Stmt>, tparams: &Vec<Token>) -> Result<StaticInfo, LError> {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tparams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/static_analysis/static_analyser.rs:273:43
[INFO] [stdout]     |
[INFO] [stdout] 273 |     fn analyse_curried_fn_decl(&mut self, token: &Token, name: &Option<String>, param: &Pair<LType>, ret: &Stmt, tparams: &Vec<Toke...
[INFO] [stdout]     |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tparams`
[INFO] [stdout]    --> src/static_analysis/static_analyser.rs:273:114
[INFO] [stdout]     |
[INFO] [stdout] 273 | ...Pair<LType>, ret: &Stmt, tparams: &Vec<Token>) -> Result<StaticInfo, LError> {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tparams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/static_analysis/static_analyser.rs:250:35
[INFO] [stdout]     |
[INFO] [stdout] 250 |     fn analyse_fn_decl(&mut self, token: &Token, name: &Option<String>, param: &Option<Pair<LType>>, body: &Vec<Stmt>, tparams: &Ve...
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tparams`
[INFO] [stdout]    --> src/static_analysis/static_analyser.rs:250:120
[INFO] [stdout]     |
[INFO] [stdout] 250 | ...ype>>, body: &Vec<Stmt>, tparams: &Vec<Token>) -> Result<StaticInfo, LError> {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tparams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/static_analysis/static_analyser.rs:273:43
[INFO] [stdout]     |
[INFO] [stdout] 273 |     fn analyse_curried_fn_decl(&mut self, token: &Token, name: &Option<String>, param: &Pair<LType>, ret: &Stmt, tparams: &Vec<Toke...
[INFO] [stdout]     |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tparams`
[INFO] [stdout]    --> src/static_analysis/static_analyser.rs:273:114
[INFO] [stdout]     |
[INFO] [stdout] 273 | ...Pair<LType>, ret: &Stmt, tparams: &Vec<Token>) -> Result<StaticInfo, LError> {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tparams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_to_type_map` is never used
[INFO] [stdout]   --> src/utility/mod.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn vec_to_type_map<T>(vec: Vec<T>) -> HashMap<T, Option<LType>> where T : Hash + Eq {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `function` and `lambda` are never used
[INFO] [stdout]   --> src/interpreting/objects/l_object.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl LObject {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn function(&self) -> &Function {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn lambda(&self) -> &Lambda {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PRecord` is never constructed
[INFO] [stdout]   --> src/interpreting/pattern_matching/pattern.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum LPattern {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout]  9 | //    POr(Box<LPattern>, Box<LPattern>),
[INFO] [stdout] 10 |     PRecord,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LPattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pair` is never constructed
[INFO] [stdout]  --> src/internal/data_structures/pair.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Pair<T, U> {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_to_type_map` is never used
[INFO] [stdout]   --> src/utility/mod.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn vec_to_type_map<T>(vec: Vec<T>) -> HashMap<T, Option<LType>> where T : Hash + Eq {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `function` and `lambda` are never used
[INFO] [stdout]   --> src/interpreting/objects/l_object.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl LObject {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn function(&self) -> &Function {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn lambda(&self) -> &Lambda {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PRecord` is never constructed
[INFO] [stdout]   --> src/interpreting/pattern_matching/pattern.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum LPattern {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout]  9 | //    POr(Box<LPattern>, Box<LPattern>),
[INFO] [stdout] 10 |     PRecord,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LPattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pair` is never constructed
[INFO] [stdout]  --> src/internal/data_structures/pair.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Pair<T, U> {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.33s
[INFO] running `Command { std: "docker" "inspect" "2dd29005d14407c930efe15ed522353c4d3e869155486d3a2f5861e8c6bd0db8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2dd29005d14407c930efe15ed522353c4d3e869155486d3a2f5861e8c6bd0db8", kill_on_drop: false }`
[INFO] [stdout] 2dd29005d14407c930efe15ed522353c4d3e869155486d3a2f5861e8c6bd0db8
