[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 { [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 { [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 { [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>, superclass: &Option>) -> 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>, [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 `>>::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>, [INFO] [stdout] 600 | | superclass: &Option>, [INFO] [stdout] 601 | | ) -> Result<(), RuntimeError> { [INFO] [stdout] | |_________________________________^ method `>>::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 ` as stmt::StmtVisitor>>::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>, [INFO] [stdout] 266 | | superclass: &Option> [INFO] [stdout] 267 | | ) -> Result<(), RuntimeError> { [INFO] [stdout] | |_________________________________^ method ` as 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] [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 { [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 { [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 { [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 { [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>, superclass: &Option>) -> 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>, [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 `>>::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>, [INFO] [stdout] 600 | | superclass: &Option>, [INFO] [stdout] 601 | | ) -> Result<(), RuntimeError> { [INFO] [stdout] | |_________________________________^ method `>>::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 ` as stmt::StmtVisitor>>::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>, [INFO] [stdout] 266 | | superclass: &Option> [INFO] [stdout] 267 | | ) -> Result<(), RuntimeError> { [INFO] [stdout] | |_________________________________^ method ` as 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] [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 { [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