[INFO] cloning repository https://github.com/Carlosjocaballero/capstone-compiler
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Carlosjocaballero/capstone-compiler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCarlosjocaballero%2Fcapstone-compiler", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCarlosjocaballero%2Fcapstone-compiler'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9814a883884649f5d0c2289fd0409b8fde2f5c62
[INFO] building Carlosjocaballero/capstone-compiler against master#ad211ced81509462cdfe4c29ed10f97279a0acae for pr-135216
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCarlosjocaballero%2Fcapstone-compiler" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Carlosjocaballero/capstone-compiler on toolchain ad211ced81509462cdfe4c29ed10f97279a0acae
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Carlosjocaballero/capstone-compiler
[INFO] finished tweaking git repo https://github.com/Carlosjocaballero/capstone-compiler
[INFO] tweaked toml for git repo https://github.com/Carlosjocaballero/capstone-compiler written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Carlosjocaballero/capstone-compiler 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" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/2teez/arraylist`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2680109971f0f04e351324e99b27f9eb093691e3e4d372c47af0942dae28d43b
[INFO] running `Command { std: "docker" "start" "-a" "2680109971f0f04e351324e99b27f9eb093691e3e4d372c47af0942dae28d43b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2680109971f0f04e351324e99b27f9eb093691e3e4d372c47af0942dae28d43b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2680109971f0f04e351324e99b27f9eb093691e3e4d372c47af0942dae28d43b", kill_on_drop: false }`
[INFO] [stdout] 2680109971f0f04e351324e99b27f9eb093691e3e4d372c47af0942dae28d43b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8916a86e84962d7af4ae4a9890828c2ad456997bc22b91f4c6d437e8ae0c6920
[INFO] running `Command { std: "docker" "start" "-a" "8916a86e84962d7af4ae4a9890828c2ad456997bc22b91f4c6d437e8ae0c6920", kill_on_drop: false }`
[INFO] [stderr]    Compiling arraylist v0.1.5 (https://github.com/2teez/arraylist#219016cd)
[INFO] [stderr]    Compiling lox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Any` and `TypeId`
[INFO] [stdout]   --> src/interpreter.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::any::{Any, TypeId}; use std::env;
[INFO] [stdout]    |                ^^^  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]   --> src/interpreter.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::any::{Any, TypeId}; use std::env;
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]   --> src/interpreter.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::fmt::Debug;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::option::Option`
[INFO] [stdout]   --> src/interpreter.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::option::Option;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scanner::Scanner`
[INFO] [stdout]   --> src/interpreter.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::scanner::Scanner;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env::*` and `expr`
[INFO] [stdout]   --> src/interpreter.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::{env::*, expr};
[INFO] [stdout]    |             ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LoxError`
[INFO] [stdout]   --> src/interpreter.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::{token::*, LoxError};
[INFO] [stdout]    |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scanner::Scanner`
[INFO] [stdout]  --> src/expr.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::scanner::Scanner;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Any` and `TypeId`
[INFO] [stdout]  --> src/expr.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::any::{Any, TypeId};
[INFO] [stdout]   |                ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::*`
[INFO] [stdout]  --> src/resolver.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expr::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/environment.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error` and `iter::Scan`
[INFO] [stdout]  --> src/LoxError.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{error::Error, iter::Scan};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scanner::Scanner`
[INFO] [stdout]  --> src/LoxError.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{token:: *, scanner::Scanner};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let mut previous = self.environment.clone();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/interpreter.rs:385:36
[INFO] [stdout]     |
[INFO] [stdout] 385 |     fn visit_clone_expr(&mut self, expr: &CloneExpr) -> Result<Literal, ScannerError> {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/expr.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |             _ => Err(ScannerError{is_error : true})
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/expr.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |             Expr::Binary(v) => v.accept(expr_visitor), 
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 23 |             Expr::Call(v) => v.accept(expr_visitor),
[INFO] [stdout]    |             ------------- matches some of the same values
[INFO] [stdout] 24 |             Expr::Grouping(v) => v.accept(expr_visitor), 
[INFO] [stdout]    |             ----------------- matches some of the same values
[INFO] [stdout] 25 |             Expr::Literal(v) => v.accept(expr_visitor), 
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 31 |             _ => Err(ScannerError{is_error : true})
[INFO] [stdout]    |             ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/resolver.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut x: HashMap<String, bool> = HashMap :: new();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interpreter`
[INFO] [stdout]   --> src/LoxCallable.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn call(&self, interpreter: &mut Interpreter, arguments: Vec<Literal>) -> Literal {
[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]   --> src/LoxCallable.rs:12:51
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn call(&self, interpreter: &mut Interpreter, arguments: Vec<Literal>) -> Literal {
[INFO] [stdout]    |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `globals` is never read
[INFO] [stdout]   --> src/interpreter.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct Interpreter{
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 52 |     pub globals: Box<Environment>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `char_at` is never used
[INFO] [stdout]    --> src/interpreter.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | trait StringUtils{
[INFO] [stdout]     |       ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 434 |     fn char_at(&mut self, index_pos: usize) -> char;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Clone` is never constructed
[INFO] [stdout]   --> src/expr.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum Expr {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     Clone(CloneExpr),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keyword` is never read
[INFO] [stdout]   --> src/stmt.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ReturnStmt {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 50 |     pub keyword: Token,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReturnStmt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Resolver` is never constructed
[INFO] [stdout]  --> src/resolver.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Resolver{
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `Resolver`, `visitBlockStmt`, `beginScope`, and `endScope` are never used
[INFO] [stdout]   --> src/resolver.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Resolver{
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 13 |     fn Resolver(&mut self, interpreter: Interpreter){
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn visitBlockStmt(&mut self) -> Literal{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn beginScope(&mut self){
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn endScope(&mut self){
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `toString` is never used
[INFO] [stdout]  --> src/LoxCallable.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait LoxCallable {
[INFO] [stdout]   |           ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 8 |     fn toString(&self) -> String;
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `LoxCallable` should have a snake case name
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | mod LoxCallable;
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `lox_callable`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `LoxError` should have a snake case name
[INFO] [stdout]   --> src/main.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub mod LoxError;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `lox_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `LoxFunction` should have a snake case name
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | mod LoxFunction;
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `lox_function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/interpreter.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         stmt.accept(self);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let _ = stmt.accept(self);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/interpreter.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 172 |         self.evaluate(&stmt.expression);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let _ = self.evaluate(&stmt.expression);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tokenTypes` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:273:25
[INFO] [stdout]     |
[INFO] [stdout] 273 |     fn matching(&mut self, tokenTypes: &Vec<TokenType>) -> bool { 
[INFO] [stdout]     |                            ^^^^^^^^^^ help: convert the identifier to snake case: `token_types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tokenType` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:274:7
[INFO] [stdout]     |
[INFO] [stdout] 274 |         for tokenType in tokenTypes {
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `token_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `isAtEnd` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 304 |     fn isAtEnd(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^^^^ help: convert the identifier to snake case: `is_at_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `unaryExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:364:8
[INFO] [stdout]     |
[INFO] [stdout] 364 |             let unaryExpr = Box::new(Expr::Unary(UnaryExpr {
[INFO] [stdout]     |                 ^^^^^^^^^ help: convert the identifier to snake case: `unary_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finishCall` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:374:5
[INFO] [stdout]     |
[INFO] [stdout] 374 |     fn finishCall(&mut self, callee: Box<Expr>) -> Box<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to snake case: `finish_call`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:410:8
[INFO] [stdout]     |
[INFO] [stdout] 410 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:415:8
[INFO] [stdout]     |
[INFO] [stdout] 415 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:420:8
[INFO] [stdout]     |
[INFO] [stdout] 420 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:425:8
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `varExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:431:8
[INFO] [stdout]     |
[INFO] [stdout] 431 |             let varExpr = Box::new(Expr::Variable(VariableExpr { name: self.previous() }));
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `var_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `groupingExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:437:8
[INFO] [stdout]     |
[INFO] [stdout] 437 |             let groupingExpr = Box::new(Expr::Grouping(GroupingExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `grouping_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:442:8
[INFO] [stdout]     |
[INFO] [stdout] 442 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `Resolver` should have a snake case name
[INFO] [stdout]   --> src/resolver.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn Resolver(&mut self, interpreter: Interpreter){
[INFO] [stdout]    |        ^^^^^^^^ help: convert the identifier to snake case: `resolver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `visitBlockStmt` should have a snake case name
[INFO] [stdout]   --> src/resolver.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn visitBlockStmt(&mut self) -> Literal{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `visit_block_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `beginScope` should have a snake case name
[INFO] [stdout]   --> src/resolver.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn beginScope(&mut self){
[INFO] [stdout]    |        ^^^^^^^^^^ help: convert the identifier to snake case: `begin_scope`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `endScope` should have a snake case name
[INFO] [stdout]   --> src/resolver.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn endScope(&mut self){
[INFO] [stdout]    |        ^^^^^^^^ help: convert the identifier to snake case: `end_scope`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `toString` should have a snake case name
[INFO] [stdout]  --> src/LoxCallable.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn toString(&self) -> String;
[INFO] [stdout]   |        ^^^^^^^^ help: convert the identifier to snake case: `to_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.08s
[INFO] running `Command { std: "docker" "inspect" "8916a86e84962d7af4ae4a9890828c2ad456997bc22b91f4c6d437e8ae0c6920", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8916a86e84962d7af4ae4a9890828c2ad456997bc22b91f4c6d437e8ae0c6920", kill_on_drop: false }`
[INFO] [stdout] 8916a86e84962d7af4ae4a9890828c2ad456997bc22b91f4c6d437e8ae0c6920
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cf057d1d415f11d615c199ca19c6c71771b5b91d73e63392b9dbbae092d758a9
[INFO] running `Command { std: "docker" "start" "-a" "cf057d1d415f11d615c199ca19c6c71771b5b91d73e63392b9dbbae092d758a9", kill_on_drop: false }`
[INFO] [stderr]    Compiling lox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Any` and `TypeId`
[INFO] [stdout]   --> src/interpreter.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::any::{Any, TypeId}; use std::env;
[INFO] [stdout]    |                ^^^  ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]   --> src/interpreter.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::any::{Any, TypeId}; use std::env;
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]   --> src/interpreter.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::fmt::Debug;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::option::Option`
[INFO] [stdout]   --> src/interpreter.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::option::Option;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scanner::Scanner`
[INFO] [stdout]   --> src/interpreter.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::scanner::Scanner;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env::*` and `expr`
[INFO] [stdout]   --> src/interpreter.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::{env::*, expr};
[INFO] [stdout]    |             ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LoxError`
[INFO] [stdout]   --> src/interpreter.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::{token::*, LoxError};
[INFO] [stdout]    |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scanner::Scanner`
[INFO] [stdout]  --> src/expr.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::scanner::Scanner;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Any` and `TypeId`
[INFO] [stdout]  --> src/expr.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::any::{Any, TypeId};
[INFO] [stdout]   |                ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::*`
[INFO] [stdout]  --> src/resolver.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expr::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/environment.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error` and `iter::Scan`
[INFO] [stdout]  --> src/LoxError.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{error::Error, iter::Scan};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scanner::Scanner`
[INFO] [stdout]  --> src/LoxError.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{token:: *, scanner::Scanner};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/interpreter.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let mut previous = self.environment.clone();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/interpreter.rs:385:36
[INFO] [stdout]     |
[INFO] [stdout] 385 |     fn visit_clone_expr(&mut self, expr: &CloneExpr) -> Result<Literal, ScannerError> {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/expr.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |             _ => Err(ScannerError{is_error : true})
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/expr.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |             Expr::Binary(v) => v.accept(expr_visitor), 
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 23 |             Expr::Call(v) => v.accept(expr_visitor),
[INFO] [stdout]    |             ------------- matches some of the same values
[INFO] [stdout] 24 |             Expr::Grouping(v) => v.accept(expr_visitor), 
[INFO] [stdout]    |             ----------------- matches some of the same values
[INFO] [stdout] 25 |             Expr::Literal(v) => v.accept(expr_visitor), 
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 31 |             _ => Err(ScannerError{is_error : true})
[INFO] [stdout]    |             ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/resolver.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut x: HashMap<String, bool> = HashMap :: new();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interpreter`
[INFO] [stdout]   --> src/LoxCallable.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn call(&self, interpreter: &mut Interpreter, arguments: Vec<Literal>) -> Literal {
[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]   --> src/LoxCallable.rs:12:51
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn call(&self, interpreter: &mut Interpreter, arguments: Vec<Literal>) -> Literal {
[INFO] [stdout]    |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `globals` is never read
[INFO] [stdout]   --> src/interpreter.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct Interpreter{
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 52 |     pub globals: Box<Environment>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `char_at` is never used
[INFO] [stdout]    --> src/interpreter.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | trait StringUtils{
[INFO] [stdout]     |       ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 434 |     fn char_at(&mut self, index_pos: usize) -> char;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Clone` is never constructed
[INFO] [stdout]   --> src/expr.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum Expr {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     Clone(CloneExpr),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keyword` is never read
[INFO] [stdout]   --> src/stmt.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ReturnStmt {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 50 |     pub keyword: Token,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReturnStmt` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Resolver` is never constructed
[INFO] [stdout]  --> src/resolver.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Resolver{
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `Resolver`, `visitBlockStmt`, `beginScope`, and `endScope` are never used
[INFO] [stdout]   --> src/resolver.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Resolver{
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 13 |     fn Resolver(&mut self, interpreter: Interpreter){
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn visitBlockStmt(&mut self) -> Literal{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn beginScope(&mut self){
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn endScope(&mut self){
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `toString` is never used
[INFO] [stdout]  --> src/LoxCallable.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait LoxCallable {
[INFO] [stdout]   |           ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 8 |     fn toString(&self) -> String;
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `LoxCallable` should have a snake case name
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | mod LoxCallable;
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `lox_callable`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `LoxError` should have a snake case name
[INFO] [stdout]   --> src/main.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub mod LoxError;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `lox_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `LoxFunction` should have a snake case name
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | mod LoxFunction;
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `lox_function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/interpreter.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         stmt.accept(self);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let _ = stmt.accept(self);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/interpreter.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 172 |         self.evaluate(&stmt.expression);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let _ = self.evaluate(&stmt.expression);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tokenTypes` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:273:25
[INFO] [stdout]     |
[INFO] [stdout] 273 |     fn matching(&mut self, tokenTypes: &Vec<TokenType>) -> bool { 
[INFO] [stdout]     |                            ^^^^^^^^^^ help: convert the identifier to snake case: `token_types`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tokenType` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:274:7
[INFO] [stdout]     |
[INFO] [stdout] 274 |         for tokenType in tokenTypes {
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `token_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `isAtEnd` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 304 |     fn isAtEnd(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^^^^ help: convert the identifier to snake case: `is_at_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `unaryExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:364:8
[INFO] [stdout]     |
[INFO] [stdout] 364 |             let unaryExpr = Box::new(Expr::Unary(UnaryExpr {
[INFO] [stdout]     |                 ^^^^^^^^^ help: convert the identifier to snake case: `unary_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finishCall` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:374:5
[INFO] [stdout]     |
[INFO] [stdout] 374 |     fn finishCall(&mut self, callee: Box<Expr>) -> Box<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to snake case: `finish_call`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:410:8
[INFO] [stdout]     |
[INFO] [stdout] 410 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:415:8
[INFO] [stdout]     |
[INFO] [stdout] 415 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:420:8
[INFO] [stdout]     |
[INFO] [stdout] 420 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:425:8
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `varExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:431:8
[INFO] [stdout]     |
[INFO] [stdout] 431 |             let varExpr = Box::new(Expr::Variable(VariableExpr { name: self.previous() }));
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `var_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `groupingExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:437:8
[INFO] [stdout]     |
[INFO] [stdout] 437 |             let groupingExpr = Box::new(Expr::Grouping(GroupingExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `grouping_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literalExpr` should have a snake case name
[INFO] [stdout]    --> src/parser.rs:442:8
[INFO] [stdout]     |
[INFO] [stdout] 442 |             let literalExpr = Box::new(Expr::Literal(LiteralExpr {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `literal_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `Resolver` should have a snake case name
[INFO] [stdout]   --> src/resolver.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn Resolver(&mut self, interpreter: Interpreter){
[INFO] [stdout]    |        ^^^^^^^^ help: convert the identifier to snake case: `resolver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `visitBlockStmt` should have a snake case name
[INFO] [stdout]   --> src/resolver.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn visitBlockStmt(&mut self) -> Literal{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `visit_block_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `beginScope` should have a snake case name
[INFO] [stdout]   --> src/resolver.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn beginScope(&mut self){
[INFO] [stdout]    |        ^^^^^^^^^^ help: convert the identifier to snake case: `begin_scope`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `endScope` should have a snake case name
[INFO] [stdout]   --> src/resolver.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn endScope(&mut self){
[INFO] [stdout]    |        ^^^^^^^^ help: convert the identifier to snake case: `end_scope`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `toString` should have a snake case name
[INFO] [stdout]  --> src/LoxCallable.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn toString(&self) -> String;
[INFO] [stdout]   |        ^^^^^^^^ help: convert the identifier to snake case: `to_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.41s
[INFO] running `Command { std: "docker" "inspect" "cf057d1d415f11d615c199ca19c6c71771b5b91d73e63392b9dbbae092d758a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf057d1d415f11d615c199ca19c6c71771b5b91d73e63392b9dbbae092d758a9", kill_on_drop: false }`
[INFO] [stdout] cf057d1d415f11d615c199ca19c6c71771b5b91d73e63392b9dbbae092d758a9
