[INFO] cloning repository https://github.com/Pureblackkk/craft-interpreter-practice-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Pureblackkk/craft-interpreter-practice-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPureblackkk%2Fcraft-interpreter-practice-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPureblackkk%2Fcraft-interpreter-practice-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4659f7efe819e6cb3009b97cd7c64d14da643096
[INFO] testing Pureblackkk/craft-interpreter-practice-rs against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPureblackkk%2Fcraft-interpreter-practice-rs" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Pureblackkk/craft-interpreter-practice-rs
[INFO] finished tweaking git repo https://github.com/Pureblackkk/craft-interpreter-practice-rs
[INFO] tweaked toml for git repo https://github.com/Pureblackkk/craft-interpreter-practice-rs written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Pureblackkk/craft-interpreter-practice-rs on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Pureblackkk/craft-interpreter-practice-rs 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] eb5413a884ad32164ee3e1e4a7dddb009ff3f6c4cd3a44aebab1af5c3eba90a3
[INFO] running `Command { std: "docker" "start" "-a" "eb5413a884ad32164ee3e1e4a7dddb009ff3f6c4cd3a44aebab1af5c3eba90a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eb5413a884ad32164ee3e1e4a7dddb009ff3f6c4cd3a44aebab1af5c3eba90a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eb5413a884ad32164ee3e1e4a7dddb009ff3f6c4cd3a44aebab1af5c3eba90a3", kill_on_drop: false }`
[INFO] [stdout] eb5413a884ad32164ee3e1e4a7dddb009ff3f6c4cd3a44aebab1af5c3eba90a3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 38d206b3b8dc431337b586be71d82bed06a603cee2dcb61f20e93c7432b6d388
[INFO] running `Command { std: "docker" "start" "-a" "38d206b3b8dc431337b586be71d82bed06a603cee2dcb61f20e93c7432b6d388", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.82
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling phf_shared v0.11.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.61
[INFO] [stderr]    Compiling phf_macros v0.11.2
[INFO] [stderr]    Compiling phf v0.11.2
[INFO] [stderr]    Compiling craft_interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt::Arguments`
[INFO] [stdout]  --> src/vistor/ast_printer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Arguments;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/vistor/expr_interpreter.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::value::class::ClassInstance`
[INFO] [stdout]  --> src/vistor/expr_interpreter.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::value::class::ClassInstance;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SetValueType`
[INFO] [stdout]  --> src/vistor/stmt_resolver.rs:6:62
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::resolver::{ClassStatus, FunctionStatus, Resolver, SetValueType};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/parser/parser_expr.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |         while true {
[INFO] [stdout]     |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cell::RefCell`
[INFO] [stdout]  --> src/value/mod.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{cell::RefCell, rc::Rc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefMut`
[INFO] [stdout]  --> src/environment/mod.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{RefCell, RefMut};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/environment/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr`
[INFO] [stdout]  --> src/environment/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ptr;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]   --> src/vistor/ast_printer.rs:79:32
[INFO] [stdout]    |
[INFO] [stdout] 79 |             Expr::Call(callee, token, arguments) => {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/vistor/ast_printer.rs:91:31
[INFO] [stdout]    |
[INFO] [stdout] 91 |             Expr::Get(object, property) => {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/vistor/ast_printer.rs:97:31
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Expr::Set(object, property, value) => {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/vistor/expr_interpreter.rs:190:23
[INFO] [stdout]     |
[INFO] [stdout] 190 |             Expr::New(token, caller) => {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value_result`
[INFO] [stdout]   --> src/vistor/stmt_interpreter.rs:63:25
[INFO] [stdout]    |
[INFO] [stdout] 63 |                     let value_result = self.exectue(statement)?;
[INFO] [stdout]    |                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `supper_class_expr`
[INFO] [stdout]    --> src/vistor/stmt_interpreter.rs:135:29
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 if let Some(supper_class_expr) = supper_class {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_supper_class_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `supper_class_expr`
[INFO] [stdout]    --> src/vistor/stmt_interpreter.rs:171:29
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 if let Some(supper_class_expr) = supper_class {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_supper_class_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/vistor/expr_resolver.rs:77:31
[INFO] [stdout]    |
[INFO] [stdout] 77 |             Expr::Get(object, property) => {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/vistor/expr_resolver.rs:81:31
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Expr::Set(object, property, val) => {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method`
[INFO] [stdout]   --> src/vistor/expr_resolver.rs:97:32
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Expr::Super(token, method) => {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |             _ => Ok(()),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout]  58 |             Stmt::Block(statements) => {
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  64 |             Stmt::Var(indentifier, expr) => {
[INFO] [stdout]     |             ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  75 |             Stmt::Function(name, _, _) => {
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  82 |             Stmt::Expr(expr) => {
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 173 |             _ => Ok(()),
[INFO] [stdout]     |             ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `supper_class_expr`
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:164:29
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 if let Some(supper_class_expr) = supper_class {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_supper_class_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:177:29
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn visit_env(&mut self, stmt: &Stmt, env: Rc<RefCell<Environment>>) -> Result<(), ResolveError> {
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:177:42
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn visit_env(&mut self, stmt: &Stmt, env: Rc<RefCell<Environment>>) -> Result<(), ResolveError> {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_type`
[INFO] [stdout]   --> src/parser/parser_stmt.rs:60:28
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn function(&mut self, function_type: FunctionType) -> Result<Stmt, ParserError> {
[INFO] [stdout]    |                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser/parser_stmt.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |         let mut initializer: Option<Stmt>;
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]   --> src/value/function.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         token: &Token,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/interpreter/mod.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let res = self.exectue(&statement)?;
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScannerError` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct ScannerError {
[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 `Scanner` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Scanner {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/scanner/mod.rs:27:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl Scanner {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  27 |     pub fn new(src: String) -> Scanner {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |     pub fn scan_tokens(&mut self) -> Result<Vec<Token>, ScannerError> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     fn scan_token(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn advance(&mut self) -> char {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn match_next(&mut self, expected: char) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn peek(&mut self) -> char {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn peek_next(&mut self) -> char {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn add_token(&mut self, token_type: TokenType, literal: Option<Literal>) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     fn string(&mut self) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn number(&mut self) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn identifier(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn is_at_end(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn done(&self) -> bool {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     fn is_digit(c: char) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     fn is_alpha(c: char) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     fn is_alpha_numberic(c: char) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenType` is never used
[INFO] [stdout]  --> src/scanner/token.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum TokenType {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]   --> src/scanner/token.rs:61:10
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub enum Literal {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESERVED_KEYWORD` is never used
[INFO] [stdout]   --> src/scanner/token.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub static RESERVED_KEYWORD: phf::Map<&'static str, TokenType> = phf_map!{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Token` is never constructed
[INFO] [stdout]   --> src/scanner/token.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct Token {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]  --> src/grammer/expression.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Expr {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExprVistor` is never used
[INFO] [stdout]   --> src/grammer/expression.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub trait ExprVistor<T> {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExprAccept` is never used
[INFO] [stdout]   --> src/grammer/expression.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait ExprAccept {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExprLiteral` is never used
[INFO] [stdout]   --> src/grammer/expression.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum ExprLiteral {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stmt` is never used
[INFO] [stdout]  --> src/grammer/statement.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum Stmt {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FunctionType` is never used
[INFO] [stdout]   --> src/grammer/statement.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum FunctionType {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StmtVistor` is never used
[INFO] [stdout]   --> src/grammer/statement.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait StmtVistor<T> {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StmtAccept` is never used
[INFO] [stdout]   --> src/grammer/statement.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub trait StmtAccept {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AstPrinter` is never constructed
[INFO] [stdout]  --> src/vistor/ast_printer.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct AstPrinter;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `print`, and `parenthesize` are never used
[INFO] [stdout]   --> src/vistor/ast_printer.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl AstPrinter {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout]  8 |     pub fn new() -> AstPrinter {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn print(&mut self, expr: Expr) -> String {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn parenthesize(&mut self, name: &str, exprs: &Vec<&Expr>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `interpret_expr_debug`, `evaluate`, `result_expr_helper`, and `lookup_variable` are never used
[INFO] [stdout]   --> src/vistor/expr_interpreter.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Interpreter {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn interpret_expr_debug(&mut self, expr: &Expr) -> Result<LValue, RunTimeError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn evaluate(&mut self, expr: &Expr) -> Result<LValue, RunTimeError>{
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn result_expr_helper(operation_result: Result<LValue, String>, token: &Token) -> Result<LValue, RunTimeError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn lookup_variable(&mut self, name: &Token) -> Result<LValue, RunTimeError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `interpret_stmt_debug`, `exectue`, and `exectue_with_env` are never used
[INFO] [stdout]   --> src/vistor/stmt_interpreter.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Interpreter {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 15 |     pub fn interpret_stmt_debug(&mut self, stmt: &Stmt) -> Result<(), RunTimeError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn exectue(&mut self, stmt: &Stmt) -> Result<(), RunTimeError> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn exectue_with_env(&mut self, stmt: &Stmt, env: Rc<RefCell<Environment>>) -> Result<(), RunTimeError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `resolve_expr` and `resolve_local` are never used
[INFO] [stdout]   --> src/vistor/expr_resolver.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Resolver<'_> {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout]  7 |     pub fn resolve_expr(&mut self, expr: &Expr) -> Result<(), ResolveError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn resolve_local(&mut self, name: &Token) -> Result<(), ResolveError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `resolve_stmt`, `resolve_stmt_list`, and `resolve_stmt_function` are never used
[INFO] [stdout]   --> src/vistor/stmt_resolver.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Resolver<'_> {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 11 |     pub fn resolve_stmt(&mut self, stmt: &Stmt) -> Result<(), ResolveError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn resolve_stmt_list(&mut self, stmts: &Vec<Stmt>) -> Result<(), ResolveError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn resolve_stmt_function(&mut self, stmt: &Stmt, function_status: FunctionStatus) -> Result<(), ResolveError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/parser/mod.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Parser {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/parser/mod.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Parser {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn new(tokens: Vec<Token>) -> Parser {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn parser(&mut self) -> Result<Vec<Stmt>, ParserError> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn consume(&mut self, typee: TokenType, message: &str) -> Result<&Token, ParserError> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn match_one_of(&mut self, types: Vec<TokenType>) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn matches(&mut self, typee: TokenType) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn check(&mut self, typee: TokenType) -> bool {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn advance(&mut self) -> &Token {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     fn is_at_end(&mut self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn peek(&mut self) -> &Token {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     fn previous(&mut self) -> &Token {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser/parser_expr.rs:6:12
[INFO] [stdout]     |
[INFO] [stdout]   5 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]   6 |     pub fn parse_expr_debug(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  10 |     pub fn expression(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  14 |     fn assignment(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  37 |     fn or(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     fn and(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     fn equality(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn comparision(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn term(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn factor(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn unary(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn class_init(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn call(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn primary(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finsh_call` is never used
[INFO] [stdout]    --> src/parser/parser_expr.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 259 |     fn finsh_call(&mut self, callee: Expr) -> Result<Expr, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:6:12
[INFO] [stdout]     |
[INFO] [stdout]   5 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]   6 |     pub fn declaration(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     fn var_declaration(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     fn class(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     fn function(&mut self, function_type: FunctionType) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn statement(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn block(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn print_statement(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn expression_statement(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn if_statement(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn while_statement(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn for_statement(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn return_statement(&mut self) -> Result<Stmt, ParserError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParserError` is never used
[INFO] [stdout]  --> src/parser/parese_error.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum ParserError {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LValue` is never used
[INFO] [stdout]   --> src/value/mod.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum LValue {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IsTruthy` is never used
[INFO] [stdout]  --> src/value/condition.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait IsTruthy {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/value/function.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Function {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bind` is never used
[INFO] [stdout]   --> src/value/function.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Function {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 35 |     pub fn bind(self: &Rc<Self>, instance: Rc<ClassInstance>) -> Rc<Function> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Callable` is never used
[INFO] [stdout]   --> src/value/function.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub trait Callable {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Class` is never constructed
[INFO] [stdout]   --> src/value/class.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Class {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_string`, and `find_method` are never used
[INFO] [stdout]   --> src/value/class.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Class {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn find_method(self: Rc<Self>, token: &Token) -> Option<Rc<Function>> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]   --> src/value/class.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl Class {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 62 |     pub fn call(
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassInstance` is never constructed
[INFO] [stdout]   --> src/value/class.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct ClassInstance {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_string`, `get`, and `set` are never used
[INFO] [stdout]    --> src/value/class.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl ClassInstance {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  96 |     pub fn new(class: Rc<Class>,
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn get(self: Rc<Self>, name: &Token) -> Result<LValue, RunTimeError>  {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn set(self: Rc<Self>, name: &Token, value: LValue) -> Result<(), RunTimeError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RunTimeError` is never used
[INFO] [stdout]  --> src/runner/error.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum RunTimeError {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommonError` is never constructed
[INFO] [stdout]   --> src/runner/error.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CommonError {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interpreter` is never constructed
[INFO] [stdout]  --> src/interpreter/mod.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Interpreter {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `interpret`, and `resolve` are never used
[INFO] [stdout]   --> src/interpreter/mod.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Interpreter {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Interpreter {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn interpret(&mut self, statements: Vec<Stmt>) -> Result<(), RunTimeError> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn resolve(&mut self, token: &Token, depth: usize) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]   --> src/environment/mod.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Environment {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `define`, `assign`, `get`, `get_at`, and `assign_at` are never used
[INFO] [stdout]   --> src/environment/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Environment {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new() -> Environment {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn define(&mut self, name: String, value: LValue) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn assign(&mut self, token: &Token, value: LValue) -> Result<(), RunTimeError>{
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn get(&self, token: &Token) -> Result<LValue, RunTimeError>{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn get_at(&self, distance: usize, token: &Token) -> Result<LValue, RunTimeError> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn assign_at(&mut self, distance: usize, token: &Token, value: LValue) -> Result<(), RunTimeError> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Resolver` is never constructed
[INFO] [stdout]   --> src/resolver/mod.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Resolver<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SetValueType` is never used
[INFO] [stdout]   --> src/resolver/mod.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum SetValueType {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FunctionStatus` is never used
[INFO] [stdout]   --> src/resolver/mod.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum FunctionStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ClassStatus` is never used
[INFO] [stdout]   --> src/resolver/mod.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum ClassStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/resolver/mod.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  38 |     pub fn new(interpreter: &'a mut Interpreter) -> Resolver {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn resolve(&mut self, statements: &Vec<Stmt>) -> Result<(), ResolveError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn begin_scope(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn end_scope(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn is_scope_empty(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn scope_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn set_current_val(&mut self, token: &Token, val: bool, operation: SetValueType) -> Result<(), ResolveError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn get_current_val(&mut self, name: String) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn declare(&mut self, name: &Token) -> Result<(), ResolveError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn define(&mut self, name: &Token) -> Result<(), ResolveError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ResolveError` is never used
[INFO] [stdout]  --> src/resolver/resolve_error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum ResolveError {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/vistor/stmt_interpreter.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |                     self.exectue(&(*body));
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 83 |                     let _ = self.exectue(&(*body));
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/parser/parser_stmt.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             self.consume(TokenType::Identifier, "Expect super class name");
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let _ = self.consume(TokenType::Identifier, "Expect super class name");
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |         self.consume(TokenType::RightBrace, "Expect '}' after block.");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let _ = self.consume(TokenType::RightBrace, "Expect '}' after block.");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |         self.consume(TokenType::LeftParen, "Expect \' ( \' after if");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let _ = self.consume(TokenType::LeftParen, "Expect \' ( \' after if");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         self.consume(TokenType::RightParen, "Expect \' ) \' after if condition");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let _ = self.consume(TokenType::RightParen, "Expect \' ) \' after if condition");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         self.consume(TokenType::LeftParen, "Expect \' ( \' after while");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let _ = self.consume(TokenType::LeftParen, "Expect \' ( \' after while");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |         self.consume(TokenType::RightParen, "Expect \' ) \' after condition");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let _ = self.consume(TokenType::RightParen, "Expect \' ) \' after condition");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         self.consume(TokenType::LeftParen, "Expect \' ( \' after for");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let _ = self.consume(TokenType::LeftParen, "Expect \' ( \' after for");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         self.consume(TokenType::Semicolon, "Expect \' ; \' after loop condition");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 186 |         let _ = self.consume(TokenType::Semicolon, "Expect \' ; \' after loop condition");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |         self.consume(TokenType::RightParen, "Expect \' ) \' after for clauses.");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let _ = self.consume(TokenType::RightParen, "Expect \' ) \' after for clauses.");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 237 |         self.consume(TokenType::Semicolon, "Expect \';\' after return value");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let _ = self.consume(TokenType::Semicolon, "Expect \';\' after return value");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/value/class.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |             init_func.bind(instance.clone()).call(interpreter, token, arguments);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |             let _ = init_func.bind(instance.clone()).call(interpreter, token, arguments);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/resolver/mod.rs:38:53
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn new(interpreter: &'a mut Interpreter) -> Resolver {
[INFO] [stdout]    |                              --                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn new(interpreter: &'a mut Interpreter) -> Resolver<'a> {
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.95s
[INFO] running `Command { std: "docker" "inspect" "38d206b3b8dc431337b586be71d82bed06a603cee2dcb61f20e93c7432b6d388", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "38d206b3b8dc431337b586be71d82bed06a603cee2dcb61f20e93c7432b6d388", kill_on_drop: false }`
[INFO] [stdout] 38d206b3b8dc431337b586be71d82bed06a603cee2dcb61f20e93c7432b6d388
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5319848da31636ddf9a105a871c896f6936cc5e73bd820f29f3909d062cf8171
[INFO] running `Command { std: "docker" "start" "-a" "5319848da31636ddf9a105a871c896f6936cc5e73bd820f29f3909d062cf8171", kill_on_drop: false }`
[INFO] [stderr]    Compiling craft_interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt::Arguments`
[INFO] [stdout]  --> src/vistor/ast_printer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Arguments;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/vistor/expr_interpreter.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::value::class::ClassInstance`
[INFO] [stdout]  --> src/vistor/expr_interpreter.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::value::class::ClassInstance;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SetValueType`
[INFO] [stdout]  --> src/vistor/stmt_resolver.rs:6:62
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::resolver::{ClassStatus, FunctionStatus, Resolver, SetValueType};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/parser/parser_expr.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |         while true {
[INFO] [stdout]     |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cell::RefCell`
[INFO] [stdout]  --> src/value/mod.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::{cell::RefCell, rc::Rc};
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefMut`
[INFO] [stdout]  --> src/environment/mod.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{RefCell, RefMut};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/environment/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr`
[INFO] [stdout]  --> src/environment/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ptr;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]   --> src/vistor/ast_printer.rs:79:32
[INFO] [stdout]    |
[INFO] [stdout] 79 |             Expr::Call(callee, token, arguments) => {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/vistor/ast_printer.rs:91:31
[INFO] [stdout]    |
[INFO] [stdout] 91 |             Expr::Get(object, property) => {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/vistor/ast_printer.rs:97:31
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Expr::Set(object, property, value) => {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/vistor/expr_interpreter.rs:190:23
[INFO] [stdout]     |
[INFO] [stdout] 190 |             Expr::New(token, caller) => {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value_result`
[INFO] [stdout]   --> src/vistor/stmt_interpreter.rs:63:25
[INFO] [stdout]    |
[INFO] [stdout] 63 |                     let value_result = self.exectue(statement)?;
[INFO] [stdout]    |                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `supper_class_expr`
[INFO] [stdout]    --> src/vistor/stmt_interpreter.rs:135:29
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 if let Some(supper_class_expr) = supper_class {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_supper_class_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `supper_class_expr`
[INFO] [stdout]    --> src/vistor/stmt_interpreter.rs:171:29
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 if let Some(supper_class_expr) = supper_class {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_supper_class_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/vistor/expr_resolver.rs:77:31
[INFO] [stdout]    |
[INFO] [stdout] 77 |             Expr::Get(object, property) => {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `property`
[INFO] [stdout]   --> src/vistor/expr_resolver.rs:81:31
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Expr::Set(object, property, val) => {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method`
[INFO] [stdout]   --> src/vistor/expr_resolver.rs:97:32
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Expr::Super(token, method) => {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |             _ => Ok(()),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout]  58 |             Stmt::Block(statements) => {
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  64 |             Stmt::Var(indentifier, expr) => {
[INFO] [stdout]     |             ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  75 |             Stmt::Function(name, _, _) => {
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  82 |             Stmt::Expr(expr) => {
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 173 |             _ => Ok(()),
[INFO] [stdout]     |             ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `supper_class_expr`
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:164:29
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 if let Some(supper_class_expr) = supper_class {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_supper_class_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:177:29
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn visit_env(&mut self, stmt: &Stmt, env: Rc<RefCell<Environment>>) -> Result<(), ResolveError> {
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> src/vistor/stmt_resolver.rs:177:42
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn visit_env(&mut self, stmt: &Stmt, env: Rc<RefCell<Environment>>) -> Result<(), ResolveError> {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_type`
[INFO] [stdout]   --> src/parser/parser_stmt.rs:60:28
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn function(&mut self, function_type: FunctionType) -> Result<Stmt, ParserError> {
[INFO] [stdout]    |                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser/parser_stmt.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |         let mut initializer: Option<Stmt>;
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]   --> src/value/function.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         token: &Token,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/interpreter/mod.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let res = self.exectue(&statement)?;
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Logical` is never constructed
[INFO] [stdout]   --> src/grammer/expression.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum Expr {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 11 |     Logical(Box<Expr>, Token, Box<Expr>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `interpret_stmt_debug` is never used
[INFO] [stdout]   --> src/vistor/stmt_interpreter.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Interpreter {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 15 |     pub fn interpret_stmt_debug(&mut self, stmt: &Stmt) -> Result<(), RunTimeError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `or` and `and` are never used
[INFO] [stdout]   --> src/parser/parser_expr.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl Parser {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn or(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]    |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn and(&mut self) -> Result<Expr, ParserError> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `arity` is never used
[INFO] [stdout]   --> src/value/function.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub trait Callable {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn arity(&self) -> usize;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]   --> src/value/class.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Class {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `arity` is never used
[INFO] [stdout]   --> src/value/class.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl Class {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]    --> src/value/class.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl ClassInstance {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/vistor/stmt_interpreter.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |                     self.exectue(&(*body));
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 83 |                     let _ = self.exectue(&(*body));
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/parser/parser_stmt.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             self.consume(TokenType::Identifier, "Expect super class name");
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let _ = self.consume(TokenType::Identifier, "Expect super class name");
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |         self.consume(TokenType::RightBrace, "Expect '}' after block.");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let _ = self.consume(TokenType::RightBrace, "Expect '}' after block.");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |         self.consume(TokenType::LeftParen, "Expect \' ( \' after if");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let _ = self.consume(TokenType::LeftParen, "Expect \' ( \' after if");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         self.consume(TokenType::RightParen, "Expect \' ) \' after if condition");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let _ = self.consume(TokenType::RightParen, "Expect \' ) \' after if condition");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         self.consume(TokenType::LeftParen, "Expect \' ( \' after while");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let _ = self.consume(TokenType::LeftParen, "Expect \' ( \' after while");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |         self.consume(TokenType::RightParen, "Expect \' ) \' after condition");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let _ = self.consume(TokenType::RightParen, "Expect \' ) \' after condition");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |         self.consume(TokenType::LeftParen, "Expect \' ( \' after for");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let _ = self.consume(TokenType::LeftParen, "Expect \' ( \' after for");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         self.consume(TokenType::Semicolon, "Expect \' ; \' after loop condition");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 186 |         let _ = self.consume(TokenType::Semicolon, "Expect \' ; \' after loop condition");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |         self.consume(TokenType::RightParen, "Expect \' ) \' after for clauses.");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let _ = self.consume(TokenType::RightParen, "Expect \' ) \' after for clauses.");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/parser/parser_stmt.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 237 |         self.consume(TokenType::Semicolon, "Expect \';\' after return value");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let _ = self.consume(TokenType::Semicolon, "Expect \';\' after return value");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/value/class.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |             init_func.bind(instance.clone()).call(interpreter, token, arguments);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |             let _ = init_func.bind(instance.clone()).call(interpreter, token, arguments);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/resolver/mod.rs:38:53
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn new(interpreter: &'a mut Interpreter) -> Resolver {
[INFO] [stdout]    |                              --                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn new(interpreter: &'a mut Interpreter) -> Resolver<'a> {
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.33s
[INFO] running `Command { std: "docker" "inspect" "5319848da31636ddf9a105a871c896f6936cc5e73bd820f29f3909d062cf8171", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5319848da31636ddf9a105a871c896f6936cc5e73bd820f29f3909d062cf8171", kill_on_drop: false }`
[INFO] [stdout] 5319848da31636ddf9a105a871c896f6936cc5e73bd820f29f3909d062cf8171
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8a2f9c2061c658db3053575b839ad0ad7fadab29524c7efeb14511a554700c22
[INFO] running `Command { std: "docker" "start" "-a" "8a2f9c2061c658db3053575b839ad0ad7fadab29524c7efeb14511a554700c22", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::fmt::Arguments`
[INFO] [stderr]  --> src/vistor/ast_printer.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::fmt::Arguments;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> src/vistor/expr_interpreter.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::value::class::ClassInstance`
[INFO] [stderr]  --> src/vistor/expr_interpreter.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::value::class::ClassInstance;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SetValueType`
[INFO] [stderr]  --> src/vistor/stmt_resolver.rs:6:62
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::resolver::{ClassStatus, FunctionStatus, Resolver, SetValueType};
[INFO] [stderr]   |                                                              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: denote infinite loops with `loop { ... }`
[INFO] [stderr]    --> src/parser/parser_expr.rs:168:9
[INFO] [stderr]     |
[INFO] [stderr] 168 |         while true {
[INFO] [stderr]     |         ^^^^^^^^^^ help: use `loop`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(while_true)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `cell::RefCell`
[INFO] [stderr]  --> src/value/mod.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::{cell::RefCell, rc::Rc};
[INFO] [stderr]   |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RefMut`
[INFO] [stderr]  --> src/environment/mod.rs:1:26
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::{RefCell, RefMut};
[INFO] [stderr]   |                          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ops::Deref`
[INFO] [stderr]  --> src/environment/mod.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ops::Deref;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ptr`
[INFO] [stderr]  --> src/environment/mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ptr;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `token`
[INFO] [stderr]   --> src/vistor/ast_printer.rs:79:32
[INFO] [stderr]    |
[INFO] [stderr] 79 |             Expr::Call(callee, token, arguments) => {
[INFO] [stderr]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `property`
[INFO] [stderr]   --> src/vistor/ast_printer.rs:91:31
[INFO] [stderr]    |
[INFO] [stderr] 91 |             Expr::Get(object, property) => {
[INFO] [stderr]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `property`
[INFO] [stderr]   --> src/vistor/ast_printer.rs:97:31
[INFO] [stderr]    |
[INFO] [stderr] 97 |             Expr::Set(object, property, value) => {
[INFO] [stderr]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `token`
[INFO] [stderr]    --> src/vistor/expr_interpreter.rs:190:23
[INFO] [stderr]     |
[INFO] [stderr] 190 |             Expr::New(token, caller) => {
[INFO] [stderr]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value_result`
[INFO] [stderr]   --> src/vistor/stmt_interpreter.rs:63:25
[INFO] [stderr]    |
[INFO] [stderr] 63 |                     let value_result = self.exectue(statement)?;
[INFO] [stderr]    |                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_result`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `supper_class_expr`
[INFO] [stderr]    --> src/vistor/stmt_interpreter.rs:135:29
[INFO] [stderr]     |
[INFO] [stderr] 135 |                 if let Some(supper_class_expr) = supper_class {
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_supper_class_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `supper_class_expr`
[INFO] [stderr]    --> src/vistor/stmt_interpreter.rs:171:29
[INFO] [stderr]     |
[INFO] [stderr] 171 |                 if let Some(supper_class_expr) = supper_class {
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_supper_class_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `property`
[INFO] [stderr]   --> src/vistor/expr_resolver.rs:77:31
[INFO] [stderr]    |
[INFO] [stderr] 77 |             Expr::Get(object, property) => {
[INFO] [stderr]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `property`
[INFO] [stderr]   --> src/vistor/expr_resolver.rs:81:31
[INFO] [stderr]    |
[INFO] [stderr] 81 |             Expr::Set(object, property, val) => {
[INFO] [stderr]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_property`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `method`
[INFO] [stderr]   --> src/vistor/expr_resolver.rs:97:32
[INFO] [stderr]    |
[INFO] [stderr] 97 |             Expr::Super(token, method) => {
[INFO] [stderr]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/vistor/stmt_resolver.rs:173:13
[INFO] [stderr]     |
[INFO] [stderr] 173 |             _ => Ok(()),
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/vistor/stmt_resolver.rs:173:13
[INFO] [stderr]     |
[INFO] [stderr]  58 |             Stmt::Block(statements) => {
[INFO] [stderr]     |             ----------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr]  64 |             Stmt::Var(indentifier, expr) => {
[INFO] [stderr]     |             ---------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr]  75 |             Stmt::Function(name, _, _) => {
[INFO] [stderr]     |             -------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr]  82 |             Stmt::Expr(expr) => {
[INFO] [stderr]     |             ---------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 173 |             _ => Ok(()),
[INFO] [stderr]     |             ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `supper_class_expr`
[INFO] [stderr]    --> src/vistor/stmt_resolver.rs:164:29
[INFO] [stderr]     |
[INFO] [stderr] 164 |                 if let Some(supper_class_expr) = supper_class {
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_supper_class_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stmt`
[INFO] [stderr]    --> src/vistor/stmt_resolver.rs:177:29
[INFO] [stderr]     |
[INFO] [stderr] 177 |     fn visit_env(&mut self, stmt: &Stmt, env: Rc<RefCell<Environment>>) -> Result<(), ResolveError> {
[INFO] [stderr]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `env`
[INFO] [stderr]    --> src/vistor/stmt_resolver.rs:177:42
[INFO] [stderr]     |
[INFO] [stderr] 177 |     fn visit_env(&mut self, stmt: &Stmt, env: Rc<RefCell<Environment>>) -> Result<(), ResolveError> {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `function_type`
[INFO] [stderr]   --> src/parser/parser_stmt.rs:60:28
[INFO] [stderr]    |
[INFO] [stderr] 60 |     fn function(&mut self, function_type: FunctionType) -> Result<Stmt, ParserError> {
[INFO] [stderr]    |                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_type`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/parser/parser_stmt.rs:170:13
[INFO] [stderr]     |
[INFO] [stderr] 170 |         let mut initializer: Option<Stmt>;
[INFO] [stderr]     |             ----^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `token`
[INFO] [stderr]   --> src/value/function.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 66 |         token: &Token,
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `res`
[INFO] [stderr]   --> src/interpreter/mod.rs:29:17
[INFO] [stderr]    |
[INFO] [stderr] 29 |             let res = self.exectue(&statement)?;
[INFO] [stderr]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Logical` is never constructed
[INFO] [stderr]   --> src/grammer/expression.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr]  4 | pub enum Expr {
[INFO] [stderr]    |          ---- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 11 |     Logical(Box<Expr>, Token, Box<Expr>),
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `interpret_stmt_debug` is never used
[INFO] [stderr]   --> src/vistor/stmt_interpreter.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl Interpreter {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] 15 |     pub fn interpret_stmt_debug(&mut self, stmt: &Stmt) -> Result<(), RunTimeError> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `or` and `and` are never used
[INFO] [stderr]   --> src/parser/parser_expr.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr]  5 | impl Parser {
[INFO] [stderr]    | ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 37 |     fn or(&mut self) -> Result<Expr, ParserError> {
[INFO] [stderr]    |        ^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     fn and(&mut self) -> Result<Expr, ParserError> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `arity` is never used
[INFO] [stderr]   --> src/value/function.rs:59:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub trait Callable {
[INFO] [stderr]    |           -------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 59 |     fn arity(&self) -> usize;
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `to_string` is never used
[INFO] [stderr]   --> src/value/class.rs:40:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl Class {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub fn to_string(&self) -> String {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `arity` is never used
[INFO] [stderr]   --> src/value/class.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 61 | impl Class {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 77 |     pub fn arity(&self) -> usize {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `to_string` is never used
[INFO] [stderr]    --> src/value/class.rs:124:12
[INFO] [stderr]     |
[INFO] [stderr]  95 | impl ClassInstance {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub fn to_string(&self) -> String {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/vistor/stmt_interpreter.rs:83:21
[INFO] [stderr]    |
[INFO] [stderr] 83 |                     self.exectue(&(*body));
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 83 |                     let _ = self.exectue(&(*body));
[INFO] [stderr]    |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/parser/parser_stmt.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |             self.consume(TokenType::Identifier, "Expect super class name");
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 42 |             let _ = self.consume(TokenType::Identifier, "Expect super class name");
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/parser/parser_stmt.rs:125:9
[INFO] [stderr]     |
[INFO] [stderr] 125 |         self.consume(TokenType::RightBrace, "Expect '}' after block.");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 125 |         let _ = self.consume(TokenType::RightBrace, "Expect '}' after block.");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/parser/parser_stmt.rs:143:9
[INFO] [stderr]     |
[INFO] [stderr] 143 |         self.consume(TokenType::LeftParen, "Expect \' ( \' after if");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 143 |         let _ = self.consume(TokenType::LeftParen, "Expect \' ( \' after if");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/parser/parser_stmt.rs:145:9
[INFO] [stderr]     |
[INFO] [stderr] 145 |         self.consume(TokenType::RightParen, "Expect \' ) \' after if condition");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 145 |         let _ = self.consume(TokenType::RightParen, "Expect \' ) \' after if condition");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/parser/parser_stmt.rs:158:9
[INFO] [stderr]     |
[INFO] [stderr] 158 |         self.consume(TokenType::LeftParen, "Expect \' ( \' after while");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 158 |         let _ = self.consume(TokenType::LeftParen, "Expect \' ( \' after while");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/parser/parser_stmt.rs:160:9
[INFO] [stderr]     |
[INFO] [stderr] 160 |         self.consume(TokenType::RightParen, "Expect \' ) \' after condition");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 160 |         let _ = self.consume(TokenType::RightParen, "Expect \' ) \' after condition");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/parser/parser_stmt.rs:167:9
[INFO] [stderr]     |
[INFO] [stderr] 167 |         self.consume(TokenType::LeftParen, "Expect \' ( \' after for");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 167 |         let _ = self.consume(TokenType::LeftParen, "Expect \' ( \' after for");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/parser/parser_stmt.rs:186:9
[INFO] [stderr]     |
[INFO] [stderr] 186 |         self.consume(TokenType::Semicolon, "Expect \' ; \' after loop condition");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 186 |         let _ = self.consume(TokenType::Semicolon, "Expect \' ; \' after loop condition");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/parser/parser_stmt.rs:195:9
[INFO] [stderr]     |
[INFO] [stderr] 195 |         self.consume(TokenType::RightParen, "Expect \' ) \' after for clauses.");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 195 |         let _ = self.consume(TokenType::RightParen, "Expect \' ) \' after for clauses.");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/parser/parser_stmt.rs:237:9
[INFO] [stderr]     |
[INFO] [stderr] 237 |         self.consume(TokenType::Semicolon, "Expect \';\' after return value");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 237 |         let _ = self.consume(TokenType::Semicolon, "Expect \';\' after return value");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/value/class.rs:118:13
[INFO] [stderr]     |
[INFO] [stderr] 118 |             init_func.bind(instance.clone()).call(interpreter, token, arguments);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 118 |             let _ = init_func.bind(instance.clone()).call(interpreter, token, arguments);
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]   --> src/resolver/mod.rs:38:53
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn new(interpreter: &'a mut Interpreter) -> Resolver {
[INFO] [stderr]    |                              --                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              the lifetime is named here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn new(interpreter: &'a mut Interpreter) -> Resolver<'a> {
[INFO] [stderr]    |                                                             ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `craft_interpreter` (bin "craft_interpreter" test) generated 47 warnings (run `cargo fix --bin "craft_interpreter" -p craft_interpreter --tests` to apply 27 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/craft_interpreter-299a0afc2265de29)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test scanner::tests::error_unexpected_char ... ok
[INFO] [stdout] test scanner::tests::multiple_line ... ok
[INFO] [stdout] test parser::parser_expr::tests::expression_general ... ok
[INFO] [stdout] test scanner::tests::error_unterminated_string ... ok
[INFO] [stdout] test scanner::tests::unit_identifier_literals ... ok
[INFO] [stdout] test scanner::tests::unit_notation ... ok
[INFO] [stdout] test scanner::tests::unit_number_literals ... ok
[INFO] [stdout] test scanner::tests::unit_reserved_keywords ... ok
[INFO] [stdout] test scanner::tests::unit_one_or_two_character_token ... ok
[INFO] [stdout] test scanner::tests::unit_single_character_token ... ok
[INFO] [stdout] test vistor::ast_printer::tests::display_token ... ok
[INFO] [stdout] test scanner::tests::unit_string_literals ... ok
[INFO] [stdout] test scanner::token::tests::create_token ... ok
[INFO] [stdout] test parser::parser_expr::tests::expression_error ... ok
[INFO] [stdout] test vistor::expr_interpreter::tests::interpreter_expression ... ok
[INFO] [stdout] test parser::parser_expr::tests::expression_primary ... ok
[INFO] [stdout] test vistor::expr_interpreter::tests::interpreter_expression_error ... ok
[INFO] [stdout] test interpreter::tests::simple_statement has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "8a2f9c2061c658db3053575b839ad0ad7fadab29524c7efeb14511a554700c22", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a2f9c2061c658db3053575b839ad0ad7fadab29524c7efeb14511a554700c22", kill_on_drop: false }`
[INFO] [stdout] 8a2f9c2061c658db3053575b839ad0ad7fadab29524c7efeb14511a554700c22
