[INFO] cloning repository https://github.com/krteke/learn_interpreter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/krteke/learn_interpreter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrteke%2Flearn_interpreter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrteke%2Flearn_interpreter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 68f9d9a7f4874520258a4ac8b6bab42cfd3146cd
[INFO] checking krteke/learn_interpreter against try#0611f7de057c584b8771102fde7aed6c70c71d3b for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrteke%2Flearn_interpreter" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/krteke/learn_interpreter
[INFO] finished tweaking git repo https://github.com/krteke/learn_interpreter
[INFO] tweaked toml for git repo https://github.com/krteke/learn_interpreter written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/krteke/learn_interpreter on toolchain 0611f7de057c584b8771102fde7aed6c70c71d3b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/krteke/learn_interpreter 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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking krteke/learn_interpreter against try#0611f7de057c584b8771102fde7aed6c70c71d3b for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrteke%2Flearn_interpreter" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/krteke/learn_interpreter
[INFO] finished tweaking git repo https://github.com/krteke/learn_interpreter
[INFO] tweaked toml for git repo https://github.com/krteke/learn_interpreter written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/krteke/learn_interpreter on toolchain 0611f7de057c584b8771102fde7aed6c70c71d3b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/krteke/learn_interpreter 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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e95fc19a492ba0c42e12d0ee5e3f2e06381d33ae111626f044c776f51d4e656f
[INFO] running `Command { std: "docker" "start" "-a" "e95fc19a492ba0c42e12d0ee5e3f2e06381d33ae111626f044c776f51d4e656f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e95fc19a492ba0c42e12d0ee5e3f2e06381d33ae111626f044c776f51d4e656f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e95fc19a492ba0c42e12d0ee5e3f2e06381d33ae111626f044c776f51d4e656f", kill_on_drop: false }`
[INFO] [stdout] e95fc19a492ba0c42e12d0ee5e3f2e06381d33ae111626f044c776f51d4e656f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e736f2d0c80984c1d8fcdc6ca41c0c6a7b372cef23db4d1943555b79e3de269a
[INFO] running `Command { std: "docker" "start" "-a" "e736f2d0c80984c1d8fcdc6ca41c0c6a7b372cef23db4d1943555b79e3de269a", kill_on_drop: false }`
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking rlox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Callable`
[INFO] [stdout]   --> src/ast/interpreter.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     value::{Callable, Value},
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/ast/interpreter.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             let action = self.execute(stmt)?;
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Callable`
[INFO] [stdout]   --> src/ast/interpreter.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     value::{Callable, Value},
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/ast/interpreter.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             let action = self.execute(stmt)?;
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Action` is never used
[INFO] [stdout]  --> src/ast/action.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum Action {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Clock` is never constructed
[INFO] [stdout]   --> src/ast/clock.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Clock;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]   --> src/ast/environment.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Environment {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `new_with_enclosing`, `define`, `get`, and `assign` are never used
[INFO] [stdout]   --> src/ast/environment.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Environment {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn new_with_enclosing(enclosing: Rc<RefCell<Environment>>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn define(&mut self, name: String, value: Value) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get(&self, name: &Token) -> Result<Value> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn assign(&mut self, name: &Token, value: Value) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]  --> src/ast/error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Error {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScanError` is never constructed
[INFO] [stdout]   --> src/ast/error.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ScanError {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParserError` is never constructed
[INFO] [stdout]   --> src/ast/error.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ParserError {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeError` is never constructed
[INFO] [stdout]   --> src/ast/error.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct RuntimeError {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/error.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ParserError {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 31 |     pub fn new(token: Token, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/error.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl ScanError {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 37 |     pub fn new(line: usize, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/error.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl RuntimeError {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 43 |     pub fn new(token: Token, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/ast/error.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]  --> src/ast/expr.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Expr {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct BinaryExpr {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl BinaryExpr {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn new(left: Expr, operator: Token, right: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GroupingExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct GroupingExpr {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl GroupingExpr {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 38 |     pub fn new(expression: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LiteralExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct LiteralExpr {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl LiteralExpr {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 51 |     pub fn new(value: Literal) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnaryExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct UnaryExpr {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl UnaryExpr {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 63 |     pub fn new(operator: Token, right: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Var` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Var {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl Var {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 78 |     pub fn new(name: Token, initializer: Option<Expr>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AssignExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct AssignExpr {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | impl AssignExpr {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 90 |     pub fn new(name: Token, value: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LogicalExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct LogicalExpr {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ast/expr.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl LogicalExpr {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 106 |     pub fn new(left: Expr, operator: Token, right: Expr) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CallExpr` is never constructed
[INFO] [stdout]    --> src/ast/expr.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct CallExpr {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ast/expr.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl CallExpr {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 123 |     pub fn new(callee: Expr, paren: Token, args: Vec<Expr>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interpreter` is never constructed
[INFO] [stdout]   --> src/ast/interpreter.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Interpreter {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `interpret`, `evaluate`, `execute`, and `execute_block` are never used
[INFO] [stdout]    --> src/ast/interpreter.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl Interpreter {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  22 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     pub fn interpret(&mut self, stmts: &[Stmt]) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn evaluate(&mut self, expr: &Expr) -> Result<Value> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn execute(&mut self, stmt: &Stmt) -> Result<Action> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn execute_block(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_number_operand` is never used
[INFO] [stdout]    --> src/ast/interpreter.rs:237:4
[INFO] [stdout]     |
[INFO] [stdout] 237 | fn check_number_operand(operator: &Token, operand: &Value) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_number_operands` is never used
[INFO] [stdout]    --> src/ast/interpreter.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn check_number_operands(operator: &Token, left: &Value, right: &Value) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_plus` is never used
[INFO] [stdout]    --> src/ast/interpreter.rs:255:4
[INFO] [stdout]     |
[INFO] [stdout] 255 | fn check_plus(operator: &Token, operand: &Value) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoxFunction` is never constructed
[INFO] [stdout]  --> src/ast/lox_function.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LoxFunction {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/lox_function.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl LoxFunction {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(declaration: FunctionStmt, closure: Rc<RefCell<Environment>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/ast/parser.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Parser {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ast/parser.rs:18:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  18 |     pub fn new(tokens: Vec<Token>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub fn parse(&mut self) -> Result<Vec<Stmt>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     fn declaration(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     fn function(&mut self, kind: &str) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn var_declaration(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn expression(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn assignment(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn or(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn and(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn return_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn for_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn while_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     fn if_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     fn block(&mut self) -> Result<Vec<Stmt>> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn print_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn expression_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     fn equality(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn comparison(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn term(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     fn factor(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     fn unary(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn call(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn finish_call(&mut self, callee: Expr) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     fn primary(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     fn consume(&mut self, token_type: TokenType, message: &str) -> Result<Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn advance(&mut self) -> Token {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     fn synchronize(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     fn at_end(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     fn peek(&self) -> &Token {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     fn previous(&self) -> &Token {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scanner` is never constructed
[INFO] [stdout]  --> src/ast/scanner.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Scanner {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScannerState` is never constructed
[INFO] [stdout]   --> src/ast/scanner.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct ScannerState {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `KEYWORDS` is never used
[INFO] [stdout]   --> src/ast/scanner.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | static KEYWORDS: LazyLock<HashMap<&'static str, TokenType>> = LazyLock::new(|| {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ast/scanner.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Scanner {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  53 |     pub fn new(source: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn scan_tokens(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     fn at_end(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn scan_token(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn add_token(&mut self, token_type: TokenType, literal: Option<Literal>) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn match_char(&mut self, c: char) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn process_number(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     fn process_identifier(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn peek(&self) -> Option<char> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn peek_next(&self) -> Option<char> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stmt` is never used
[INFO] [stdout]  --> src/ast/stmt.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Stmt {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReturnStmt` is never constructed
[INFO] [stdout]   --> src/ast/stmt.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ReturnStmt {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/stmt.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl ReturnStmt {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(keyword: Token, value: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IfStmt` is never constructed
[INFO] [stdout]   --> src/ast/stmt.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct IfStmt {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/stmt.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl IfStmt {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 38 |     pub fn new(condition: Expr, then_branch: Stmt, else_branch: Option<Stmt>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhileStmt` is never constructed
[INFO] [stdout]   --> src/ast/stmt.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct WhileStmt {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/stmt.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl WhileStmt {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 54 |     pub fn new(condition: Expr, body: Stmt) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionStmt` is never constructed
[INFO] [stdout]   --> src/ast/stmt.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct FunctionStmt {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/stmt.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl FunctionStmt {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 70 |     pub fn new(name: Token, params: Vec<Token>, body: Vec<Stmt>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Token` is never constructed
[INFO] [stdout]  --> src/ast/token.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Token {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]   --> src/ast/token.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Literal {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/token.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Token {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenType` is never used
[INFO] [stdout]  --> src/ast/token_type.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenType {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Callable` is never used
[INFO] [stdout]  --> src/ast/value.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait Callable: Debug + Display {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]   --> src/ast/value.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Value {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_truthy` is never used
[INFO] [stdout]   --> src/ast/value.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 24 |     pub fn is_truthy(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lexeme` and `token_type` are never read
[INFO] [stdout]   --> src/bytecode/error.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ParserError {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 44 |     pub lexeme: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 45 |     pub token_type: TokenType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bool` and `Nil` are never constructed
[INFO] [stdout]   --> src/bytecode/token.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum Literal {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Bool(bool),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 31 |     Nil,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Literal` 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: enum `Action` is never used
[INFO] [stdout]  --> src/ast/action.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum Action {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Clock` is never constructed
[INFO] [stdout]   --> src/ast/clock.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Clock;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]   --> src/ast/environment.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Environment {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `new_with_enclosing`, `define`, `get`, and `assign` are never used
[INFO] [stdout]   --> src/ast/environment.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Environment {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn new_with_enclosing(enclosing: Rc<RefCell<Environment>>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn define(&mut self, name: String, value: Value) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get(&self, name: &Token) -> Result<Value> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn assign(&mut self, name: &Token, value: Value) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]  --> src/ast/error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Error {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScanError` is never constructed
[INFO] [stdout]   --> src/ast/error.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ScanError {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParserError` is never constructed
[INFO] [stdout]   --> src/ast/error.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ParserError {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeError` is never constructed
[INFO] [stdout]   --> src/ast/error.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct RuntimeError {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/error.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ParserError {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 31 |     pub fn new(token: Token, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/error.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl ScanError {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 37 |     pub fn new(line: usize, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/error.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl RuntimeError {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 43 |     pub fn new(token: Token, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/ast/error.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]  --> src/ast/expr.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Expr {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct BinaryExpr {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl BinaryExpr {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn new(left: Expr, operator: Token, right: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GroupingExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct GroupingExpr {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl GroupingExpr {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 38 |     pub fn new(expression: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LiteralExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct LiteralExpr {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl LiteralExpr {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 51 |     pub fn new(value: Literal) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnaryExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct UnaryExpr {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl UnaryExpr {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 63 |     pub fn new(operator: Token, right: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Var` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Var {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl Var {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 78 |     pub fn new(name: Token, initializer: Option<Expr>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AssignExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct AssignExpr {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/expr.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | impl AssignExpr {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 90 |     pub fn new(name: Token, value: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LogicalExpr` is never constructed
[INFO] [stdout]   --> src/ast/expr.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct LogicalExpr {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ast/expr.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl LogicalExpr {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 106 |     pub fn new(left: Expr, operator: Token, right: Expr) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CallExpr` is never constructed
[INFO] [stdout]    --> src/ast/expr.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct CallExpr {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ast/expr.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl CallExpr {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 123 |     pub fn new(callee: Expr, paren: Token, args: Vec<Expr>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interpreter` is never constructed
[INFO] [stdout]   --> src/ast/interpreter.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Interpreter {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `interpret`, `evaluate`, `execute`, and `execute_block` are never used
[INFO] [stdout]    --> src/ast/interpreter.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl Interpreter {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  22 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     pub fn interpret(&mut self, stmts: &[Stmt]) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn evaluate(&mut self, expr: &Expr) -> Result<Value> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn execute(&mut self, stmt: &Stmt) -> Result<Action> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn execute_block(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_number_operand` is never used
[INFO] [stdout]    --> src/ast/interpreter.rs:237:4
[INFO] [stdout]     |
[INFO] [stdout] 237 | fn check_number_operand(operator: &Token, operand: &Value) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_number_operands` is never used
[INFO] [stdout]    --> src/ast/interpreter.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn check_number_operands(operator: &Token, left: &Value, right: &Value) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_plus` is never used
[INFO] [stdout]    --> src/ast/interpreter.rs:255:4
[INFO] [stdout]     |
[INFO] [stdout] 255 | fn check_plus(operator: &Token, operand: &Value) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoxFunction` is never constructed
[INFO] [stdout]  --> src/ast/lox_function.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LoxFunction {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/lox_function.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl LoxFunction {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(declaration: FunctionStmt, closure: Rc<RefCell<Environment>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/ast/parser.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Parser {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ast/parser.rs:18:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  18 |     pub fn new(tokens: Vec<Token>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub fn parse(&mut self) -> Result<Vec<Stmt>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     fn declaration(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     fn function(&mut self, kind: &str) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn var_declaration(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn expression(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn assignment(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn or(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn and(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn return_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn for_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn while_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     fn if_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     fn block(&mut self) -> Result<Vec<Stmt>> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn print_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn expression_statement(&mut self) -> Result<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     fn equality(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn comparison(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn term(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     fn factor(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     fn unary(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn call(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn finish_call(&mut self, callee: Expr) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     fn primary(&mut self) -> Result<Expr> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     fn consume(&mut self, token_type: TokenType, message: &str) -> Result<Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn advance(&mut self) -> Token {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     fn synchronize(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     fn at_end(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     fn peek(&self) -> &Token {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     fn previous(&self) -> &Token {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scanner` is never constructed
[INFO] [stdout]  --> src/ast/scanner.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Scanner {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScannerState` is never constructed
[INFO] [stdout]   --> src/ast/scanner.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct ScannerState {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `KEYWORDS` is never used
[INFO] [stdout]   --> src/ast/scanner.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | static KEYWORDS: LazyLock<HashMap<&'static str, TokenType>> = LazyLock::new(|| {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ast/scanner.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Scanner {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  53 |     pub fn new(source: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn scan_tokens(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     fn at_end(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn scan_token(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn add_token(&mut self, token_type: TokenType, literal: Option<Literal>) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn match_char(&mut self, c: char) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn process_number(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     fn process_identifier(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn peek(&self) -> Option<char> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn peek_next(&self) -> Option<char> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stmt` is never used
[INFO] [stdout]  --> src/ast/stmt.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Stmt {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReturnStmt` is never constructed
[INFO] [stdout]   --> src/ast/stmt.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ReturnStmt {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/stmt.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl ReturnStmt {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(keyword: Token, value: Expr) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IfStmt` is never constructed
[INFO] [stdout]   --> src/ast/stmt.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct IfStmt {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/stmt.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl IfStmt {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 38 |     pub fn new(condition: Expr, then_branch: Stmt, else_branch: Option<Stmt>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhileStmt` is never constructed
[INFO] [stdout]   --> src/ast/stmt.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct WhileStmt {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/stmt.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl WhileStmt {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 54 |     pub fn new(condition: Expr, body: Stmt) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionStmt` is never constructed
[INFO] [stdout]   --> src/ast/stmt.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct FunctionStmt {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/stmt.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl FunctionStmt {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 70 |     pub fn new(name: Token, params: Vec<Token>, body: Vec<Stmt>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Token` is never constructed
[INFO] [stdout]  --> src/ast/token.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Token {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]   --> src/ast/token.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Literal {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast/token.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Token {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenType` is never used
[INFO] [stdout]  --> src/ast/token_type.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenType {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Callable` is never used
[INFO] [stdout]  --> src/ast/value.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait Callable: Debug + Display {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]   --> src/ast/value.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Value {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_truthy` is never used
[INFO] [stdout]   --> src/ast/value.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 24 |     pub fn is_truthy(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lexeme` and `token_type` are never read
[INFO] [stdout]   --> src/bytecode/error.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ParserError {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 44 |     pub lexeme: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 45 |     pub token_type: TokenType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bool` and `Nil` are never constructed
[INFO] [stdout]   --> src/bytecode/token.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum Literal {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Bool(bool),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 31 |     Nil,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.77s
[INFO] running `Command { std: "docker" "inspect" "e736f2d0c80984c1d8fcdc6ca41c0c6a7b372cef23db4d1943555b79e3de269a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e736f2d0c80984c1d8fcdc6ca41c0c6a7b372cef23db4d1943555b79e3de269a", kill_on_drop: false }`
[INFO] [stdout] e736f2d0c80984c1d8fcdc6ca41c0c6a7b372cef23db4d1943555b79e3de269a
