[INFO] cloning repository https://github.com/yokurang/crafting-interpreters-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yokurang/crafting-interpreters-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyokurang%2Fcrafting-interpreters-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyokurang%2Fcrafting-interpreters-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0c3ca2c9286d56959ba56d4692fe89ebbdc51cde
[INFO] checking yokurang/crafting-interpreters-rs against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyokurang%2Fcrafting-interpreters-rs" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yokurang/crafting-interpreters-rs
[INFO] finished tweaking git repo https://github.com/yokurang/crafting-interpreters-rs
[INFO] tweaked toml for git repo https://github.com/yokurang/crafting-interpreters-rs written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yokurang/crafting-interpreters-rs on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yokurang/crafting-interpreters-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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded encoding_rs_io v0.1.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1ed1e6ec0cb2a17de8919a16f39d9c8c9520a413b8605c4af3c4432cb3cc0646
[INFO] running `Command { std: "docker" "start" "-a" "1ed1e6ec0cb2a17de8919a16f39d9c8c9520a413b8605c4af3c4432cb3cc0646", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1ed1e6ec0cb2a17de8919a16f39d9c8c9520a413b8605c4af3c4432cb3cc0646", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ed1e6ec0cb2a17de8919a16f39d9c8c9520a413b8605c4af3c4432cb3cc0646", kill_on_drop: false }`
[INFO] [stdout] 1ed1e6ec0cb2a17de8919a16f39d9c8c9520a413b8605c4af3c4432cb3cc0646
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2b12c4c01fd71a2171168e5e931a19d9d9642ff3a42b4662f34da6238138cfb6
[INFO] running `Command { std: "docker" "start" "-a" "2b12c4c01fd71a2171168e5e931a19d9d9642ff3a42b4662f34da6238138cfb6", kill_on_drop: false }`
[INFO] [stderr]     Checking encoding_rs_io v0.1.7
[INFO] [stderr]     Checking crafting-interpreters v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `log::error`
[INFO] [stdout]  --> src/parser/parser.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Dot`, `Identifier`, `Less`, and `RightParen`
[INFO] [stdout]  --> src/parser/parser.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::TokenType::{Dot, Identifier, LeftParen, Less, RightParen};
[INFO] [stdout]   |                        ^^^  ^^^^^^^^^^             ^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/parser/parser.rs:467:15
[INFO] [stdout]     |
[INFO] [stdout] 467 |         while (self.check(&TokenType::RightBrace) && !self.is_at_end()) {
[INFO] [stdout]     |               ^                                                       ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 467 -         while (self.check(&TokenType::RightBrace) && !self.is_at_end()) {
[INFO] [stdout] 467 +         while self.check(&TokenType::RightBrace) && !self.is_at_end()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Token` and `Value`
[INFO] [stdout]  --> src/utils/utils.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{RuntimeError, Token, Value};
[INFO] [stdout]   |                           ^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Interpreter`
[INFO] [stdout]   --> src/evaluator/evaluator.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::{Environment, Interpreter, LoxFunction, LoxInstance, Stmt, StmtVisitor, Token};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stmt`
[INFO] [stdout]  --> src/environment/environment.rs:2:36
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{Literal, RuntimeError, Stmt, TokenType, Value};
[INFO] [stdout]   |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser`
[INFO] [stdout]  --> src/resolver/resolver.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::{parser, Expr, ParseError, Visitor}; // Importing the Expr and Stmt enums
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::FunctionType::Initializer`
[INFO] [stdout]   --> src/resolver/resolver.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | use crate::FunctionType::Initializer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Environment` and `Stmt`
[INFO] [stdout]  --> src/class/class.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Environment, Evaluator, LoxCallable, LoxFunction, RuntimeError, Stmt, Token, Value};
[INFO] [stdout]   |             ^^^^^^^^^^^                                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::error`
[INFO] [stdout]  --> src/parser/parser.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Dot`, `Identifier`, `Less`, and `RightParen`
[INFO] [stdout]  --> src/parser/parser.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::TokenType::{Dot, Identifier, LeftParen, Less, RightParen};
[INFO] [stdout]   |                        ^^^  ^^^^^^^^^^             ^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/parser/parser.rs:467:15
[INFO] [stdout]     |
[INFO] [stdout] 467 |         while (self.check(&TokenType::RightBrace) && !self.is_at_end()) {
[INFO] [stdout]     |               ^                                                       ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 467 -         while (self.check(&TokenType::RightBrace) && !self.is_at_end()) {
[INFO] [stdout] 467 +         while self.check(&TokenType::RightBrace) && !self.is_at_end()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Token` and `Value`
[INFO] [stdout]  --> src/utils/utils.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{RuntimeError, Token, Value};
[INFO] [stdout]   |                           ^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Interpreter`
[INFO] [stdout]   --> src/evaluator/evaluator.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::{Environment, Interpreter, LoxFunction, LoxInstance, Stmt, StmtVisitor, Token};
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stmt`
[INFO] [stdout]  --> src/environment/environment.rs:2:36
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{Literal, RuntimeError, Stmt, TokenType, Value};
[INFO] [stdout]   |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser`
[INFO] [stdout]  --> src/resolver/resolver.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::{parser, Expr, ParseError, Visitor}; // Importing the Expr and Stmt enums
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::FunctionType::Initializer`
[INFO] [stdout]   --> src/resolver/resolver.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | use crate::FunctionType::Initializer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Environment` and `Stmt`
[INFO] [stdout]  --> src/class/class.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Environment, Evaluator, LoxCallable, LoxFunction, RuntimeError, Stmt, Token, Value};
[INFO] [stdout]   |             ^^^^^^^^^^^                                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/parser/parser.rs:170:21
[INFO] [stdout]     |
[INFO] [stdout] 170 |                 Err(error) => self.synchronize(),
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/parser/parser.rs:180:21
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 Err(error) => panic!("Error in processing a variable declaration.")
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/parser/parser.rs:185:21
[INFO] [stdout]     |
[INFO] [stdout] 185 |                 Err(error) => panic!("Error in processing a function.")
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/parser/parser.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 Err(error) => panic!("Error in processing a Class.")
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `equals`
[INFO] [stdout]    --> src/parser/parser.rs:509:17
[INFO] [stdout]     |
[INFO] [stdout] 509 |             let equals = self.previous().clone();  // keep for error reporting
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_equals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/evaluator/evaluator.rs:641:46
[INFO] [stdout]     |
[INFO] [stdout] 641 |             if let Ok(Stmt::Function { name, params, body }) = method {
[INFO] [stdout]     |                                              ^^^^^^ help: try ignoring the field: `params: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]    --> src/evaluator/evaluator.rs:641:54
[INFO] [stdout]     |
[INFO] [stdout] 641 |             if let Ok(Stmt::Function { name, params, body }) = method {
[INFO] [stdout]     |                                                      ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/evaluator/evaluator.rs:651:25
[INFO] [stdout]     |
[INFO] [stdout] 651 |                     Err(e) => {}
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/resolver/resolver.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |         name: &Token,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `declaration`
[INFO] [stdout]    --> src/resolver/resolver.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         declaration: FunctionType,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_declaration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enclosing_class`
[INFO] [stdout]    --> src/resolver/resolver.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let enclosing_class = &self.current_class;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enclosing_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `superclass`
[INFO] [stdout]    --> src/resolver/resolver.rs:296:21
[INFO] [stdout]     |
[INFO] [stdout] 296 |         if let Some(superclass) = superclass {
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_superclass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/resolver/resolver.rs:412:49
[INFO] [stdout]     |
[INFO] [stdout] 412 |     fn visit_get_expr(&mut self, object: &Expr, name: &Token) -> Result<Value, RuntimeError> {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/resolver/resolver.rs:418:49
[INFO] [stdout]     |
[INFO] [stdout] 418 |     fn visit_set_expr(&mut self, object: &Expr, name: &Token, value: &Expr) -> Result<Value, RuntimeError> {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method`
[INFO] [stdout]    --> src/resolver/resolver.rs:434:53
[INFO] [stdout]     |
[INFO] [stdout] 434 |     fn visit_super_expr(&mut self, keyword: &Token, method: &Token) -> Result<Value, RuntimeError> {
[INFO] [stdout]     |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `parser::parser::ParseError` is more private than the item `stmt::StmtVisitor::visit_class_stmt`
[INFO] [stdout]    --> src/parser/stmt.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn visit_class_stmt(&mut self, name: &Token, methods: &Vec<Result<Stmt, ParseError>>, superclass: &Option<Box<Expr>>) -> R;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `stmt::StmtVisitor::visit_class_stmt` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `parser::parser::ParseError` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/parser/parser.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) struct ParseError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `parser::parser::ParseError` is more private than the item `stmt::Stmt::Class::methods`
[INFO] [stdout]    --> src/parser/stmt.rs:79:9
[INFO] [stdout]     |
[INFO] [stdout]  79 |         methods: Vec<Result<Stmt, ParseError>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `stmt::Stmt::Class::methods` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `parser::parser::ParseError` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/parser/parser.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) struct ParseError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `parser::parser::ParseError` is more private than the item `<evaluator::evaluator::Evaluator as stmt::StmtVisitor<Result<(), evaluator::evaluator::RuntimeError>>>::visit_class_stmt`
[INFO] [stdout]    --> src/evaluator/evaluator.rs:596:5
[INFO] [stdout]     |
[INFO] [stdout] 596 | /     fn visit_class_stmt(
[INFO] [stdout] 597 | |         &mut self,
[INFO] [stdout] 598 | |         name: &Token,
[INFO] [stdout] 599 | |         methods: &Vec<Result<Stmt, ParseError>>,
[INFO] [stdout] 600 | |         superclass: &Option<Box<Expr>>,
[INFO] [stdout] 601 | |     ) -> Result<(), RuntimeError> {
[INFO] [stdout]     | |_________________________________^ method `<evaluator::evaluator::Evaluator as stmt::StmtVisitor<Result<(), evaluator::evaluator::RuntimeError>>>::visit_class_stmt` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `parser::parser::ParseError` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/parser/parser.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) struct ParseError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `parser::parser::ParseError` is more private than the item `<resolver::resolver::Resolver<'a> as stmt::StmtVisitor<Result<(), evaluator::evaluator::RuntimeError>>>::visit_class_stmt`
[INFO] [stdout]    --> src/resolver/resolver.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 | /     fn visit_class_stmt(
[INFO] [stdout] 263 | |         &mut self,
[INFO] [stdout] 264 | |         name: &Token,
[INFO] [stdout] 265 | |         methods: &Vec<Result<Stmt, ParseError>>,
[INFO] [stdout] 266 | |         superclass: &Option<Box<Expr>>
[INFO] [stdout] 267 | |     ) -> Result<(), RuntimeError> {
[INFO] [stdout]     | |_________________________________^ method `<resolver::resolver::Resolver<'a> as stmt::StmtVisitor<Result<(), evaluator::evaluator::RuntimeError>>>::visit_class_stmt` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `parser::parser::ParseError` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/parser/parser.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) struct ParseError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `assignment` is never used
[INFO] [stdout]    --> src/parser/parser.rs:503:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 503 |     fn assignment(&mut self) -> Result<Expr, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]   --> src/utils/utils.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn main() -> Result<()> {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/parser/parser.rs:170:21
[INFO] [stdout]     |
[INFO] [stdout] 170 |                 Err(error) => self.synchronize(),
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/parser/parser.rs:180:21
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 Err(error) => panic!("Error in processing a variable declaration.")
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/parser/parser.rs:185:21
[INFO] [stdout]     |
[INFO] [stdout] 185 |                 Err(error) => panic!("Error in processing a function.")
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/parser/parser.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                 Err(error) => panic!("Error in processing a Class.")
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `equals`
[INFO] [stdout]    --> src/parser/parser.rs:509:17
[INFO] [stdout]     |
[INFO] [stdout] 509 |             let equals = self.previous().clone();  // keep for error reporting
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_equals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/evaluator/evaluator.rs:641:46
[INFO] [stdout]     |
[INFO] [stdout] 641 |             if let Ok(Stmt::Function { name, params, body }) = method {
[INFO] [stdout]     |                                              ^^^^^^ help: try ignoring the field: `params: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]    --> src/evaluator/evaluator.rs:641:54
[INFO] [stdout]     |
[INFO] [stdout] 641 |             if let Ok(Stmt::Function { name, params, body }) = method {
[INFO] [stdout]     |                                                      ^^^^ help: try ignoring the field: `body: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/evaluator/evaluator.rs:651:25
[INFO] [stdout]     |
[INFO] [stdout] 651 |                     Err(e) => {}
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/resolver/resolver.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |         name: &Token,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `declaration`
[INFO] [stdout]    --> src/resolver/resolver.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         declaration: FunctionType,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_declaration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enclosing_class`
[INFO] [stdout]    --> src/resolver/resolver.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let enclosing_class = &self.current_class;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enclosing_class`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `superclass`
[INFO] [stdout]    --> src/resolver/resolver.rs:296:21
[INFO] [stdout]     |
[INFO] [stdout] 296 |         if let Some(superclass) = superclass {
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_superclass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/resolver/resolver.rs:412:49
[INFO] [stdout]     |
[INFO] [stdout] 412 |     fn visit_get_expr(&mut self, object: &Expr, name: &Token) -> Result<Value, RuntimeError> {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/resolver/resolver.rs:418:49
[INFO] [stdout]     |
[INFO] [stdout] 418 |     fn visit_set_expr(&mut self, object: &Expr, name: &Token, value: &Expr) -> Result<Value, RuntimeError> {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `method`
[INFO] [stdout]    --> src/resolver/resolver.rs:434:53
[INFO] [stdout]     |
[INFO] [stdout] 434 |     fn visit_super_expr(&mut self, keyword: &Token, method: &Token) -> Result<Value, RuntimeError> {
[INFO] [stdout]     |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `parser::parser::ParseError` is more private than the item `stmt::StmtVisitor::visit_class_stmt`
[INFO] [stdout]    --> src/parser/stmt.rs:29:5
[INFO] [stdout]     |
[INFO] [stdout]  29 |     fn visit_class_stmt(&mut self, name: &Token, methods: &Vec<Result<Stmt, ParseError>>, superclass: &Option<Box<Expr>>) -> R;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `stmt::StmtVisitor::visit_class_stmt` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `parser::parser::ParseError` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/parser/parser.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) struct ParseError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `parser::parser::ParseError` is more private than the item `stmt::Stmt::Class::methods`
[INFO] [stdout]    --> src/parser/stmt.rs:79:9
[INFO] [stdout]     |
[INFO] [stdout]  79 |         methods: Vec<Result<Stmt, ParseError>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `stmt::Stmt::Class::methods` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `parser::parser::ParseError` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/parser/parser.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) struct ParseError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `parser::parser::ParseError` is more private than the item `<evaluator::evaluator::Evaluator as stmt::StmtVisitor<Result<(), evaluator::evaluator::RuntimeError>>>::visit_class_stmt`
[INFO] [stdout]    --> src/evaluator/evaluator.rs:596:5
[INFO] [stdout]     |
[INFO] [stdout] 596 | /     fn visit_class_stmt(
[INFO] [stdout] 597 | |         &mut self,
[INFO] [stdout] 598 | |         name: &Token,
[INFO] [stdout] 599 | |         methods: &Vec<Result<Stmt, ParseError>>,
[INFO] [stdout] 600 | |         superclass: &Option<Box<Expr>>,
[INFO] [stdout] 601 | |     ) -> Result<(), RuntimeError> {
[INFO] [stdout]     | |_________________________________^ method `<evaluator::evaluator::Evaluator as stmt::StmtVisitor<Result<(), evaluator::evaluator::RuntimeError>>>::visit_class_stmt` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `parser::parser::ParseError` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/parser/parser.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) struct ParseError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `parser::parser::ParseError` is more private than the item `<resolver::resolver::Resolver<'a> as stmt::StmtVisitor<Result<(), evaluator::evaluator::RuntimeError>>>::visit_class_stmt`
[INFO] [stdout]    --> src/resolver/resolver.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 | /     fn visit_class_stmt(
[INFO] [stdout] 263 | |         &mut self,
[INFO] [stdout] 264 | |         name: &Token,
[INFO] [stdout] 265 | |         methods: &Vec<Result<Stmt, ParseError>>,
[INFO] [stdout] 266 | |         superclass: &Option<Box<Expr>>
[INFO] [stdout] 267 | |     ) -> Result<(), RuntimeError> {
[INFO] [stdout]     | |_________________________________^ method `<resolver::resolver::Resolver<'a> as stmt::StmtVisitor<Result<(), evaluator::evaluator::RuntimeError>>>::visit_class_stmt` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `parser::parser::ParseError` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/parser/parser.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) struct ParseError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `assignment` is never used
[INFO] [stdout]    --> src/parser/parser.rs:503:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 503 |     fn assignment(&mut self) -> Result<Expr, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]   --> src/utils/utils.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn main() -> Result<()> {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.02s
[INFO] running `Command { std: "docker" "inspect" "2b12c4c01fd71a2171168e5e931a19d9d9642ff3a42b4662f34da6238138cfb6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b12c4c01fd71a2171168e5e931a19d9d9642ff3a42b4662f34da6238138cfb6", kill_on_drop: false }`
[INFO] [stdout] 2b12c4c01fd71a2171168e5e931a19d9d9642ff3a42b4662f34da6238138cfb6
