[INFO] updating cached repository https://github.com/kakoc/myox_interpreter [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/big/crater/work/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 05f38d69c31a0798912e668ea12d66adb3c1ab17 [INFO] testing kakoc/myox_interpreter against 1.38.0 for beta-1.39-1 [INFO] running `"git" "clone" "work/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkakoc%2Fmyox_interpreter" "work/builds/worker-7/source"` [INFO] [stderr] Cloning into 'work/builds/worker-7/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/kakoc/myox_interpreter on toolchain 1.38.0 [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+1.38.0" "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 work/builds/worker-7/source/Cargo.toml [INFO] crate git repo https://github.com/kakoc/myox_interpreter already has a lockfile, it will not be regenerated [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+1.38.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-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" "+1.38.0" "build" "--frozen"` [INFO] [stdout] a8a69b512eaa3a1ef495e4c169ae703e633e49c9449330de9e417f66f5965e70 [INFO] running `"docker" "start" "-a" "a8a69b512eaa3a1ef495e4c169ae703e633e49c9449330de9e417f66f5965e70"` [INFO] [stderr] Compiling 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 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: 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 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] Finished dev [unoptimized + debuginfo] target(s) in 3.35s [INFO] running `"docker" "inspect" "a8a69b512eaa3a1ef495e4c169ae703e633e49c9449330de9e417f66f5965e70"` [INFO] running `"docker" "rm" "-f" "a8a69b512eaa3a1ef495e4c169ae703e633e49c9449330de9e417f66f5965e70"` [INFO] [stdout] a8a69b512eaa3a1ef495e4c169ae703e633e49c9449330de9e417f66f5965e70 [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-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" "+1.38.0" "test" "--frozen" "--no-run"` [INFO] [stdout] d0ad48a988e9fd61c76e44871fc07235887503a2f927bd8b72afdd98d4449ac0 [INFO] running `"docker" "start" "-a" "d0ad48a988e9fd61c76e44871fc07235887503a2f927bd8b72afdd98d4449ac0"` [INFO] [stderr] Compiling 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: `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 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: `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: 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: 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] Finished dev [unoptimized + debuginfo] target(s) in 2.21s [INFO] running `"docker" "inspect" "d0ad48a988e9fd61c76e44871fc07235887503a2f927bd8b72afdd98d4449ac0"` [INFO] running `"docker" "rm" "-f" "d0ad48a988e9fd61c76e44871fc07235887503a2f927bd8b72afdd98d4449ac0"` [INFO] [stdout] d0ad48a988e9fd61c76e44871fc07235887503a2f927bd8b72afdd98d4449ac0 [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-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" "+1.38.0" "test" "--frozen"` [INFO] [stdout] cb1148703040156054d29ea3ad7213b809a8c70c791a4b5e2c9537652ffb9bd5 [INFO] running `"docker" "start" "-a" "cb1148703040156054d29ea3ad7213b809a8c70c791a4b5e2c9537652ffb9bd5"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.01s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/myox_interpreter-27775ad3354e3fbc [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/myox_interpreter-ef08712f3f931efb [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/environment-549901b098b816d6 [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test environment ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/expr-c679799574651777 [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test ast_printer ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/interpreter-83697744af8237e2 [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test interpret_statements ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/parser-52bbcc7e02e60555 [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/scanner-c48a21c90e6db036 [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_new_list_is_empty ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Doc-tests myox_interpreter [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "cb1148703040156054d29ea3ad7213b809a8c70c791a4b5e2c9537652ffb9bd5"` [INFO] running `"docker" "rm" "-f" "cb1148703040156054d29ea3ad7213b809a8c70c791a4b5e2c9537652ffb9bd5"` [INFO] [stdout] cb1148703040156054d29ea3ad7213b809a8c70c791a4b5e2c9537652ffb9bd5