[INFO] cloning repository https://github.com/leonardchinonso/rlox [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/leonardchinonso/rlox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleonardchinonso%2Frlox", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleonardchinonso%2Frlox'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 486ed4f5530e014be96ce2d177f13879fd71266d [INFO] testing leonardchinonso/rlox against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleonardchinonso%2Frlox" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/leonardchinonso/rlox [INFO] finished tweaking git repo https://github.com/leonardchinonso/rlox [INFO] tweaked toml for git repo https://github.com/leonardchinonso/rlox written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/leonardchinonso/rlox on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/leonardchinonso/rlox 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 2 packages to latest compatible versions [INFO] [stderr] Adding downcast v0.11.0 [INFO] [stderr] Adding dyn-clone v1.0.20 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 45124813f3659d4a7a4936e43a4ea7744f45d7af8d17fd2ea28ff46ddaf84d7a [INFO] running `Command { std: "docker" "start" "-a" "45124813f3659d4a7a4936e43a4ea7744f45d7af8d17fd2ea28ff46ddaf84d7a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "45124813f3659d4a7a4936e43a4ea7744f45d7af8d17fd2ea28ff46ddaf84d7a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "45124813f3659d4a7a4936e43a4ea7744f45d7af8d17fd2ea28ff46ddaf84d7a", kill_on_drop: false }` [INFO] [stdout] 45124813f3659d4a7a4936e43a4ea7744f45d7af8d17fd2ea28ff46ddaf84d7a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ef0e6f46a03790cd307da574f4bd81de46788b93aea8747331855e702437ab17 [INFO] running `Command { std: "docker" "start" "-a" "ef0e6f46a03790cd307da574f4bd81de46788b93aea8747331855e702437ab17", kill_on_drop: false }` [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling downcast v0.11.0 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling second_interpreter v0.1.0 (/opt/rustwide/workdir/second_interpreter) [INFO] [stderr] Compiling first_interpreter v0.1.0 (/opt/rustwide/workdir/first_interpreter) [INFO] [stdout] warning: unused import: `crate::expressions::expr::Expr` [INFO] [stdout] --> first_interpreter/src/common/utils.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::expressions::expr::Expr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::write` [INFO] [stdout] --> first_interpreter/src/common/errors.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt::write; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Function` [INFO] [stdout] --> first_interpreter/src/rlox/interpreter.rs:14:26 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::stmt::{Class, Function, RloxFunction, Stmt}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Class` and `Function` [INFO] [stdout] --> first_interpreter/src/rlox/types.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | stmt::{Class, Function}, [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `any::TypeId` [INFO] [stdout] --> first_interpreter/src/rlox/types.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use std::{any::TypeId, fmt}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Literal` and `TokenLiteral` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:12:55 [INFO] [stdout] | [INFO] [stdout] 12 | expressions::{expr::Visitor as ExprVisitor, Expr, Literal}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 13 | rlox::{Interpreter, Token, TokenLiteral}, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `locals` on type `&Interpreter` [INFO] [stdout] --> first_interpreter/src/rlox/interpreter.rs:85:14 [INFO] [stdout] | [INFO] [stdout] 85 | self.locals.insert(expr, depth); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] help: a field with a similar name exists [INFO] [stdout] | [INFO] [stdout] 85 - self.locals.insert(expr, depth); [INFO] [stdout] 85 + self.globals.insert(expr, depth); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: arguments to this method are incorrect [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:145:14 [INFO] [stdout] | [INFO] [stdout] 145 | self.resolve_local(expr, expr.name()); [INFO] [stdout] | ^^^^^^^^^^^^^ ---- ----------- expected `Token`, found `&Token` [INFO] [stdout] | | [INFO] [stdout] | expected `Expr`, found `&Variable` [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | fn resolve_local(&self, expr: Expr, name: Token) { [INFO] [stdout] | ^^^^^^^^^^^^^ ---------- ----------- [INFO] [stdout] help: consider using clone here [INFO] [stdout] | [INFO] [stdout] 145 | self.resolve_local(expr, expr.name().clone()); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.0` as immutable because it is also borrowed as mutable [INFO] [stdout] --> first_interpreter/src/common/data_structures.rs:33:24 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn peek_mut(&mut self) -> Option<&mut T> { [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] 33 | self.0.get_mut(self.0.len() - 1) [INFO] [stdout] | ---------------^^^^^^----------- [INFO] [stdout] | | | [INFO] [stdout] | | immutable borrow occurs here [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] | returning this value requires that `self.0` is borrowed for `'1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> first_interpreter/src/rlox/interpreter.rs:559:36 [INFO] [stdout] | [INFO] [stdout] 559 | fn visit_class_stmt(&mut self, stmt: &crate::stmt::Class) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: use of moved value: `expr` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:95:42 [INFO] [stdout] | [INFO] [stdout] 87 | fn resolve_local(&self, expr: Expr, name: Token) { [INFO] [stdout] | ---- move occurs because `expr` has type `Expr`, which does not implement the `Copy` trait [INFO] [stdout] 88 | for i in (0..self.scopes.len()).rev() { [INFO] [stdout] | ------------------------------------- inside of this loop [INFO] [stdout] ... [INFO] [stdout] 95 | self.interpreter.resolve(expr, self.scopes.len() - 1 - i); [INFO] [stdout] | ^^^^ value moved here, in previous iteration of loop [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in method `resolve` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> first_interpreter/src/rlox/interpreter.rs:84:33 [INFO] [stdout] | [INFO] [stdout] 84 | pub fn resolve(&self, expr: Expr, depth: usize) { [INFO] [stdout] | ------- ^^^^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this method [INFO] [stdout] help: consider moving the expression out of the loop so it is only moved once [INFO] [stdout] | [INFO] [stdout] 88 ~ let mut value = self.interpreter.resolve(expr, self.scopes.len() - 1 - i); [INFO] [stdout] 89 ~ for i in (0..self.scopes.len()).rev() { [INFO] [stdout] 90 | if self [INFO] [stdout] ... [INFO] [stdout] 95 | { [INFO] [stdout] 96 ~ value; [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 95 | self.interpreter.resolve(expr.clone(), self.scopes.len() - 1 - i); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:102:37 [INFO] [stdout] | [INFO] [stdout] 102 | fn visit_assign_expr(&mut self, expr: &crate::expressions::Assign) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:106:37 [INFO] [stdout] | [INFO] [stdout] 106 | fn visit_binary_expr(&mut self, expr: &crate::expressions::Binary) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:110:35 [INFO] [stdout] | [INFO] [stdout] 110 | fn visit_call_expr(&mut self, expr: &crate::expressions::Call) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:114:39 [INFO] [stdout] | [INFO] [stdout] 114 | fn visit_grouping_expr(&mut self, expr: &crate::expressions::Grouping) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:118:38 [INFO] [stdout] | [INFO] [stdout] 118 | fn visit_literal_expr(&mut self, expr: &crate::expressions::Literal) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:122:38 [INFO] [stdout] | [INFO] [stdout] 122 | fn visit_logical_expr(&mut self, expr: &crate::expressions::Logical) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:126:36 [INFO] [stdout] | [INFO] [stdout] 126 | fn visit_unary_expr(&mut self, expr: &crate::expressions::Unary) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:158:36 [INFO] [stdout] | [INFO] [stdout] 158 | fn visit_class_stmt(&mut self, stmt: &crate::stmt::Class) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:162:41 [INFO] [stdout] | [INFO] [stdout] 162 | fn visit_expression_stmt(&mut self, stmt: &crate::stmt::Expression) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:166:39 [INFO] [stdout] | [INFO] [stdout] 166 | fn visit_function_stmt(&mut self, stmt: &crate::stmt::Function) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:170:33 [INFO] [stdout] | [INFO] [stdout] 170 | fn visit_if_stmt(&mut self, stmt: &crate::stmt::If) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:174:36 [INFO] [stdout] | [INFO] [stdout] 174 | fn visit_print_stmt(&mut self, stmt: &crate::stmt::Print) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:178:37 [INFO] [stdout] | [INFO] [stdout] 178 | fn visit_return_stmt(&mut self, stmt: &crate::stmt::Return) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stmt` [INFO] [stdout] --> first_interpreter/src/rlox/resolver.rs:191:36 [INFO] [stdout] | [INFO] [stdout] 191 | fn visit_while_stmt(&mut self, stmt: &crate::stmt::While) -> Result<(), Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interpreter` [INFO] [stdout] --> first_interpreter/src/stmt/class.rs:46:20 [INFO] [stdout] | [INFO] [stdout] 46 | fn call(&self, interpreter: &mut Interpreter, arguments: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interpreter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arguments` [INFO] [stdout] --> first_interpreter/src/stmt/class.rs:46:51 [INFO] [stdout] | [INFO] [stdout] 46 | fn call(&self, interpreter: &mut Interpreter, arguments: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expr` [INFO] [stdout] --> first_interpreter/src/visitors/ast_printer.rs:75:35 [INFO] [stdout] | [INFO] [stdout] 75 | fn visit_call_expr(&mut self, expr: &crate::expressions::Call) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0308, E0382, E0502, E0609. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0308`. [INFO] [stdout] [INFO] [stderr] error: could not compile `first_interpreter` (lib) due to 4 previous errors; 24 warnings emitted [INFO] running `Command { std: "docker" "inspect" "ef0e6f46a03790cd307da574f4bd81de46788b93aea8747331855e702437ab17", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ef0e6f46a03790cd307da574f4bd81de46788b93aea8747331855e702437ab17", kill_on_drop: false }` [INFO] [stdout] ef0e6f46a03790cd307da574f4bd81de46788b93aea8747331855e702437ab17