[INFO] cloning repository https://github.com/5unsetpowerln/rmonkey
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/5unsetpowerln/rmonkey" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F5unsetpowerln%2Frmonkey", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F5unsetpowerln%2Frmonkey'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 31891ea88103611adc25ac598ee425c7ddf17210
[INFO] checking 5unsetpowerln/rmonkey against try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F5unsetpowerln%2Frmonkey" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/5unsetpowerln/rmonkey
[INFO] finished tweaking git repo https://github.com/5unsetpowerln/rmonkey
[INFO] tweaked toml for git repo https://github.com/5unsetpowerln/rmonkey written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/5unsetpowerln/rmonkey on toolchain 012cd62c9add58ab3910e44c137d87db3ab70f61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/5unsetpowerln/rmonkey 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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0a033ac34990b508f50c66c3987a9dca224d03fbdba06562821bda61e517976c
[INFO] running `Command { std: "docker" "start" "-a" "0a033ac34990b508f50c66c3987a9dca224d03fbdba06562821bda61e517976c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0a033ac34990b508f50c66c3987a9dca224d03fbdba06562821bda61e517976c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a033ac34990b508f50c66c3987a9dca224d03fbdba06562821bda61e517976c", kill_on_drop: false }`
[INFO] [stdout] 0a033ac34990b508f50c66c3987a9dca224d03fbdba06562821bda61e517976c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 118804721bf23afb72edbbc04364955b78d5751df97d5e28f049b7c77e8600e5
[INFO] running `Command { std: "docker" "start" "-a" "118804721bf23afb72edbbc04364955b78d5751df97d5e28f049b7c77e8600e5", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking anstyle v1.0.13
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]     Checking clap_lex v1.0.0
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking clap_builder v4.5.60
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling derive-from-u8 v0.1.0 (/opt/rustwide/workdir/derive-from-u8)
[INFO] [stderr]     Checking clap v4.5.60
[INFO] [stderr]     Checking rmonkey v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `core::ascii`
[INFO] [stdout]  --> src/ast.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::ascii;
[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 imports: `Expression`, `Identifier`, `LetStatement`, `NodeInterface`, and `Statement`
[INFO] [stdout]    --> src/ast.rs:784:22
[INFO] [stdout]     |
[INFO] [stdout] 784 |     use crate::ast::{Expression, Identifier, LetStatement, NodeInterface, Statement};
[INFO] [stdout]     |                      ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TokenKind` and `Token`
[INFO] [stdout]    --> src/ast.rs:785:24
[INFO] [stdout]     |
[INFO] [stdout] 785 |     use crate::token::{Token, TokenKind};
[INFO] [stdout]     |                        ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Program`
[INFO] [stdout]    --> src/ast.rs:787:9
[INFO] [stdout]     |
[INFO] [stdout] 787 |     use super::Program;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/code.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/code.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::LazyLock`
[INFO] [stdout]  --> src/code.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/code.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::{Context, Result, bail, ensure};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OpCodeKind` and `create_inst`
[INFO] [stdout]    --> src/code.rs:209:23
[INFO] [stdout]     |
[INFO] [stdout] 209 |     use crate::code::{OpCodeKind, create_inst};
[INFO] [stdout]     |                       ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::print_errors`
[INFO] [stdout]    --> src/code.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |     use crate::utils::print_errors;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/compiler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ensure`
[INFO] [stdout]  --> src/compiler.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Context, Result, bail, ensure};
[INFO] [stdout]   |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expression` and `PrefixExpression`
[INFO] [stdout]  --> src/compiler.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::ast::{BlockStatement, Expression, PrefixExpression};
[INFO] [stdout]   |                                  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CompiledFunction`
[INFO] [stdout]   --> src/compiler.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::object::{CompiledFunction, Object};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Scope::Global` and `Symbol`
[INFO] [stdout]   --> src/compiler.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::symbol_table::{Scope::Global, Symbol, SymbolTable};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OpCodeKind` and `create_inst`
[INFO] [stdout]    --> src/compiler.rs:570:23
[INFO] [stdout]     |
[INFO] [stdout] 570 |     use crate::code::{OpCodeKind, create_inst, insts_from_inst_list};
[INFO] [stdout]     |                       ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Scope::Global` and `Symbol`
[INFO] [stdout]    --> src/compiler.rs:576:31
[INFO] [stdout]     |
[INFO] [stdout] 576 |     use crate::symbol_table::{Scope::Global, Symbol};
[INFO] [stdout]     |                               ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::flatten_u8`
[INFO] [stdout]    --> src/compiler.rs:577:9
[INFO] [stdout]     |
[INFO] [stdout] 577 |     use crate::utils::flatten_u8;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddedInstruction`
[INFO] [stdout]    --> src/compiler.rs:580:17
[INFO] [stdout]     |
[INFO] [stdout] 580 |     use super::{AddedInstruction, ByteCode};
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]  --> src/disasm.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, bail};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OpCodeKind`
[INFO] [stdout]  --> src/disasm.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::code::{OpCodeDef, OpCodeKind};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OpCodeKind`, `create_inst`, and `insts_from_inst_list`
[INFO] [stdout]   --> src/disasm.rs:91:23
[INFO] [stdout]    |
[INFO] [stdout] 91 |     use crate::code::{OpCodeKind, create_inst, insts_from_inst_list};
[INFO] [stdout]    |                       ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::disasm`
[INFO] [stdout]   --> src/disasm.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     use super::disasm;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/object.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use anyhow::{Result, anyhow, bail, ensure};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `InfixExpression`
[INFO] [stdout]    --> src/parser.rs:733:55
[INFO] [stdout]     |
[INFO] [stdout] 733 |     use crate::ast::{Expression, ExpressionStatement, InfixExpression, NodeInterface, Statement};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::print_errors`
[INFO] [stdout]    --> src/parser.rs:735:9
[INFO] [stdout]     |
[INFO] [stdout] 735 |     use crate::utils::print_errors;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ascii`
[INFO] [stdout]    --> src/parser.rs:736:9
[INFO] [stdout]     |
[INFO] [stdout] 736 |     use core::ascii;
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Environment`
[INFO] [stdout]  --> src/repl.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::object::{Environment, Object};
[INFO] [stdout]   |                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]  --> src/symbol_table.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LazyLock` and `Mutex`
[INFO] [stdout]  --> src/symbol_table.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, LazyLock, Mutex, RwLock};
[INFO] [stdout]   |                      ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]    --> src/symbol_table.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     use std::collections::HashMap;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]    --> src/symbol_table.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |     use std::sync::{Arc, RwLock};
[INFO] [stdout]     |                     ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Scope`, `SymbolTable`, and `Symbol`
[INFO] [stdout]    --> src/symbol_table.rs:121:17
[INFO] [stdout]     |
[INFO] [stdout] 121 |     use super::{Scope, Symbol, SymbolTable};
[INFO] [stdout]     |                 ^^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ascii`
[INFO] [stdout]  --> src/token.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::ascii;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::RwLock`
[INFO] [stdout]  --> src/utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]  --> src/vm.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::slice;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PoisonError` and `self`
[INFO] [stdout]  --> src/vm.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{self, LazyLock, PoisonError};
[INFO] [stdout]   |                 ^^^^            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/vm.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::{Context, Result, anyhow, bail, ensure};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuntimeError`
[INFO] [stdout]    --> src/vm.rs:792:17
[INFO] [stdout]     |
[INFO] [stdout] 792 |     use super::{RuntimeError, Vm};
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::fs::MetadataExt`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::os::unix::fs::MetadataExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]   --> src/main.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::{Arc, RwLock};
[INFO] [stdout]    |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::lexer::Lexer`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use self::lexer::Lexer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::object::Environment`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use self::object::Environment;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::utils::print_errors`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use self::utils::print_errors;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ascii`
[INFO] [stdout]  --> src/ast.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::ascii;
[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: `NodeInterface`
[INFO] [stdout]    --> src/ast.rs:784:60
[INFO] [stdout]     |
[INFO] [stdout] 784 |     use crate::ast::{Expression, Identifier, LetStatement, NodeInterface, Statement};
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/code.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/code.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::LazyLock`
[INFO] [stdout]  --> src/code.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/code.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::{Context, Result, bail, ensure};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/compiler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ensure`
[INFO] [stdout]  --> src/compiler.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Context, Result, bail, ensure};
[INFO] [stdout]   |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expression` and `PrefixExpression`
[INFO] [stdout]  --> src/compiler.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::ast::{BlockStatement, Expression, PrefixExpression};
[INFO] [stdout]   |                                  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CompiledFunction`
[INFO] [stdout]   --> src/compiler.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::object::{CompiledFunction, Object};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Scope::Global` and `Symbol`
[INFO] [stdout]   --> src/compiler.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::symbol_table::{Scope::Global, Symbol, SymbolTable};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Scope::Global` and `Symbol`
[INFO] [stdout]    --> src/compiler.rs:576:31
[INFO] [stdout]     |
[INFO] [stdout] 576 |     use crate::symbol_table::{Scope::Global, Symbol};
[INFO] [stdout]     |                               ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]  --> src/disasm.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, bail};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OpCodeKind`
[INFO] [stdout]  --> src/disasm.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::code::{OpCodeDef, OpCodeKind};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ascii`
[INFO] [stdout]    --> src/lexer.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |     use core::ascii;
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `info`
[INFO] [stdout]    --> src/lexer.rs:192:15
[INFO] [stdout]     |
[INFO] [stdout] 192 |     use log::{error, info};
[INFO] [stdout]     |               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/object.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use anyhow::{Result, anyhow, bail, ensure};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `InfixExpression`
[INFO] [stdout]    --> src/parser.rs:733:55
[INFO] [stdout]     |
[INFO] [stdout] 733 |     use crate::ast::{Expression, ExpressionStatement, InfixExpression, NodeInterface, Statement};
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ascii`
[INFO] [stdout]    --> src/parser.rs:736:9
[INFO] [stdout]     |
[INFO] [stdout] 736 |     use core::ascii;
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Environment`
[INFO] [stdout]  --> src/repl.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::object::{Environment, Object};
[INFO] [stdout]   |                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]  --> src/symbol_table.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LazyLock` and `Mutex`
[INFO] [stdout]  --> src/symbol_table.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, LazyLock, Mutex, RwLock};
[INFO] [stdout]   |                      ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]    --> src/symbol_table.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     use std::collections::HashMap;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ascii`
[INFO] [stdout]  --> src/token.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::ascii;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::RwLock`
[INFO] [stdout]  --> src/utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]  --> src/vm.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::slice;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PoisonError` and `self`
[INFO] [stdout]  --> src/vm.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{self, LazyLock, PoisonError};
[INFO] [stdout]   |                 ^^^^            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/vm.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::{Context, Result, anyhow, bail, ensure};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot test inner items
[INFO] [stdout]     --> src/vm.rs:1427:9
[INFO] [stdout]      |
[INFO] [stdout] 1427 |         #[test]
[INFO] [stdout]      |         ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unnameable_test_items)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::fs::MetadataExt`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::os::unix::fs::MetadataExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]   --> src/main.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::{Arc, RwLock};
[INFO] [stdout]    |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::lexer::Lexer`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use self::lexer::Lexer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::object::Environment`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use self::object::Environment;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::utils::print_errors`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use self::utils::print_errors;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ast.rs:791:13
[INFO] [stdout]     |
[INFO] [stdout] 791 |         let mut program = Program {
[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: unreachable pattern
[INFO] [stdout]    --> src/compiler.rs:521:13
[INFO] [stdout]     |
[INFO] [stdout] 521 |             _ => unimplemented!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/compiler.rs:521:13
[INFO] [stdout]     |
[INFO] [stdout] 194 |             ast::Node::Program(program) => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 200 |             ast::Node::Statement(stmt) => match stmt {
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 212 |             ast::Node::LetStatement(let_stmt) => {
[INFO] [stdout]     |             --------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 226 |             ast::Node::ExpressionStatement(expr_stmt) => {
[INFO] [stdout]     |             ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 521 |             _ => unimplemented!(),
[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: unreachable pattern
[INFO] [stdout]    --> src/compiler.rs:521:13
[INFO] [stdout]     |
[INFO] [stdout] 521 |             _ => unimplemented!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/compiler.rs:521:13
[INFO] [stdout]     |
[INFO] [stdout] 194 |             ast::Node::Program(program) => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 200 |             ast::Node::Statement(stmt) => match stmt {
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 212 |             ast::Node::LetStatement(let_stmt) => {
[INFO] [stdout]     |             --------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 226 |             ast::Node::ExpressionStatement(expr_stmt) => {
[INFO] [stdout]     |             ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 521 |             _ => unimplemented!(),
[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: `expected`
[INFO] [stdout]    --> src/compiler.rs:623:45
[INFO] [stdout]     |
[INFO] [stdout] 623 |             if !matches!(got.unwrap().kind, expected) {
[INFO] [stdout]     |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tests`
[INFO] [stdout]     --> src/compiler.rs:1229:13
[INFO] [stdout]      |
[INFO] [stdout] 1229 |         let tests = [
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/vm.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 426 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/vm.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 OpCodeKind::Constant => {
[INFO] [stdout]     |                 -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 222 |                 OpCodeKind::Add | OpCodeKind::Sub | OpCodeKind::Mul | OpCodeKind::Div => {
[INFO] [stdout]     |                 --------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 227 |                 OpCodeKind::Equal | OpCodeKind::NotEqual | OpCodeKind::GreaterThan => {
[INFO] [stdout]     |                 ------------------------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 233 |                 OpCodeKind::True => {
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 426 |                 _ => {
[INFO] [stdout]     |                 ^ ...and 17 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/vm.rs:543:13
[INFO] [stdout]     |
[INFO] [stdout] 543 |             other => {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_file_path`
[INFO] [stdout]   --> src/main.rs:39:14
[INFO] [stdout]    |
[INFO] [stdout] 39 |         Some(input_file_path) => {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_token` is never used
[INFO] [stdout]   --> src/ast.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait NodeInterface: Display + Debug {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn get_token(&self) -> Token;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BlockStatement` is never constructed
[INFO] [stdout]   --> src/ast.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum Expression {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 52 |     BlockStatement(BlockStatement),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` 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: associated function `empty` is never used
[INFO] [stdout]   --> src/ast.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl Expression {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 56 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `empty` and `from_str` are never used
[INFO] [stdout]    --> src/ast.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Identifier {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:316:12
[INFO] [stdout]     |
[INFO] [stdout] 307 | impl PrefixExpression {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_interface` is never used
[INFO] [stdout]    --> src/ast.rs:581:8
[INFO] [stdout]     |
[INFO] [stdout] 580 | impl Statement {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 581 |     fn as_interface(&self) -> &dyn NodeInterface {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:629:12
[INFO] [stdout]     |
[INFO] [stdout] 619 | impl LetStatement {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 629 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:675:12
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl ReturnStatement {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:720:12
[INFO] [stdout]     |
[INFO] [stdout] 711 | impl ExpressionStatement {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 720 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_builtin_by_name` is never used
[INFO] [stdout]   --> src/builtins.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn get_builtin_by_name(name: &str) -> Option<&'static Builtin> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DefinitionNotFound` is never constructed
[INFO] [stdout]   --> src/code.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum CodeError {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] 12 |     #[error("definition for opcode `{opcode:?}` not found.")]
[INFO] [stdout] 13 |     DefinitionNotFound { opcode: OpCodeDef },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CodeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `opcode_kind` is never read
[INFO] [stdout]   --> src/code.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct OpCodeDef {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 57 |     pub opcode_kind: OpCodeKind,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OpCodeDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `lookup_byte` is never used
[INFO] [stdout]    --> src/code.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl OpCodeDef {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn lookup_byte(byte: u8) -> Result<&'static Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insts_from_inst_list` is never used
[INFO] [stdout]    --> src/code.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub fn insts_from_inst_list(list: &[Vec<u8>]) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/compiler.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ByteCode {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 31 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompilerTestCase` is never constructed
[INFO] [stdout]    --> src/compiler.rs:582:12
[INFO] [stdout]     |
[INFO] [stdout] 582 |     struct CompilerTestCase {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/compiler.rs:589:12
[INFO] [stdout]     |
[INFO] [stdout] 588 |     impl CompilerTestCase {
[INFO] [stdout]     |     --------------------- associated function in this implementation
[INFO] [stdout] 589 |         fn new(input: &str, expected_consts: &[Object], expected_inst_list: &[Vec<u8>]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_compiler_tests` is never used
[INFO] [stdout]    --> src/compiler.rs:681:8
[INFO] [stdout]     |
[INFO] [stdout] 681 |     fn run_compiler_tests(tests: &[CompilerTestCase]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/compiler.rs:722:8
[INFO] [stdout]     |
[INFO] [stdout] 722 |     fn parse(input: &str) -> Result<Program> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_insts` is never used
[INFO] [stdout]    --> src/compiler.rs:728:8
[INFO] [stdout]     |
[INFO] [stdout] 728 |     fn test_insts(expected: &[u8], actual: &[u8]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_consts` is never used
[INFO] [stdout]    --> src/compiler.rs:755:8
[INFO] [stdout]     |
[INFO] [stdout] 755 |     fn test_consts(expected: &[Object], actual: &[Arc<Object>]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_string_object` is never used
[INFO] [stdout]    --> src/compiler.rs:798:8
[INFO] [stdout]     |
[INFO] [stdout] 798 |     fn test_string_object(expected: &str, actual: &Object) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_integer_object` is never used
[INFO] [stdout]    --> src/compiler.rs:817:8
[INFO] [stdout]     |
[INFO] [stdout] 817 |     fn test_integer_object(expected: i64, actual: &Object) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile_expression` is never used
[INFO] [stdout]     --> src/compiler.rs:1273:8
[INFO] [stdout]      |
[INFO] [stdout] 1273 |     fn compile_expression(input: &str) -> ByteCode {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disasm` is never used
[INFO] [stdout]  --> src/disasm.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn disasm(insts: &[u8]) -> String {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instruction` is never constructed
[INFO] [stdout]   --> src/disasm.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Instruction {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `read_from` is never used
[INFO] [stdout]   --> src/disasm.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Instruction {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 20 |     pub fn read_from(bytes: &[u8], offset: usize) -> Result<(Self, usize)> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instructions` is never constructed
[INFO] [stdout]   --> src/disasm.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Instructions(pub Vec<u8>);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_inst_list` are never used
[INFO] [stdout]   --> src/disasm.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Instructions {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 57 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn from_inst_list(list: &[Instructions]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Function` and `ReturnValue` are never constructed
[INFO] [stdout]   --> src/object.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum Object {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Function(Arc<RwLock<Function>>),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 28 |     ReturnValue(Arc<RwLock<ReturnValue>>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Object` 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: associated items `array`, `builtin`, `from_func_litereal`, `ret_val`, and `is_returned` are never used
[INFO] [stdout]    --> src/object.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl Object {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn array(array: &[Object]) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn builtin(func: BuiltinFunction) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn from_func_litereal(literal: &FunctionLiteral, env: Arc<RwLock<Environment>>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn ret_val(val: Arc<Object>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn is_returned(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/object.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 255 | impl ReturnValue {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 256 |     pub fn new(value: Arc<Object>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `create_function_env` are never used
[INFO] [stdout]    --> src/object.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 291 | impl Function {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 292 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub fn create_function_env(&self, args: &[Arc<Object>]) -> Result<Arc<RwLock<Environment>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `str`, `int`, and `bool` are never used
[INFO] [stdout]    --> src/object.rs:426:12
[INFO] [stdout]     |
[INFO] [stdout] 410 | impl HashKeyObject {
[INFO] [stdout]     | ------------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub fn str(value: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub fn int(value: i64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn bool(value: bool) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_true` is never used
[INFO] [stdout]    --> src/object.rs:564:8
[INFO] [stdout]     |
[INFO] [stdout] 564 | pub fn create_true() -> Arc<Object> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_false` is never used
[INFO] [stdout]    --> src/object.rs:568:8
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub fn create_false() -> Arc<Object> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used
[INFO] [stdout]    --> src/object.rs:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl Environment {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 599 |     pub fn new(outer: Option<Arc<RwLock<Environment>>>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 606 |     pub fn get(&self, name: &str) -> Option<Arc<Object>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 613 |     pub fn set(&mut self, name: &str, val: Arc<Object>) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LiteralForTest` is never used
[INFO] [stdout]    --> src/parser.rs:738:10
[INFO] [stdout]     |
[INFO] [stdout] 738 |     enum LiteralForTest {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `int`, `ident`, and `bool` are never used
[INFO] [stdout]    --> src/parser.rs:745:12
[INFO] [stdout]     |
[INFO] [stdout] 744 |     impl LiteralForTest {
[INFO] [stdout]     |     ------------------- associated functions in this implementation
[INFO] [stdout] 745 |         fn int(value: i64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 748 |         fn ident(value: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 752 |         fn bool(value: bool) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_single_statement` is never used
[INFO] [stdout]    --> src/parser.rs:757:8
[INFO] [stdout]     |
[INFO] [stdout] 757 |     fn parse_single_statement(input: &str) -> Result<Statement> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_single_expression_statement` is never used
[INFO] [stdout]    --> src/parser.rs:776:8
[INFO] [stdout]     |
[INFO] [stdout] 776 |     fn parse_single_expression_statement(input: &str) -> Result<ExpressionStatement> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_let_statement` is never used
[INFO] [stdout]    --> src/parser.rs:848:8
[INFO] [stdout]     |
[INFO] [stdout] 848 |     fn test_let_statement(stmt: &Statement, name: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_infix_expression` is never used
[INFO] [stdout]     --> src/parser.rs:1715:8
[INFO] [stdout]      |
[INFO] [stdout] 1715 |     fn test_infix_expression(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_literal_expression` is never used
[INFO] [stdout]     --> src/parser.rs:1740:8
[INFO] [stdout]      |
[INFO] [stdout] 1740 |     fn test_literal_expression(expr: &Expression, expected: &LiteralForTest) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_string_literal` is never used
[INFO] [stdout]     --> src/parser.rs:1748:8
[INFO] [stdout]      |
[INFO] [stdout] 1748 |     fn test_string_literal(expr: &Expression, value: &str) -> Result<()> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_integer_literal` is never used
[INFO] [stdout]     --> src/parser.rs:1765:8
[INFO] [stdout]      |
[INFO] [stdout] 1765 |     fn test_integer_literal(expr: &Expression, value: i64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_boolean_literal` is never used
[INFO] [stdout]     --> src/parser.rs:1788:8
[INFO] [stdout]      |
[INFO] [stdout] 1788 |     fn test_boolean_literal(expr: &Expression, value: bool) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_identifier` is never used
[INFO] [stdout]     --> src/parser.rs:1812:8
[INFO] [stdout]      |
[INFO] [stdout] 1812 |     fn test_identifier(expr: &Expression, value: &str) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_u16_to_bytes_big_endian` is never used
[INFO] [stdout]   --> src/utils.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn push_u16_to_bytes_big_endian(vector: &mut Vec<u8>, value: u16) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `concatenate_insts_list` is never used
[INFO] [stdout]   --> src/utils.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn concatenate_insts_list(insts_list: &[Vec<u8>]) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flatten_u8` is never used
[INFO] [stdout]   --> src/utils.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn flatten_u8(array: Vec<Vec<u8>>) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stack_top` is never used
[INFO] [stdout]    --> src/vm.rs:767:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl Vm {
[INFO] [stdout]     | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 767 |     pub fn stack_top(&self) -> Option<Arc<Object>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/vm.rs:794:8
[INFO] [stdout]     |
[INFO] [stdout] 794 |     fn parse(input: &str) -> Result<ast::Program> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_integer_object` is never used
[INFO] [stdout]    --> src/vm.rs:801:8
[INFO] [stdout]     |
[INFO] [stdout] 801 |     fn test_integer_object(expected: i64, obj: Arc<object::Object>) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VmTestCase` is never constructed
[INFO] [stdout]    --> src/vm.rs:820:12
[INFO] [stdout]     |
[INFO] [stdout] 820 |     struct VmTestCase {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/vm.rs:826:12
[INFO] [stdout]     |
[INFO] [stdout] 825 |     impl VmTestCase {
[INFO] [stdout]     |     --------------- associated function in this implementation
[INFO] [stdout] 826 |         fn new(input: &'static str, expected: object::Object) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_vm_tests` is never used
[INFO] [stdout]    --> src/vm.rs:831:8
[INFO] [stdout]     |
[INFO] [stdout] 831 |     fn run_vm_tests(tests: &[VmTestCase]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_expected_object` is never used
[INFO] [stdout]    --> src/vm.rs:854:8
[INFO] [stdout]     |
[INFO] [stdout] 854 |     fn test_expected_object(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_from_vec` is never used
[INFO] [stdout]     --> src/vm.rs:1093:8
[INFO] [stdout]      |
[INFO] [stdout] 1093 |     fn hash_from_vec(vector: Vec<(Object, Object)>) -> Object {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn get_node(&self) -> Node;
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn get_node(&self) -> Node<'_>;
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast.rs:80:17
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_node(&self) -> Node {
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:154:17
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:214:17
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:245:17
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:279:17
[INFO] [stdout]     |
[INFO] [stdout] 279 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 279 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:326:17
[INFO] [stdout]     |
[INFO] [stdout] 326 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 326 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:361:17
[INFO] [stdout]     |
[INFO] [stdout] 361 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 361 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:406:17
[INFO] [stdout]     |
[INFO] [stdout] 406 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 406 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:445:17
[INFO] [stdout]     |
[INFO] [stdout] 445 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 445 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:483:17
[INFO] [stdout]     |
[INFO] [stdout] 483 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 483 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:521:17
[INFO] [stdout]     |
[INFO] [stdout] 521 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 521 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:552:17
[INFO] [stdout]     |
[INFO] [stdout] 552 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 552 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:591:17
[INFO] [stdout]     |
[INFO] [stdout] 591 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 591 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:640:17
[INFO] [stdout]     |
[INFO] [stdout] 640 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 640 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:685:17
[INFO] [stdout]     |
[INFO] [stdout] 685 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 685 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:730:17
[INFO] [stdout]     |
[INFO] [stdout] 730 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 730 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:763:17
[INFO] [stdout]     |
[INFO] [stdout] 763 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 763 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/object.rs:542:5
[INFO] [stdout]     |
[INFO] [stdout] 540 | #[derive(Debug, Clone, PartialEq, Eq)]
[INFO] [stdout]     |                        --------- in this derive macro expansion
[INFO] [stdout] 541 | pub struct Builtin {
[INFO] [stdout] 542 |     pub func: BuiltinFunction,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/symbol_table.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let mut global = Arc::new(RwLock::new(SymbolTable::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/symbol_table.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut first_local = Arc::new(RwLock::new(SymbolTable::new_enclosed(global.clone())));
[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/symbol_table.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let mut second_local =
[INFO] [stdout]     |             ----^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/symbol_table.rs:197:14
[INFO] [stdout]     |
[INFO] [stdout] 197 |         for (i, symbol) in expected.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/symbol_table.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let mut global = Arc::new(RwLock::new(SymbolTable::new()));
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/symbol_table.rs:250:14
[INFO] [stdout]     |
[INFO] [stdout] 250 |         for (i, (symbol_table, symbols)) in tests.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/symbol_table.rs:251:18
[INFO] [stdout]     |
[INFO] [stdout] 251 |             for (j, symbol) in symbols.iter().enumerate() {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/vm.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 426 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/vm.rs:426:17
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 OpCodeKind::Constant => {
[INFO] [stdout]     |                 -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 222 |                 OpCodeKind::Add | OpCodeKind::Sub | OpCodeKind::Mul | OpCodeKind::Div => {
[INFO] [stdout]     |                 --------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 227 |                 OpCodeKind::Equal | OpCodeKind::NotEqual | OpCodeKind::GreaterThan => {
[INFO] [stdout]     |                 ------------------------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 233 |                 OpCodeKind::True => {
[INFO] [stdout]     |                 ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 426 |                 _ => {
[INFO] [stdout]     |                 ^ ...and 17 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/vm.rs:543:13
[INFO] [stdout]     |
[INFO] [stdout] 543 |             other => {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tests`
[INFO] [stdout]     --> src/vm.rs:1229:13
[INFO] [stdout]      |
[INFO] [stdout] 1229 |         let tests = [
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_file_path`
[INFO] [stdout]   --> src/main.rs:39:14
[INFO] [stdout]    |
[INFO] [stdout] 39 |         Some(input_file_path) => {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BlockStatement` is never constructed
[INFO] [stdout]   --> src/ast.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum Expression {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 52 |     BlockStatement(BlockStatement),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]   --> src/ast.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl Expression {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 56 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `empty` and `from_str` are never used
[INFO] [stdout]    --> src/ast.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Identifier {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:316:12
[INFO] [stdout]     |
[INFO] [stdout] 307 | impl PrefixExpression {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:629:12
[INFO] [stdout]     |
[INFO] [stdout] 619 | impl LetStatement {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 629 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:675:12
[INFO] [stdout]     |
[INFO] [stdout] 666 | impl ReturnStatement {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:720:12
[INFO] [stdout]     |
[INFO] [stdout] 711 | impl ExpressionStatement {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 720 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_builtin_by_name` is never used
[INFO] [stdout]   --> src/builtins.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn get_builtin_by_name(name: &str) -> Option<&'static Builtin> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DefinitionNotFound` is never constructed
[INFO] [stdout]   --> src/code.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum CodeError {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] 12 |     #[error("definition for opcode `{opcode:?}` not found.")]
[INFO] [stdout] 13 |     DefinitionNotFound { opcode: OpCodeDef },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CodeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `opcode_kind` is never read
[INFO] [stdout]   --> src/code.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct OpCodeDef {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 57 |     pub opcode_kind: OpCodeKind,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OpCodeDef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/compiler.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ByteCode {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 31 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile_expression` is never used
[INFO] [stdout]     --> src/compiler.rs:1273:8
[INFO] [stdout]      |
[INFO] [stdout] 1273 |     fn compile_expression(input: &str) -> ByteCode {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_inst_list` are never used
[INFO] [stdout]   --> src/disasm.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Instructions {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 57 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn from_inst_list(list: &[Instructions]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Function` and `ReturnValue` are never constructed
[INFO] [stdout]   --> src/object.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum Object {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Function(Arc<RwLock<Function>>),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 28 |     ReturnValue(Arc<RwLock<ReturnValue>>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Object` 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: associated items `builtin`, `from_func_litereal`, `ret_val`, and `is_returned` are never used
[INFO] [stdout]    --> src/object.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl Object {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn builtin(func: BuiltinFunction) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn from_func_litereal(literal: &FunctionLiteral, env: Arc<RwLock<Environment>>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn ret_val(val: Arc<Object>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn is_returned(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/object.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 255 | impl ReturnValue {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 256 |     pub fn new(value: Arc<Object>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `create_function_env` are never used
[INFO] [stdout]    --> src/object.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 291 | impl Function {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 292 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub fn create_function_env(&self, args: &[Arc<Object>]) -> Result<Arc<RwLock<Environment>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `str`, `int`, and `bool` are never used
[INFO] [stdout]    --> src/object.rs:426:12
[INFO] [stdout]     |
[INFO] [stdout] 410 | impl HashKeyObject {
[INFO] [stdout]     | ------------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub fn str(value: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub fn int(value: i64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn bool(value: bool) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_true` is never used
[INFO] [stdout]    --> src/object.rs:564:8
[INFO] [stdout]     |
[INFO] [stdout] 564 | pub fn create_true() -> Arc<Object> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_false` is never used
[INFO] [stdout]    --> src/object.rs:568:8
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub fn create_false() -> Arc<Object> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used
[INFO] [stdout]    --> src/object.rs:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl Environment {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 599 |     pub fn new(outer: Option<Arc<RwLock<Environment>>>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 606 |     pub fn get(&self, name: &str) -> Option<Arc<Object>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 613 |     pub fn set(&mut self, name: &str, val: Arc<Object>) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_u16_to_bytes_big_endian` is never used
[INFO] [stdout]   --> src/utils.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn push_u16_to_bytes_big_endian(vector: &mut Vec<u8>, value: u16) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `concatenate_insts_list` is never used
[INFO] [stdout]   --> src/utils.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn concatenate_insts_list(insts_list: &[Vec<u8>]) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stack_top` is never used
[INFO] [stdout]    --> src/vm.rs:767:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl Vm {
[INFO] [stdout]     | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 767 |     pub fn stack_top(&self) -> Option<Arc<Object>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_integer_object` is never used
[INFO] [stdout]    --> src/vm.rs:801:8
[INFO] [stdout]     |
[INFO] [stdout] 801 |     fn test_integer_object(expected: i64, obj: Arc<object::Object>) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_builtin_functions` is never used
[INFO] [stdout]     --> src/vm.rs:1428:12
[INFO] [stdout]      |
[INFO] [stdout] 1428 |         fn test_builtin_functions() {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn get_node(&self) -> Node;
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn get_node(&self) -> Node<'_>;
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast.rs:80:17
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_node(&self) -> Node {
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:154:17
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 154 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:214:17
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 214 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:245:17
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 245 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:279:17
[INFO] [stdout]     |
[INFO] [stdout] 279 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 279 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:326:17
[INFO] [stdout]     |
[INFO] [stdout] 326 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 326 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:361:17
[INFO] [stdout]     |
[INFO] [stdout] 361 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 361 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:406:17
[INFO] [stdout]     |
[INFO] [stdout] 406 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 406 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:445:17
[INFO] [stdout]     |
[INFO] [stdout] 445 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 445 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:483:17
[INFO] [stdout]     |
[INFO] [stdout] 483 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 483 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:521:17
[INFO] [stdout]     |
[INFO] [stdout] 521 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 521 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:552:17
[INFO] [stdout]     |
[INFO] [stdout] 552 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 552 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:591:17
[INFO] [stdout]     |
[INFO] [stdout] 591 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 591 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:640:17
[INFO] [stdout]     |
[INFO] [stdout] 640 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 640 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:685:17
[INFO] [stdout]     |
[INFO] [stdout] 685 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 685 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:730:17
[INFO] [stdout]     |
[INFO] [stdout] 730 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 730 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:763:17
[INFO] [stdout]     |
[INFO] [stdout] 763 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 763 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/compiler.rs:634:9
[INFO] [stdout]     |
[INFO] [stdout] 634 |         compiler.add_inst(OpCodeKind::Mul, &[]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 634 |         let _ = compiler.add_inst(OpCodeKind::Mul, &[]);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/compiler.rs:640:9
[INFO] [stdout]     |
[INFO] [stdout] 640 |         compiler.add_inst(OpCodeKind::Sub, &[]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 640 |         let _ = compiler.add_inst(OpCodeKind::Sub, &[]);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/compiler.rs:665:9
[INFO] [stdout]     |
[INFO] [stdout] 665 |         compiler.add_inst(OpCodeKind::Add, &[]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 665 |         let _ = compiler.add_inst(OpCodeKind::Add, &[]);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/object.rs:542:5
[INFO] [stdout]     |
[INFO] [stdout] 540 | #[derive(Debug, Clone, PartialEq, Eq)]
[INFO] [stdout]     |                        --------- in this derive macro expansion
[INFO] [stdout] 541 | pub struct Builtin {
[INFO] [stdout] 542 |     pub func: BuiltinFunction,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.64s
[INFO] running `Command { std: "docker" "inspect" "118804721bf23afb72edbbc04364955b78d5751df97d5e28f049b7c77e8600e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "118804721bf23afb72edbbc04364955b78d5751df97d5e28f049b7c77e8600e5", kill_on_drop: false }`
[INFO] [stdout] 118804721bf23afb72edbbc04364955b78d5751df97d5e28f049b7c77e8600e5
