[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] checking leonardchinonso/rlox against 1.95.0-beta.7 for beta-1.95-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleonardchinonso%2Frlox" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-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-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/leonardchinonso/rlox on toolchain 1.95.0-beta.7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0-beta.7" "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" "+1.95.0-beta.7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[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] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0-beta.7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0c49bdbe4a2990969afc1f3bf929646cc2c7ba7661f59a99ad4a92d2ab455bce
[INFO] running `Command { std: "docker" "start" "-a" "0c49bdbe4a2990969afc1f3bf929646cc2c7ba7661f59a99ad4a92d2ab455bce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0c49bdbe4a2990969afc1f3bf929646cc2c7ba7661f59a99ad4a92d2ab455bce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0c49bdbe4a2990969afc1f3bf929646cc2c7ba7661f59a99ad4a92d2ab455bce", kill_on_drop: false }`
[INFO] [stdout] 0c49bdbe4a2990969afc1f3bf929646cc2c7ba7661f59a99ad4a92d2ab455bce
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0-beta.7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5a8cba234eee0328c36ffbcf755109e7453819c542ec33779e54f13725140718
[INFO] running `Command { std: "docker" "start" "-a" "5a8cba234eee0328c36ffbcf755109e7453819c542ec33779e54f13725140718", kill_on_drop: false }`
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking second_interpreter v0.1.0 (/opt/rustwide/workdir/second_interpreter)
[INFO] [stderr]     Checking 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] 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[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] 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] 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 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<Value>) -> Result<Value, Error> {
[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<Value>) -> Result<Value, Error> {
[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] [stderr] warning: build failed, waiting for other jobs to finish...
[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::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 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<Value>) -> Result<Value, Error> {
[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<Value>) -> Result<Value, Error> {
[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 test) due to 4 previous errors; 24 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "5a8cba234eee0328c36ffbcf755109e7453819c542ec33779e54f13725140718", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a8cba234eee0328c36ffbcf755109e7453819c542ec33779e54f13725140718", kill_on_drop: false }`
[INFO] [stdout] 5a8cba234eee0328c36ffbcf755109e7453819c542ec33779e54f13725140718
