[INFO] cloning repository https://github.com/ammar-abu-yaman/rusty-lox
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ammar-abu-yaman/rusty-lox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammar-abu-yaman%2Frusty-lox", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammar-abu-yaman%2Frusty-lox'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1f86ad120ff30bb92d5d7d3f0a5e0714f0b7311d
[INFO] checking ammar-abu-yaman/rusty-lox against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammar-abu-yaman%2Frusty-lox" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/ammar-abu-yaman/rusty-lox
[INFO] finished tweaking git repo https://github.com/ammar-abu-yaman/rusty-lox
[INFO] tweaked toml for git repo https://github.com/ammar-abu-yaman/rusty-lox written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ammar-abu-yaman/rusty-lox on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ammar-abu-yaman/rusty-lox 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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3a7a8c959c8c8defe525206e2aa761510ab9b9c3e60891392991b95131b65e09
[INFO] running `Command { std: "docker" "start" "3a7a8c959c8c8defe525206e2aa761510ab9b9c3e60891392991b95131b65e09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3a7a8c959c8c8defe525206e2aa761510ab9b9c3e60891392991b95131b65e09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3a7a8c959c8c8defe525206e2aa761510ab9b9c3e60891392991b95131b65e09" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3a7a8c959c8c8defe525206e2aa761510ab9b9c3e60891392991b95131b65e09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3a7a8c959c8c8defe525206e2aa761510ab9b9c3e60891392991b95131b65e09" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking codecrafters-interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> tests/integration_test.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> tests/integration_test.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]  --> tests/integration_test.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::process::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[macro_use]
[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 `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | #[macro_use]
[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: `self`
[INFO] [stdout]  --> src/interpreter/vm/mem.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::interpreter::vm::object::{self, NativeFunction};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `class::ObjInstance`
[INFO] [stdout]   --> src/interpreter/vm/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         class::ObjInstance,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tree_walker::TreeWalk`
[INFO] [stdout]  --> src/interpreter/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tree_walker::TreeWalk;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/interpreter/vm/mem.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::interpreter::vm::object::{self, NativeFunction};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `class::ObjInstance`
[INFO] [stdout]   --> src/interpreter/vm/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         class::ObjInstance,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tree_walker::TreeWalk`
[INFO] [stdout]  --> src/interpreter/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tree_walker::TreeWalk;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `before_bytes`
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:572:13
[INFO] [stdout]     |
[INFO] [stdout] 572 |         let before_bytes = self.mem.bytes_allocated;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_before_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `before_bytes`
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:572:13
[INFO] [stdout]     |
[INFO] [stdout] 572 |         let before_bytes = self.mem.bytes_allocated;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_before_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut file = File::open(filename);
[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: type `BodyType` is more private than the item `CompilationContext::body_type`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:867:5
[INFO] [stdout]     |
[INFO] [stdout] 867 |     pub body_type: BodyType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^ field `CompilationContext::body_type` is reachable at visibility `pub(in crate::interpreter::vm)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BodyType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:30:1
[INFO] [stdout]     |
[INFO] [stdout]  30 | enum BodyType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Stack<'a>` is more private than the item `CompilationContext::stack`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:869:5
[INFO] [stdout]     |
[INFO] [stdout] 869 |     pub stack: Stack<'a>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ field `CompilationContext::stack` is reachable at visibility `pub(in crate::interpreter::vm)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Stack<'a>` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:24:1
[INFO] [stdout]     |
[INFO] [stdout]  24 | struct Stack<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Upvalue` is more private than the item `CompilationContext::upvalues`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:870:5
[INFO] [stdout]     |
[INFO] [stdout] 870 |     pub upvalues: Vec<Upvalue>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `CompilationContext::upvalues` is reachable at visibility `pub(in crate::interpreter::vm)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Upvalue` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:874:1
[INFO] [stdout]     |
[INFO] [stdout] 874 | struct Upvalue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Evaluator` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Evaluator<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Interpreter` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait Interpreter<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type Result<'a, 't, T> = anyhow::Result<T, RuntimeError<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeError` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum RuntimeError<'a, 't> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeWalk` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct TreeWalk<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl TreeWalk<'_, '_> {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:59:8
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout]  59 |     fn eval_stmt(&mut self, statement: &'a Statement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn eval_class_decl(&mut self, stmt: &'a ClassDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn eval_var_decl(&mut self, stmt: &'a VariableDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn eval_fun_decl(&mut self, stmt: &'a FunctionDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn eval_print_stmt(&mut self, stmt: &PrintStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn eval_return_stmt(&mut self, stmt: &ReturnStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn eval_block_stmt(&mut self, stmts: &'a [Statement<'t>], env: BoxedEnvironment<'a, 't>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn eval_expr_stmt(&mut self, stmt: &ExpressionStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn eval_if_stmt(&mut self, stmt: &'a IfStatemnet<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn eval_while_stmt(&mut self, stmt: &'a WhileStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn eval_expr(&mut self, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn eval_super(&mut self, keyword: &Token<'t>, method: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn eval_assignment(&mut self, name: &Token<'t>, value: &Box<Expr<'t>>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn eval_variable(&mut self, name: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn eval_this(&mut self, keyword: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn eval_get(&mut self, object: &Expr<'t>, name: &Token<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn eval_set(&mut self, object: &Expr<'t>, name: &Token<'t>, value: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn eval_or(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn eval_and(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn eval_call(&mut self, callee: &Expr<'t>, paren: &Token<'t>, args: &[Expr<'t>]) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn eval_binary(&mut self, left: &Expr<'t>, operator: &Token<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn eval_unary(&mut self, operator: &Token<'t>, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `lookup_var` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 355 |     fn lookup_var(&self, name: &Token<'t>, height: Option<usize>) -> Option<Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_true` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:363:10
[INFO] [stdout]     |
[INFO] [stdout] 363 | const fn is_true(value: &Value) -> bool {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Class` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Class<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(name: &'t str, methods: HashMap<&'t str, Rc<Function<'a, 't>>>, superclass: Option<Rc<Class<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `init` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 25 |     pub fn init(
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `method` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] 43 |     pub fn method(&self, name: &str) -> Option<Rc<Function<'a, 't>>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedEnvironment` is never used
[INFO] [stdout]  --> src/interpreter/tree_walker/env.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type BoxedEnvironment<'a, 't> = Rc<RefCell<Environment<'a, 't>>>;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ValueMap` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type ValueMap<'a, 't> = HashMap<String, Value<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Environment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `boxed`, and `boxed_with_enclosing` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- associated functions in this implementation
[INFO] [stdout] 19 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn boxed() -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn boxed_with_enclosing(enclosing: &BoxedEnvironment<'a, 't>) -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enclosing`, `get`, `get_at`, `define`, `assign`, and `assign_at` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- methods in this implementation
[INFO] [stdout] 45 |     pub fn enclosing(&self) -> Option<BoxedEnvironment<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn get(&self, name: &str) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_at(&self, name: &str, height: usize) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn define(&mut self, name: impl Into<String>, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn assign(&mut self, name: Token<'t>, value: Value<'a, 't>) -> Result<(), RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn assign_at(&mut self, name: Token<'t>, value: Value<'a, 't>, height: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FunctionType` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum FunctionType {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Function<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn new(decl: &'a FunctionDecl<'t>, env: BoxedEnvironment<'a, 't>, is_init: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bind` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] 48 |     pub fn bind(&self, instance: &Rc<RefCell<Instance<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- methods in this implementation
[INFO] [stdout] 68 |     pub fn call(&self, interpreter: &mut impl Interpreter<'a, 't>, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, Runtim...
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeFunction` is never constructed
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct NativeFunction<'a, 't> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `clock` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- associated functions in this implementation
[INFO] [stdout] 113 |     pub fn new(name: &'static str, arity: usize, native: fn(Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, '...
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn clock() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] 134 |     pub fn call(&self, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn arity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clock` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn clock<'a, 't>(_args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instance` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Instance<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `boxed` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated functions in this implementation
[INFO] [stdout] 18 |     pub fn new(class: Rc<Class<'a, 't>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn boxed(class: Rc<Class<'a, 't>>) -> Rc<RefCell<Self>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get` and `set` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn get(this: &Rc<RefCell<Self>>, name: &Token<'t>) -> Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set(&mut self, name: &'t str, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:714:12
[INFO] [stdout]     |
[INFO] [stdout] 713 | impl Chunk {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 714 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mark_compiler_roots` is never used
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:747:8
[INFO] [stdout]     |
[INFO] [stdout] 746 | impl<'a, W: std::io::Write> ByteCodeCompiler<'a, W> {
[INFO] [stdout]     | --------------------------------------------------- method in this implementation
[INFO] [stdout] 747 |     fn mark_compiler_roots(&mut self) {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_class_mut` and `is_function` are never used
[INFO] [stdout]    --> src/interpreter/vm/object.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl Object {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn as_class_mut(&mut self) -> &mut ObjClass {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn is_function(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_unkown_symbol` is never used
[INFO] [stdout]  --> src/log.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn error_unkown_symbol(line: u64, s: &str) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error` is never used
[INFO] [stdout]  --> src/log.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn error(line: u64, err: &str) {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_token` is never used
[INFO] [stdout]   --> src/log.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn error_token(token: &Token, err: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_runtime` is never used
[INFO] [stdout]   --> src/log.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn error_runtime(err: &RuntimeError) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token` is never used
[INFO] [stdout]   --> src/log.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn token(token: &Token) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_value` is never used
[INFO] [stdout]   --> src/log.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn token_value(token: &Token) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_name` is never used
[INFO] [stdout]   --> src/log.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const fn token_name(token: &Token) -> &'static str {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Parser` is never used
[INFO] [stdout]   --> src/parser.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Parser<'t> {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecursiveDecendantParser` is never constructed
[INFO] [stdout]   --> src/parser.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RecursiveDecendantParser<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]   --> src/parser.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 | enum ParseError {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/parser.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RecursiveDecendantParser<'_> {
[INFO] [stdout]    | --------------------------------- associated function in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout]  68 |     fn program(&self) -> Vec<Statement<'t>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn declaration(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn class_declaration(&self) -> Result<ClassDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn variable_declaration(&self) -> Result<VariableDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn function_declaration(&self, kind: FunctionType) -> Result<FunctionDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn parameters(&self) -> Result<Vec<Token<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn block_statement(&self, block_type: Option<FunctionType>) -> Result<BlockStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn if_statement(&self) -> Result<IfStatemnet<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     fn while_statement(&self) -> Result<WhileStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     fn return_statement(&self) -> Result<ReturnStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn desugar_for_statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     fn print_statement(&self) -> Result<PrintStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     fn expression_statement(&self) -> Result<ExpressionStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn expression(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     fn assignment(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     fn logical_or(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn logical_and(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     fn equality(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn comparision(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     fn term(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn factor(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn unary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     fn call(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn arguments(&self) -> Result<Vec<Expr<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     fn primary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek`, `advance`, `consume`, and `synchronize` are never used
[INFO] [stdout]    --> src/parser.rs:472:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout] 472 |     fn peek(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     fn advance(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     fn consume(&self, tt: TokenType, message: impl Into<String>) -> Result<Token<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     fn synchronize(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScopeType` is never used
[INFO] [stdout]   --> src/resolver.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum ScopeType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ClassType` is never used
[INFO] [stdout]   --> src/resolver.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum ClassType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Resolver` is never constructed
[INFO] [stdout]   --> src/resolver.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Resolver<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `has_err` are never used
[INFO] [stdout]   --> src/resolver.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<'a> Resolver<'a> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn has_err(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/resolver.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout]  52 |     pub fn resolve_stmt(&mut self, stmt: &'a Statement) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn resolve_class_decl(&mut self, stmt: &'a ClassDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn resolve_var_decl(&mut self, stmt: &'a VariableDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn resolve_block_stmt(&mut self, stmt: &'a BlockStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn resolve_print_stmt(&mut self, stmt: &'a PrintStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn resolve_expr_stmt(&mut self, stmt: &'a ExpressionStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn resolve_if_stmt(&mut self, stmt: &'a IfStatemnet) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn resolve_while_stmt(&mut self, stmt: &'a WhileStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn resolve_fun_decl(&mut self, stmt: &'a FunctionDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn resolve_function(&mut self, params: &'a Vec<Token>, stmts: &'a Vec<Statement>, scope_type: ScopeType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn resolve_return_stmt(&mut self, stmt: &'a ReturnStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_expr` is never used
[INFO] [stdout]    --> src/resolver.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 172 |     pub fn resolve_expr(&mut self, expr: &'a Expr) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_scope`, `end_scope`, `declare`, `define`, and `annotate` are never used
[INFO] [stdout]    --> src/resolver.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 224 |     fn begin_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn end_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn declare(&mut self, name: &'a Token) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn define(&mut self, name: &'a str) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn annotate(&mut self, name: &str, height: &Cell<Option<usize>>) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scan_all` is never used
[INFO] [stdout]   --> src/scanner.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'t> Scanner {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 35 |     pub fn scan_all(&'t self) -> Vec<Token<'t>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedExpr` is never used
[INFO] [stdout]   --> src/syntax.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type BoxedExpr<'t> = Box<Expr<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedStatement` is never used
[INFO] [stdout]   --> src/syntax.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type BoxedStatement<'t> = Box<Statement<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Statement` is never used
[INFO] [stdout]   --> src/syntax.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Statement<'t> {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ClassDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct FunctionDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct VariableDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrintStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct PrintStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct BlockStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut file = File::open(filename);
[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: struct `IfStatemnet` is never constructed
[INFO] [stdout]   --> src/syntax.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct IfStatemnet<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReturnStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct ReturnStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhileStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct WhileStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExpressionStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct ExpressionStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]   --> src/syntax.rs:82:10
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum Expr<'t> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]    --> src/syntax.rs:137:10
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub enum Value<'a, 't> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]    --> src/syntax.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum Literal<'t> {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/syntax.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl<'t> Expr<'t> {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 194 |     pub fn grouping(expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn unary(operator: Token<'t>, expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn binary(left: Expr<'t>, operator: Token<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn variable(name: Token<'t>, height: Cell<Option<usize>>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn assign(name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn or(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn and(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn call(callee: Expr<'t>, paren: Token<'t>, args: Vec<Expr<'t>>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn get(object: Expr<'t>, name: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn set(object: BoxedExpr<'t>, name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn this(keyword: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn literal(literal: Literal<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn super_(keyword: Token<'t>, method: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]   --> src/token.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct TokenPosition {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 52 |     pub line: u64,
[INFO] [stdout] 53 |     pub offset: u64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenPosition` 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: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         vm.interpret(&line);
[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] 41 |         let _ = vm.interpret(&line);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     vm.interpret(&source);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let _ = vm.interpret(&source);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:140:21
[INFO] [stdout]     |
[INFO] [stdout] 140 |                     writeln!(self.writer, "{}", value);
[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] 140 |                     let _ = writeln!(self.writer, "{}", value);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |         write!(self.writer, "{:04} ", offset);
[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] 435 |         let _ = write!(self.writer, "{:04} ", offset);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:439:13
[INFO] [stdout]     |
[INFO] [stdout] 439 |             write!(self.writer, "   | ");
[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] 439 |             let _ = write!(self.writer, "   | ");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:441:13
[INFO] [stdout]     |
[INFO] [stdout] 441 |             write!(self.writer, "{:4} ", chunk.lines[offset]);
[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] 441 |             let _ = write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:446:17
[INFO] [stdout]     |
[INFO] [stdout] 446 |                 writeln!(self.writer, "OP_RETURN");
[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] 446 |                 let _ = writeln!(self.writer, "OP_RETURN");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:450:17
[INFO] [stdout]     |
[INFO] [stdout] 450 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[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] 450 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:453:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 writeln!(self.writer, "OP_NEGATE");
[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] 453 |                 let _ = writeln!(self.writer, "OP_NEGATE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 456 |                 writeln!(self.writer, "OP_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] 456 |                 let _ = writeln!(self.writer, "OP_ADD");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:459:17
[INFO] [stdout]     |
[INFO] [stdout] 459 |                 writeln!(self.writer, "OP_SUBTRACT");
[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] 459 |                 let _ = writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:462:17
[INFO] [stdout]     |
[INFO] [stdout] 462 |                 writeln!(self.writer, "OP_MULTIPLY");
[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] 462 |                 let _ = writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:465:17
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 writeln!(self.writer, "OP_DIVIDE");
[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] 465 |                 let _ = writeln!(self.writer, "OP_DIVIDE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:468:17
[INFO] [stdout]     |
[INFO] [stdout] 468 |                 writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 468 |                 let _ = writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:471:17
[INFO] [stdout]     |
[INFO] [stdout] 471 |                 writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 471 |                 let _ = writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:474:17
[INFO] [stdout]     |
[INFO] [stdout] 474 |                 writeln!(self.writer, "OP_NIL");
[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] 474 |                 let _ = writeln!(self.writer, "OP_NIL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 |                 writeln!(self.writer, "OP_NOT");
[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] 477 |                 let _ = writeln!(self.writer, "OP_NOT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:480:17
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 writeln!(self.writer, "OP_EQUAL");
[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] 480 |                 let _ = writeln!(self.writer, "OP_EQUAL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:483:17
[INFO] [stdout]     |
[INFO] [stdout] 483 |                 writeln!(self.writer, "OP_GREATER");
[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] 483 |                 let _ = writeln!(self.writer, "OP_GREATER");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |                 writeln!(self.writer, "OP_LESS");
[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] 486 |                 let _ = writeln!(self.writer, "OP_LESS");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:489:17
[INFO] [stdout]     |
[INFO] [stdout] 489 |                 writeln!(self.writer, "OP_PRINT");
[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] 489 |                 let _ = writeln!(self.writer, "OP_PRINT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:492:17
[INFO] [stdout]     |
[INFO] [stdout] 492 |                 writeln!(self.writer, "OP_POP");
[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] 492 |                 let _ = writeln!(self.writer, "OP_POP");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:496:17
[INFO] [stdout]     |
[INFO] [stdout] 496 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[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] 496 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:500:17
[INFO] [stdout]     |
[INFO] [stdout] 500 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[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] 500 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[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] 504 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:507:17
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[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] 507 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:510:17
[INFO] [stdout]     |
[INFO] [stdout] 510 |                 writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[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] 510 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:514:17
[INFO] [stdout]     |
[INFO] [stdout] 514 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[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] 514 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:518:17
[INFO] [stdout]     |
[INFO] [stdout] 518 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[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] 518 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:522:17
[INFO] [stdout]     |
[INFO] [stdout] 522 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[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] 522 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:525:17
[INFO] [stdout]     |
[INFO] [stdout] 525 |                 writeln!(self.writer, "{:<16} {:4}", "OP_CALL", arg_count);
[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] 525 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_CALL", arg_count);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:529:17
[INFO] [stdout]     |
[INFO] [stdout] 529 |                 writeln!(self.writer, "{:<16} {:4} -> {}", "OP_CLOSURE", closure_offset, function);
[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] 529 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {}", "OP_CLOSURE", closure_offset, function);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:539:25
[INFO] [stdout]     |
[INFO] [stdout] 539 |                         writeln!(self.writer, "{:<4} {is_local} {}", offset + i * 2, index);
[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] 539 |                         let _ = writeln!(self.writer, "{:<4} {is_local} {}", offset + i * 2, index);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:543:17
[INFO] [stdout]     |
[INFO] [stdout] 543 |                 writeln!(self.writer, "{:<16} {:4}", "OP_GET_UPVALUE", index);
[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] 543 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_GET_UPVALUE", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:546:17
[INFO] [stdout]     |
[INFO] [stdout] 546 |                 writeln!(self.writer, "{:<16} {:4}", "OP_SET_UPVALUE", index);
[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] 546 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_SET_UPVALUE", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:549:17
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 writeln!(self.writer, "OP_CLOSE_UPVALUE");
[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] 549 |                 let _ = writeln!(self.writer, "OP_CLOSE_UPVALUE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:553:17
[INFO] [stdout]     |
[INFO] [stdout] 553 |                 writeln!(self.writer, "{:<16} {:4} {}", "OP_CLASS", name, value);
[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] 553 |                 let _ = writeln!(self.writer, "{:<16} {:4} {}", "OP_CLASS", name, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:557:17
[INFO] [stdout]     |
[INFO] [stdout] 557 |                 writeln!(self.writer, "{:<16} {:4} {}", "OP_SET_PROPERTY", name, value);
[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] 557 |                 let _ = writeln!(self.writer, "{:<16} {:4} {}", "OP_SET_PROPERTY", name, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:561:17
[INFO] [stdout]     |
[INFO] [stdout] 561 |                 writeln!(self.writer, "{:<16} {:4} {}", "OP_GET_PROPERTY", name, value);
[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] 561 |                 let _ = writeln!(self.writer, "{:<16} {:4} {}", "OP_GET_PROPERTY", name, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:647:9
[INFO] [stdout]     |
[INFO] [stdout] 647 |         writeln!(self.writer, "{message}");
[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] 647 |         let _ = writeln!(self.writer, "{message}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:651:13
[INFO] [stdout]     |
[INFO] [stdout] 651 |             writeln!(self.writer, "[line {line}] in {name}");
[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] 651 |             let _ = writeln!(self.writer, "[line {line}] in {name}");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BodyType` is more private than the item `CompilationContext::body_type`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:867:5
[INFO] [stdout]     |
[INFO] [stdout] 867 |     pub body_type: BodyType,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^ field `CompilationContext::body_type` is reachable at visibility `pub(in crate::interpreter::vm)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BodyType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:30:1
[INFO] [stdout]     |
[INFO] [stdout]  30 | enum BodyType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Stack<'a>` is more private than the item `CompilationContext::stack`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:869:5
[INFO] [stdout]     |
[INFO] [stdout] 869 |     pub stack: Stack<'a>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^ field `CompilationContext::stack` is reachable at visibility `pub(in crate::interpreter::vm)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Stack<'a>` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:24:1
[INFO] [stdout]     |
[INFO] [stdout]  24 | struct Stack<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Upvalue` is more private than the item `CompilationContext::upvalues`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:870:5
[INFO] [stdout]     |
[INFO] [stdout] 870 |     pub upvalues: Vec<Upvalue>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `CompilationContext::upvalues` is reachable at visibility `pub(in crate::interpreter::vm)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Upvalue` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:874:1
[INFO] [stdout]     |
[INFO] [stdout] 874 | struct Upvalue {
[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/interpreter/vm/object.rs:295:79
[INFO] [stdout]     |
[INFO] [stdout] 295 |             (ObjectData::NativeFunction(a), ObjectData::NativeFunction(b)) => a == b,
[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] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]     |
[INFO] [stdout] 295 -             (ObjectData::NativeFunction(a), ObjectData::NativeFunction(b)) => a == b,
[INFO] [stdout] 295 +             (ObjectData::NativeFunction(a), ObjectData::NativeFunction(b)) => std::ptr::fn_addr_eq(*a, *b),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scanner.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn number(&self, line: u64, offset: u64) -> Token {
[INFO] [stdout]     |               ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden 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] 105 |     fn number(&self, line: u64, offset: u64) -> Token<'_> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Evaluator` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Evaluator<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Interpreter` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait Interpreter<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type Result<'a, 't, T> = anyhow::Result<T, RuntimeError<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeError` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum RuntimeError<'a, 't> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeWalk` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct TreeWalk<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl TreeWalk<'_, '_> {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:59:8
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout]  59 |     fn eval_stmt(&mut self, statement: &'a Statement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn eval_class_decl(&mut self, stmt: &'a ClassDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn eval_var_decl(&mut self, stmt: &'a VariableDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn eval_fun_decl(&mut self, stmt: &'a FunctionDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn eval_print_stmt(&mut self, stmt: &PrintStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn eval_return_stmt(&mut self, stmt: &ReturnStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn eval_block_stmt(&mut self, stmts: &'a [Statement<'t>], env: BoxedEnvironment<'a, 't>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn eval_expr_stmt(&mut self, stmt: &ExpressionStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn eval_if_stmt(&mut self, stmt: &'a IfStatemnet<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn eval_while_stmt(&mut self, stmt: &'a WhileStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn eval_expr(&mut self, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn eval_super(&mut self, keyword: &Token<'t>, method: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn eval_assignment(&mut self, name: &Token<'t>, value: &Box<Expr<'t>>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn eval_variable(&mut self, name: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn eval_this(&mut self, keyword: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn eval_get(&mut self, object: &Expr<'t>, name: &Token<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn eval_set(&mut self, object: &Expr<'t>, name: &Token<'t>, value: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn eval_or(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn eval_and(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn eval_call(&mut self, callee: &Expr<'t>, paren: &Token<'t>, args: &[Expr<'t>]) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn eval_binary(&mut self, left: &Expr<'t>, operator: &Token<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn eval_unary(&mut self, operator: &Token<'t>, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `lookup_var` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 355 |     fn lookup_var(&self, name: &Token<'t>, height: Option<usize>) -> Option<Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_true` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:363:10
[INFO] [stdout]     |
[INFO] [stdout] 363 | const fn is_true(value: &Value) -> bool {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Class` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Class<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(name: &'t str, methods: HashMap<&'t str, Rc<Function<'a, 't>>>, superclass: Option<Rc<Class<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `init` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 25 |     pub fn init(
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `method` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] 43 |     pub fn method(&self, name: &str) -> Option<Rc<Function<'a, 't>>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedEnvironment` is never used
[INFO] [stdout]  --> src/interpreter/tree_walker/env.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type BoxedEnvironment<'a, 't> = Rc<RefCell<Environment<'a, 't>>>;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ValueMap` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type ValueMap<'a, 't> = HashMap<String, Value<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Environment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `boxed`, and `boxed_with_enclosing` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- associated functions in this implementation
[INFO] [stdout] 19 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn boxed() -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn boxed_with_enclosing(enclosing: &BoxedEnvironment<'a, 't>) -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enclosing`, `get`, `get_at`, `define`, `assign`, and `assign_at` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- methods in this implementation
[INFO] [stdout] 45 |     pub fn enclosing(&self) -> Option<BoxedEnvironment<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn get(&self, name: &str) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_at(&self, name: &str, height: usize) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn define(&mut self, name: impl Into<String>, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn assign(&mut self, name: Token<'t>, value: Value<'a, 't>) -> Result<(), RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn assign_at(&mut self, name: Token<'t>, value: Value<'a, 't>, height: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FunctionType` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum FunctionType {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Function<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn new(decl: &'a FunctionDecl<'t>, env: BoxedEnvironment<'a, 't>, is_init: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bind` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] 48 |     pub fn bind(&self, instance: &Rc<RefCell<Instance<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- methods in this implementation
[INFO] [stdout] 68 |     pub fn call(&self, interpreter: &mut impl Interpreter<'a, 't>, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, Runtim...
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeFunction` is never constructed
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct NativeFunction<'a, 't> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `clock` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- associated functions in this implementation
[INFO] [stdout] 113 |     pub fn new(name: &'static str, arity: usize, native: fn(Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, '...
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn clock() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] 134 |     pub fn call(&self, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn arity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clock` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn clock<'a, 't>(_args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instance` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Instance<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `boxed` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated functions in this implementation
[INFO] [stdout] 18 |     pub fn new(class: Rc<Class<'a, 't>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn boxed(class: Rc<Class<'a, 't>>) -> Rc<RefCell<Self>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get` and `set` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn get(this: &Rc<RefCell<Self>>, name: &Token<'t>) -> Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set(&mut self, name: &'t str, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mark_compiler_roots` is never used
[INFO] [stdout]    --> src/interpreter/vm/compiler.rs:747:8
[INFO] [stdout]     |
[INFO] [stdout] 746 | impl<'a, W: std::io::Write> ByteCodeCompiler<'a, W> {
[INFO] [stdout]     | --------------------------------------------------- method in this implementation
[INFO] [stdout] 747 |     fn mark_compiler_roots(&mut self) {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_class_mut` and `is_function` are never used
[INFO] [stdout]    --> src/interpreter/vm/object.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl Object {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn as_class_mut(&mut self) -> &mut ObjClass {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn is_function(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_unkown_symbol` is never used
[INFO] [stdout]  --> src/log.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn error_unkown_symbol(line: u64, s: &str) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error` is never used
[INFO] [stdout]  --> src/log.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn error(line: u64, err: &str) {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_token` is never used
[INFO] [stdout]   --> src/log.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn error_token(token: &Token, err: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_runtime` is never used
[INFO] [stdout]   --> src/log.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn error_runtime(err: &RuntimeError) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token` is never used
[INFO] [stdout]   --> src/log.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn token(token: &Token) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_value` is never used
[INFO] [stdout]   --> src/log.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn token_value(token: &Token) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_name` is never used
[INFO] [stdout]   --> src/log.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const fn token_name(token: &Token) -> &'static str {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Parser` is never used
[INFO] [stdout]   --> src/parser.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Parser<'t> {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecursiveDecendantParser` is never constructed
[INFO] [stdout]   --> src/parser.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RecursiveDecendantParser<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]   --> src/parser.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 | enum ParseError {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/parser.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RecursiveDecendantParser<'_> {
[INFO] [stdout]    | --------------------------------- associated function in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout]  68 |     fn program(&self) -> Vec<Statement<'t>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn declaration(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn class_declaration(&self) -> Result<ClassDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn variable_declaration(&self) -> Result<VariableDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn function_declaration(&self, kind: FunctionType) -> Result<FunctionDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn parameters(&self) -> Result<Vec<Token<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn block_statement(&self, block_type: Option<FunctionType>) -> Result<BlockStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn if_statement(&self) -> Result<IfStatemnet<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     fn while_statement(&self) -> Result<WhileStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     fn return_statement(&self) -> Result<ReturnStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn desugar_for_statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     fn print_statement(&self) -> Result<PrintStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     fn expression_statement(&self) -> Result<ExpressionStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn expression(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     fn assignment(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     fn logical_or(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn logical_and(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     fn equality(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn comparision(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     fn term(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn factor(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn unary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     fn call(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn arguments(&self) -> Result<Vec<Expr<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     fn primary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek`, `advance`, `consume`, and `synchronize` are never used
[INFO] [stdout]    --> src/parser.rs:472:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout] 472 |     fn peek(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     fn advance(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     fn consume(&self, tt: TokenType, message: impl Into<String>) -> Result<Token<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     fn synchronize(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScopeType` is never used
[INFO] [stdout]   --> src/resolver.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum ScopeType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ClassType` is never used
[INFO] [stdout]   --> src/resolver.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum ClassType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Resolver` is never constructed
[INFO] [stdout]   --> src/resolver.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Resolver<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `has_err` are never used
[INFO] [stdout]   --> src/resolver.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<'a> Resolver<'a> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn has_err(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/resolver.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout]  52 |     pub fn resolve_stmt(&mut self, stmt: &'a Statement) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn resolve_class_decl(&mut self, stmt: &'a ClassDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn resolve_var_decl(&mut self, stmt: &'a VariableDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn resolve_block_stmt(&mut self, stmt: &'a BlockStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn resolve_print_stmt(&mut self, stmt: &'a PrintStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn resolve_expr_stmt(&mut self, stmt: &'a ExpressionStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn resolve_if_stmt(&mut self, stmt: &'a IfStatemnet) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn resolve_while_stmt(&mut self, stmt: &'a WhileStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn resolve_fun_decl(&mut self, stmt: &'a FunctionDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn resolve_function(&mut self, params: &'a Vec<Token>, stmts: &'a Vec<Statement>, scope_type: ScopeType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn resolve_return_stmt(&mut self, stmt: &'a ReturnStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_expr` is never used
[INFO] [stdout]    --> src/resolver.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 172 |     pub fn resolve_expr(&mut self, expr: &'a Expr) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_scope`, `end_scope`, `declare`, `define`, and `annotate` are never used
[INFO] [stdout]    --> src/resolver.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 224 |     fn begin_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn end_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn declare(&mut self, name: &'a Token) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn define(&mut self, name: &'a str) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn annotate(&mut self, name: &str, height: &Cell<Option<usize>>) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scan_all` is never used
[INFO] [stdout]   --> src/scanner.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'t> Scanner {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 35 |     pub fn scan_all(&'t self) -> Vec<Token<'t>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedExpr` is never used
[INFO] [stdout]   --> src/syntax.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type BoxedExpr<'t> = Box<Expr<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedStatement` is never used
[INFO] [stdout]   --> src/syntax.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type BoxedStatement<'t> = Box<Statement<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Statement` is never used
[INFO] [stdout]   --> src/syntax.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Statement<'t> {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ClassDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct FunctionDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct VariableDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrintStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct PrintStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct BlockStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IfStatemnet` is never constructed
[INFO] [stdout]   --> src/syntax.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct IfStatemnet<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReturnStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct ReturnStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhileStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct WhileStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExpressionStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct ExpressionStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]   --> src/syntax.rs:82:10
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum Expr<'t> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]    --> src/syntax.rs:137:10
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub enum Value<'a, 't> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]    --> src/syntax.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum Literal<'t> {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/syntax.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl<'t> Expr<'t> {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 194 |     pub fn grouping(expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn unary(operator: Token<'t>, expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn binary(left: Expr<'t>, operator: Token<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn variable(name: Token<'t>, height: Cell<Option<usize>>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn assign(name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn or(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn and(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn call(callee: Expr<'t>, paren: Token<'t>, args: Vec<Expr<'t>>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn get(object: Expr<'t>, name: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn set(object: BoxedExpr<'t>, name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn this(keyword: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn literal(literal: Literal<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn super_(keyword: Token<'t>, method: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]   --> src/token.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct TokenPosition {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 52 |     pub line: u64,
[INFO] [stdout] 53 |     pub offset: u64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenPosition` 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: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         vm.interpret(&line);
[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] 41 |         let _ = vm.interpret(&line);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     vm.interpret(&source);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let _ = vm.interpret(&source);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:140:21
[INFO] [stdout]     |
[INFO] [stdout] 140 |                     writeln!(self.writer, "{}", value);
[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] 140 |                     let _ = writeln!(self.writer, "{}", value);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |         write!(self.writer, "{:04} ", offset);
[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] 435 |         let _ = write!(self.writer, "{:04} ", offset);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:439:13
[INFO] [stdout]     |
[INFO] [stdout] 439 |             write!(self.writer, "   | ");
[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] 439 |             let _ = write!(self.writer, "   | ");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:441:13
[INFO] [stdout]     |
[INFO] [stdout] 441 |             write!(self.writer, "{:4} ", chunk.lines[offset]);
[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] 441 |             let _ = write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:446:17
[INFO] [stdout]     |
[INFO] [stdout] 446 |                 writeln!(self.writer, "OP_RETURN");
[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] 446 |                 let _ = writeln!(self.writer, "OP_RETURN");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:450:17
[INFO] [stdout]     |
[INFO] [stdout] 450 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[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] 450 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:453:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 writeln!(self.writer, "OP_NEGATE");
[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] 453 |                 let _ = writeln!(self.writer, "OP_NEGATE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:456:17
[INFO] [stdout]     |
[INFO] [stdout] 456 |                 writeln!(self.writer, "OP_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] 456 |                 let _ = writeln!(self.writer, "OP_ADD");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:459:17
[INFO] [stdout]     |
[INFO] [stdout] 459 |                 writeln!(self.writer, "OP_SUBTRACT");
[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] 459 |                 let _ = writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:462:17
[INFO] [stdout]     |
[INFO] [stdout] 462 |                 writeln!(self.writer, "OP_MULTIPLY");
[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] 462 |                 let _ = writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:465:17
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 writeln!(self.writer, "OP_DIVIDE");
[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] 465 |                 let _ = writeln!(self.writer, "OP_DIVIDE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:468:17
[INFO] [stdout]     |
[INFO] [stdout] 468 |                 writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 468 |                 let _ = writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:471:17
[INFO] [stdout]     |
[INFO] [stdout] 471 |                 writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 471 |                 let _ = writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:474:17
[INFO] [stdout]     |
[INFO] [stdout] 474 |                 writeln!(self.writer, "OP_NIL");
[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] 474 |                 let _ = writeln!(self.writer, "OP_NIL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 |                 writeln!(self.writer, "OP_NOT");
[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] 477 |                 let _ = writeln!(self.writer, "OP_NOT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:480:17
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 writeln!(self.writer, "OP_EQUAL");
[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] 480 |                 let _ = writeln!(self.writer, "OP_EQUAL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:483:17
[INFO] [stdout]     |
[INFO] [stdout] 483 |                 writeln!(self.writer, "OP_GREATER");
[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] 483 |                 let _ = writeln!(self.writer, "OP_GREATER");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |                 writeln!(self.writer, "OP_LESS");
[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] 486 |                 let _ = writeln!(self.writer, "OP_LESS");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:489:17
[INFO] [stdout]     |
[INFO] [stdout] 489 |                 writeln!(self.writer, "OP_PRINT");
[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] 489 |                 let _ = writeln!(self.writer, "OP_PRINT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:492:17
[INFO] [stdout]     |
[INFO] [stdout] 492 |                 writeln!(self.writer, "OP_POP");
[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] 492 |                 let _ = writeln!(self.writer, "OP_POP");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:496:17
[INFO] [stdout]     |
[INFO] [stdout] 496 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[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] 496 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:500:17
[INFO] [stdout]     |
[INFO] [stdout] 500 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[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] 500 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:504:17
[INFO] [stdout]     |
[INFO] [stdout] 504 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[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] 504 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:507:17
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[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] 507 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:510:17
[INFO] [stdout]     |
[INFO] [stdout] 510 |                 writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[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] 510 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:514:17
[INFO] [stdout]     |
[INFO] [stdout] 514 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[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] 514 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:518:17
[INFO] [stdout]     |
[INFO] [stdout] 518 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[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] 518 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:522:17
[INFO] [stdout]     |
[INFO] [stdout] 522 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[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] 522 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:525:17
[INFO] [stdout]     |
[INFO] [stdout] 525 |                 writeln!(self.writer, "{:<16} {:4}", "OP_CALL", arg_count);
[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] 525 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_CALL", arg_count);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:529:17
[INFO] [stdout]     |
[INFO] [stdout] 529 |                 writeln!(self.writer, "{:<16} {:4} -> {}", "OP_CLOSURE", closure_offset, function);
[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] 529 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {}", "OP_CLOSURE", closure_offset, function);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:539:25
[INFO] [stdout]     |
[INFO] [stdout] 539 |                         writeln!(self.writer, "{:<4} {is_local} {}", offset + i * 2, index);
[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] 539 |                         let _ = writeln!(self.writer, "{:<4} {is_local} {}", offset + i * 2, index);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:543:17
[INFO] [stdout]     |
[INFO] [stdout] 543 |                 writeln!(self.writer, "{:<16} {:4}", "OP_GET_UPVALUE", index);
[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] 543 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_GET_UPVALUE", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:546:17
[INFO] [stdout]     |
[INFO] [stdout] 546 |                 writeln!(self.writer, "{:<16} {:4}", "OP_SET_UPVALUE", index);
[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] 546 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_SET_UPVALUE", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:549:17
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 writeln!(self.writer, "OP_CLOSE_UPVALUE");
[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] 549 |                 let _ = writeln!(self.writer, "OP_CLOSE_UPVALUE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:553:17
[INFO] [stdout]     |
[INFO] [stdout] 553 |                 writeln!(self.writer, "{:<16} {:4} {}", "OP_CLASS", name, value);
[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] 553 |                 let _ = writeln!(self.writer, "{:<16} {:4} {}", "OP_CLASS", name, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:557:17
[INFO] [stdout]     |
[INFO] [stdout] 557 |                 writeln!(self.writer, "{:<16} {:4} {}", "OP_SET_PROPERTY", name, value);
[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] 557 |                 let _ = writeln!(self.writer, "{:<16} {:4} {}", "OP_SET_PROPERTY", name, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:561:17
[INFO] [stdout]     |
[INFO] [stdout] 561 |                 writeln!(self.writer, "{:<16} {:4} {}", "OP_GET_PROPERTY", name, value);
[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] 561 |                 let _ = writeln!(self.writer, "{:<16} {:4} {}", "OP_GET_PROPERTY", name, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:647:9
[INFO] [stdout]     |
[INFO] [stdout] 647 |         writeln!(self.writer, "{message}");
[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] 647 |         let _ = writeln!(self.writer, "{message}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:651:13
[INFO] [stdout]     |
[INFO] [stdout] 651 |             writeln!(self.writer, "[line {line}] in {name}");
[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] 651 |             let _ = writeln!(self.writer, "[line {line}] in {name}");
[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/interpreter/vm/object.rs:295:79
[INFO] [stdout]     |
[INFO] [stdout] 295 |             (ObjectData::NativeFunction(a), ObjectData::NativeFunction(b)) => a == b,
[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] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]     |
[INFO] [stdout] 295 -             (ObjectData::NativeFunction(a), ObjectData::NativeFunction(b)) => a == b,
[INFO] [stdout] 295 +             (ObjectData::NativeFunction(a), ObjectData::NativeFunction(b)) => std::ptr::fn_addr_eq(*a, *b),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scanner.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn number(&self, line: u64, offset: u64) -> Token {
[INFO] [stdout]     |               ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden 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] 105 |     fn number(&self, line: u64, offset: u64) -> Token<'_> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `bytes`
[INFO] [stderr]  --> Cargo.toml:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | bytes = "1.3.0"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `bytes`
[INFO] [stderr] warning: `codecrafters-interpreter` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.41s
[INFO] running `Command { std: "docker" "inspect" "3a7a8c959c8c8defe525206e2aa761510ab9b9c3e60891392991b95131b65e09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a7a8c959c8c8defe525206e2aa761510ab9b9c3e60891392991b95131b65e09", kill_on_drop: false }`
[INFO] [stdout] 3a7a8c959c8c8defe525206e2aa761510ab9b9c3e60891392991b95131b65e09
