[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>) -> 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 { [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 = std::result::Result; [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) -> 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) -> 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 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub fn execute(&mut self, stmt: &Stmt) -> Result { [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>) -> 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) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn parse(&mut self) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | fn function(&mut self, kind: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | fn var_declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | fn assignment(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn or(&mut self) -> Result { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 128 | fn and(&mut self) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | fn statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | fn return_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn for_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | fn while_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | fn if_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | fn block(&mut self) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 264 | fn print_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | fn expression_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | fn equality(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | fn comparison(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 302 | fn term(&mut self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | fn factor(&mut self) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | fn unary(&mut self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | fn call(&mut self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | fn finish_call(&mut self, callee: Expr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 378 | fn primary(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 413 | fn consume(&mut self, token_type: TokenType, message: &str) -> Result { [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> = 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) { [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 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | fn peek_next(&self) -> Option { [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) -> 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, body: Vec) -> 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>) -> 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 { [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 = std::result::Result; [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) -> 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) -> 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 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub fn execute(&mut self, stmt: &Stmt) -> Result { [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>) -> 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) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn parse(&mut self) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | fn function(&mut self, kind: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | fn var_declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | fn assignment(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn or(&mut self) -> Result { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 128 | fn and(&mut self) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | fn statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | fn return_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn for_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | fn while_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | fn if_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | fn block(&mut self) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 264 | fn print_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | fn expression_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | fn equality(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | fn comparison(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 302 | fn term(&mut self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | fn factor(&mut self) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | fn unary(&mut self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | fn call(&mut self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 353 | fn finish_call(&mut self, callee: Expr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 378 | fn primary(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 413 | fn consume(&mut self, token_type: TokenType, message: &str) -> Result { [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> = 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) { [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 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | fn peek_next(&self) -> Option { [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) -> 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, body: Vec) -> 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