[INFO] cloning repository https://github.com/kakoc/myox_interpreter [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kakoc/myox_interpreter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkakoc%2Fmyox_interpreter"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkakoc%2Fmyox_interpreter'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 05f38d69c31a0798912e668ea12d66adb3c1ab17 [INFO] checking kakoc/myox_interpreter against try#ea663bba38739867a4b75ac820991b4f5d093c3b for pr-62262-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkakoc%2Fmyox_interpreter" "/workspace/builds/worker-6/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-6/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/kakoc/myox_interpreter on toolchain ea663bba38739867a4b75ac820991b4f5d093c3b [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/kakoc/myox_interpreter [INFO] finished tweaking git repo https://github.com/kakoc/myox_interpreter [INFO] tweaked toml for git repo https://github.com/kakoc/myox_interpreter written to /workspace/builds/worker-6/source/Cargo.toml [INFO] crate git repo https://github.com/kakoc/myox_interpreter already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 09815cee94f016f1c6875bfc3c232ebfadb46d4eaf3254edbd7cfe82344b045f [INFO] running `"docker" "start" "-a" "09815cee94f016f1c6875bfc3c232ebfadb46d4eaf3254edbd7cfe82344b045f"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Checking myox_interpreter v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused import: `crate::scanner::Literal` [INFO] [stderr] --> src/ast_printer.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::scanner::Literal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::scanner::Token` [INFO] [stderr] --> src/ast_printer.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::scanner::Token; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ast_printer.rs:55:37 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn accept(&self, v: &mut Visitor) -> T { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast_printer` [INFO] [stderr] --> src/environment.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::ast_printer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast_printer::AstPrinter` [INFO] [stderr] --> src/interpreter.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast_printer::AstPrinter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/statement.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn accept(&self, v: &mut Visitor) -> () { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::scanner::Literal` [INFO] [stderr] --> src/ast_printer.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::scanner::Literal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::scanner::Token` [INFO] [stderr] --> src/ast_printer.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::scanner::Token; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ast_printer.rs:55:37 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn accept(&self, v: &mut Visitor) -> T { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast_printer` [INFO] [stderr] --> src/environment.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::ast_printer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast_printer::AstPrinter` [INFO] [stderr] --> src/interpreter.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast_printer::AstPrinter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/statement.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn accept(&self, v: &mut Visitor) -> () { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/ast_printer.rs:49:50 [INFO] [stderr] | [INFO] [stderr] 49 | fn visit_assignment(&mut self, _expr: &Expr, name: &scanner::Token, value: &Expr) -> T { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/ast_printer.rs:49:73 [INFO] [stderr] | [INFO] [stderr] 49 | fn visit_assignment(&mut self, _expr: &Expr, name: &scanner::Token, value: &Expr) -> T { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `equals` [INFO] [stderr] --> src/parser.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | let equals = self.previous(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_equals` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/statement.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | fn visit_var_stmt(&mut self, name: &scanner::Token, value: &Expr) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/statement.rs:17:57 [INFO] [stderr] | [INFO] [stderr] 17 | fn visit_var_stmt(&mut self, name: &scanner::Token, value: &Expr) {} [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stmts` [INFO] [stderr] --> src/statement.rs:19:36 [INFO] [stderr] | [INFO] [stderr] 19 | fn visit_block_stmt(&mut self, stmts: Vec) {} [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_stmts` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/statement.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | Stmt::Print(expr) => v.visit_print_stmt(self), [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/statement.rs:26:30 [INFO] [stderr] | [INFO] [stderr] 26 | Stmt::Expression(expr) => v.visit_expression_stmt(self), [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/ast_printer.rs:49:50 [INFO] [stderr] | [INFO] [stderr] 49 | fn visit_assignment(&mut self, _expr: &Expr, name: &scanner::Token, value: &Expr) -> T { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/ast_printer.rs:49:73 [INFO] [stderr] | [INFO] [stderr] 49 | fn visit_assignment(&mut self, _expr: &Expr, name: &scanner::Token, value: &Expr) -> T { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `equals` [INFO] [stderr] --> src/parser.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | let equals = self.previous(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_equals` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/statement.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | fn visit_var_stmt(&mut self, name: &scanner::Token, value: &Expr) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/statement.rs:17:57 [INFO] [stderr] | [INFO] [stderr] 17 | fn visit_var_stmt(&mut self, name: &scanner::Token, value: &Expr) {} [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stmts` [INFO] [stderr] --> src/statement.rs:19:36 [INFO] [stderr] | [INFO] [stderr] 19 | fn visit_block_stmt(&mut self, stmts: Vec) {} [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_stmts` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/statement.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | Stmt::Print(expr) => v.visit_print_stmt(self), [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/statement.rs:26:30 [INFO] [stderr] | [INFO] [stderr] 26 | Stmt::Expression(expr) => v.visit_expression_stmt(self), [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: function cannot return without recursing [INFO] [stderr] --> src/environment.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn assign(&mut self, name: scanner::Token, value: scanner::Literal) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stderr] ... [INFO] [stderr] 52 | return env.assign(name.clone(), value.clone()); [INFO] [stderr] | --------------------------------------- recursive call site [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unconditional_recursion)]` on by default [INFO] [stderr] = help: a `loop` may express intention better if this is on purpose [INFO] [stderr] [INFO] [stderr] warning: function cannot return without recursing [INFO] [stderr] --> src/environment.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn assign(&mut self, name: scanner::Token, value: scanner::Literal) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stderr] ... [INFO] [stderr] 52 | return env.assign(name.clone(), value.clone()); [INFO] [stderr] | --------------------------------------- recursive call site [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unconditional_recursion)]` on by default [INFO] [stderr] = help: a `loop` may express intention better if this is on purpose [INFO] [stderr] [INFO] [stderr] warning: cannot borrow `*self` as mutable because it is also borrowed as immutable [INFO] [stderr] --> src/scanner.rs:277:9 [INFO] [stderr] | [INFO] [stderr] 276 | let value = &self.source[self.start + 1..self.current - 1]; [INFO] [stderr] | ----------- immutable borrow occurs here [INFO] [stderr] 277 | self.add_token_with_literal(TokenType::String, Literal::S(value.to_string())); [INFO] [stderr] | ^^^^ mutable borrow occurs here ----- immutable borrow later used here [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default [INFO] [stderr] = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future [INFO] [stderr] = note: for more information, see issue #59159 [INFO] [stderr] [INFO] [stderr] warning: cannot borrow `*self` as mutable because it is also borrowed as immutable [INFO] [stderr] --> src/scanner.rs:277:9 [INFO] [stderr] | [INFO] [stderr] 276 | let value = &self.source[self.start + 1..self.current - 1]; [INFO] [stderr] | ----------- immutable borrow occurs here [INFO] [stderr] 277 | self.add_token_with_literal(TokenType::String, Literal::S(value.to_string())); [INFO] [stderr] | ^^^^ mutable borrow occurs here ----- immutable borrow later used here [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default [INFO] [stderr] = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future [INFO] [stderr] = note: for more information, see issue #59159 [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::scanner::Literal` [INFO] [stderr] --> src/ast_printer.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::scanner::Literal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::scanner::Token` [INFO] [stderr] --> src/ast_printer.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::scanner::Token; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ast_printer.rs:55:37 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn accept(&self, v: &mut Visitor) -> T { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast_printer` [INFO] [stderr] --> src/environment.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::ast_printer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast_printer::AstPrinter` [INFO] [stderr] --> src/interpreter.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast_printer::AstPrinter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/statement.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn accept(&self, v: &mut Visitor) -> () { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::process` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::process; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ast_printer::Expr` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use ast_printer::Expr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `parser::Parser` [INFO] [stderr] --> src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use parser::Parser; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::scanner::Literal` [INFO] [stderr] --> src/ast_printer.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::scanner::Literal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::scanner::Token` [INFO] [stderr] --> src/ast_printer.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::scanner::Token; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/ast_printer.rs:55:37 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn accept(&self, v: &mut Visitor) -> T { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast_printer` [INFO] [stderr] --> src/environment.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::ast_printer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast_printer::AstPrinter` [INFO] [stderr] --> src/interpreter.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast_printer::AstPrinter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/statement.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn accept(&self, v: &mut Visitor) -> () { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn Visitor` [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::process` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::process; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ast_printer::Expr` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use ast_printer::Expr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `parser::Parser` [INFO] [stderr] --> src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use parser::Parser; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tokens` [INFO] [stderr] --> tests/scanner.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | let tokens = scanner.scan_tokens(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_tokens` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `statements` [INFO] [stderr] --> src/main.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | let statements = run_file(path_to_file.to_string()); [INFO] [stderr] | ^^^^^^^^^^ help: consider prefixing with an underscore: `_statements` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/ast_printer.rs:49:50 [INFO] [stderr] | [INFO] [stderr] 49 | fn visit_assignment(&mut self, _expr: &Expr, name: &scanner::Token, value: &Expr) -> T { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/ast_printer.rs:49:73 [INFO] [stderr] | [INFO] [stderr] 49 | fn visit_assignment(&mut self, _expr: &Expr, name: &scanner::Token, value: &Expr) -> T { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `equals` [INFO] [stderr] --> src/parser.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | let equals = self.previous(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_equals` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/statement.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | fn visit_var_stmt(&mut self, name: &scanner::Token, value: &Expr) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/statement.rs:17:57 [INFO] [stderr] | [INFO] [stderr] 17 | fn visit_var_stmt(&mut self, name: &scanner::Token, value: &Expr) {} [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stmts` [INFO] [stderr] --> src/statement.rs:19:36 [INFO] [stderr] | [INFO] [stderr] 19 | fn visit_block_stmt(&mut self, stmts: Vec) {} [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_stmts` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/statement.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | Stmt::Print(expr) => v.visit_print_stmt(self), [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/statement.rs:26:30 [INFO] [stderr] | [INFO] [stderr] 26 | Stmt::Expression(expr) => v.visit_expression_stmt(self), [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: function cannot return without recursing [INFO] [stderr] --> src/environment.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn assign(&mut self, name: scanner::Token, value: scanner::Literal) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stderr] ... [INFO] [stderr] 52 | return env.assign(name.clone(), value.clone()); [INFO] [stderr] | --------------------------------------- recursive call site [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unconditional_recursion)]` on by default [INFO] [stderr] = help: a `loop` may express intention better if this is on purpose [INFO] [stderr] [INFO] [stderr] warning: unused variable: `statements` [INFO] [stderr] --> src/main.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | let statements = run_file(path_to_file.to_string()); [INFO] [stderr] | ^^^^^^^^^^ help: consider prefixing with an underscore: `_statements` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/ast_printer.rs:49:50 [INFO] [stderr] | [INFO] [stderr] 49 | fn visit_assignment(&mut self, _expr: &Expr, name: &scanner::Token, value: &Expr) -> T { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/ast_printer.rs:49:73 [INFO] [stderr] | [INFO] [stderr] 49 | fn visit_assignment(&mut self, _expr: &Expr, name: &scanner::Token, value: &Expr) -> T { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `equals` [INFO] [stderr] --> src/parser.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | let equals = self.previous(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_equals` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/statement.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | fn visit_var_stmt(&mut self, name: &scanner::Token, value: &Expr) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/statement.rs:17:57 [INFO] [stderr] | [INFO] [stderr] 17 | fn visit_var_stmt(&mut self, name: &scanner::Token, value: &Expr) {} [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stmts` [INFO] [stderr] --> src/statement.rs:19:36 [INFO] [stderr] | [INFO] [stderr] 19 | fn visit_block_stmt(&mut self, stmts: Vec) {} [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_stmts` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/statement.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | Stmt::Print(expr) => v.visit_print_stmt(self), [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/statement.rs:26:30 [INFO] [stderr] | [INFO] [stderr] 26 | Stmt::Expression(expr) => v.visit_expression_stmt(self), [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: function cannot return without recursing [INFO] [stderr] --> src/environment.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn assign(&mut self, name: scanner::Token, value: scanner::Literal) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing [INFO] [stderr] ... [INFO] [stderr] 52 | return env.assign(name.clone(), value.clone()); [INFO] [stderr] | --------------------------------------- recursive call site [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unconditional_recursion)]` on by default [INFO] [stderr] = help: a `loop` may express intention better if this is on purpose [INFO] [stderr] [INFO] [stderr] warning: cannot borrow `*self` as mutable because it is also borrowed as immutable [INFO] [stderr] --> src/scanner.rs:277:9 [INFO] [stderr] | [INFO] [stderr] 276 | let value = &self.source[self.start + 1..self.current - 1]; [INFO] [stderr] | ----------- immutable borrow occurs here [INFO] [stderr] 277 | self.add_token_with_literal(TokenType::String, Literal::S(value.to_string())); [INFO] [stderr] | ^^^^ mutable borrow occurs here ----- immutable borrow later used here [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default [INFO] [stderr] = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future [INFO] [stderr] = note: for more information, see issue #59159 [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Printable` [INFO] [stderr] --> src/ast_printer.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub enum Printable { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print` [INFO] [stderr] --> src/ast_printer.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn print(&mut self, expr: Expr) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `interpret` [INFO] [stderr] --> src/interpreter.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn interpret(&mut self, statements: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: cannot borrow `*self` as mutable because it is also borrowed as immutable [INFO] [stderr] --> src/scanner.rs:277:9 [INFO] [stderr] | [INFO] [stderr] 276 | let value = &self.source[self.start + 1..self.current - 1]; [INFO] [stderr] | ----------- immutable borrow occurs here [INFO] [stderr] 277 | self.add_token_with_literal(TokenType::String, Literal::S(value.to_string())); [INFO] [stderr] | ^^^^ mutable borrow occurs here ----- immutable borrow later used here [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default [INFO] [stderr] = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future [INFO] [stderr] = note: for more information, see issue #59159 [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Printable` [INFO] [stderr] --> src/ast_printer.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub enum Printable { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print` [INFO] [stderr] --> src/ast_printer.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn print(&mut self, expr: Expr) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `interpret` [INFO] [stderr] --> src/interpreter.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn interpret(&mut self, statements: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.17s [INFO] running `"docker" "inspect" "09815cee94f016f1c6875bfc3c232ebfadb46d4eaf3254edbd7cfe82344b045f"` [INFO] running `"docker" "rm" "-f" "09815cee94f016f1c6875bfc3c232ebfadb46d4eaf3254edbd7cfe82344b045f"` [INFO] [stdout] 09815cee94f016f1c6875bfc3c232ebfadb46d4eaf3254edbd7cfe82344b045f