[INFO] cloning repository https://github.com/rock117/r-lox
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rock117/r-lox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Fr-lox", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Fr-lox'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e91781b89a8bbbb098bcb3c1d9cc37fd8490a6a7
[INFO] testing rock117/r-lox against try#bd7d74411512a3dd3b35d2f699c51dd2557c7e7e+cargoflags=-Zbuild-dir-new-layout for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Fr-lox" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rock117/r-lox
[INFO] finished tweaking git repo https://github.com/rock117/r-lox
[INFO] tweaked toml for git repo https://github.com/rock117/r-lox written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rock117/r-lox on toolchain bd7d74411512a3dd3b35d2f699c51dd2557c7e7e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rock117/r-lox 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" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded map-macro v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9b0b324f09b597b21e7a6b618e0d8702658951de8425e465179f3b853e5eca43
[INFO] running `Command { std: "docker" "start" "-a" "9b0b324f09b597b21e7a6b618e0d8702658951de8425e465179f3b853e5eca43", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9b0b324f09b597b21e7a6b618e0d8702658951de8425e465179f3b853e5eca43", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9b0b324f09b597b21e7a6b618e0d8702658951de8425e465179f3b853e5eca43", kill_on_drop: false }`
[INFO] [stdout] 9b0b324f09b597b21e7a6b618e0d8702658951de8425e465179f3b853e5eca43
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "build" "--frozen" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 81ce610b24657b1f296c62ed070fb7980c76cde88c2e60d0149b38a4d2588cc7
[INFO] running `Command { std: "docker" "start" "-a" "81ce610b24657b1f296c62ed070fb7980c76cde88c2e60d0149b38a4d2588cc7", kill_on_drop: false }`
[INFO] [stderr]    Compiling map-macro v0.3.0
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling r-lox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[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::io::Read`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::environment::Environment`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::environment::Environment;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::object::Object`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::object::Object;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::token::token_type::TokenType`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::token::token_type::TokenType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::token::Token`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::token::Token;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::environment::Environment`
[INFO] [stdout]  --> src/class.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::environment::Environment;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::variable::Variable`
[INFO] [stdout]  --> src/class.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expr::variable::Variable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/environment.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/environment.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 |         if (self.values.contains_key(&name.lexeme)) {
[INFO] [stdout]    |            ^                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 53 -         if (self.values.contains_key(&name.lexeme)) {
[INFO] [stdout] 53 +         if self.values.contains_key(&name.lexeme)  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/expr/mod.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{Debug, Display};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::ParseError`
[INFO] [stdout]  --> src/expr/ast_printer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::ParseError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::binary::Binary`
[INFO] [stdout]  --> src/expr/ast_printer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::expr::binary::Binary;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::grouping::Grouping`
[INFO] [stdout]  --> src/expr/ast_printer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expr::grouping::Grouping;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::literal::Literal`
[INFO] [stdout]  --> src/expr/ast_printer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::expr::literal::Literal;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::unary::Unary`
[INFO] [stdout]  --> src/expr/ast_printer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::expr::unary::Unary;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expr` and `Visitor`
[INFO] [stdout]  --> src/expr/ast_printer.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::expr::{Expr, Visitor};
[INFO] [stdout]   |                   ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::object::Object`
[INFO] [stdout]  --> src/expr/ast_printer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::object::Object;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/expr/ast_printer.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Visitor`
[INFO] [stdout]  --> src/expr/grouping.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::expr::{Expr, Visitor};
[INFO] [stdout]   |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::environment::Environment`
[INFO] [stdout]  --> src/function/native_function.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::environment::Environment;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/function/native_function.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/function/mod.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::function::LoxCallable`
[INFO] [stdout]  --> src/instance.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::function::LoxCallable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/interpreter.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::discriminant`
[INFO] [stdout]  --> src/interpreter.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::mem::discriminant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/interpreter.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::error::{LoxError, ParseError, Return};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::instance::LoxInstance`
[INFO] [stdout]   --> src/interpreter.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::instance::LoxInstance;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/interpreter.rs:318:12
[INFO] [stdout]     |
[INFO] [stdout] 318 |         if (arguments.len() != function.arity()) {
[INFO] [stdout]     |            ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 318 -         if (arguments.len() != function.arity()) {
[INFO] [stdout] 318 +         if arguments.len() != function.arity()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `once_cell::sync::Lazy`
[INFO] [stdout]  --> src/lox.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use once_cell::sync::Lazy;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lox.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/lox.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/parser.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::set::Set`
[INFO] [stdout]  --> src/parser.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::expr::set::Set;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::Expr::Logical`
[INFO] [stdout]  --> src/parser.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expr::Expr::Logical;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/parser.rs:182:20
[INFO] [stdout]     |
[INFO] [stdout] 182 |                 if (parameters.len() >= 255) {
[INFO] [stdout]     |                    ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 182 -                 if (parameters.len() >= 255) {
[INFO] [stdout] 182 +                 if parameters.len() >= 255  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/parser.rs:353:23
[INFO] [stdout]     |
[INFO] [stdout] 353 |             } else if (self.match_(&[DOT])) {
[INFO] [stdout]     |                       ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 353 -             } else if (self.match_(&[DOT])) {
[INFO] [stdout] 353 +             } else if self.match_(&[DOT])  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `function`
[INFO] [stdout]   --> src/resolver.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::{expr, function, stmt};
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Map`
[INFO] [stdout]   --> src/resolver.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use std::iter::Map;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/resolver.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 |         if (scope.contains_key(&name.lexeme)) {
[INFO] [stdout]    |            ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 80 -         if (scope.contains_key(&name.lexeme)) {
[INFO] [stdout] 80 +         if scope.contains_key(&name.lexeme)  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/resolver.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 |         if (self.current_function == NONE) {
[INFO] [stdout]     |            ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 171 -         if (self.current_function == NONE) {
[INFO] [stdout] 171 +         if self.current_function == NONE  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/scanner.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 |         /// The closing ".
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 193 |         self.advance();
[INFO] [stdout]     |         -------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]   --> src/stmt/mod.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LEFT_PAREN` should have an upper camel case name
[INFO] [stdout]  --> src/token/token_type.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     LEFT_PAREN,
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftParen`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RIGHT_PAREN` should have an upper camel case name
[INFO] [stdout]  --> src/token/token_type.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     RIGHT_PAREN,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightParen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LEFT_BRACE` should have an upper camel case name
[INFO] [stdout]  --> src/token/token_type.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     LEFT_BRACE,
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftBrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RIGHT_BRACE` should have an upper camel case name
[INFO] [stdout]  --> src/token/token_type.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     RIGHT_BRACE,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightBrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BANG_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/token/token_type.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     BANG_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `BangEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `EQUAL_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/token/token_type.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     EQUAL_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EqualEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `GREATER_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/token/token_type.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     GREATER_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GreaterEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LESS_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/token/token_type.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     LESS_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LessEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/token/mod.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::{Display, Formatter, Write};
[INFO] [stdout]   |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/environment.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         for i in 0..distance {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interpreter`
[INFO] [stdout]   --> src/function/native_function.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         interpreter: &mut Interpreter,
[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/function/native_function.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         arguments: Vec<Option<Object>>,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/function/mod.rs:54:18
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interpreter.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut globals = Rc::new(RefCell::new(Environment::new()));
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/interpreter.rs:174:52
[INFO] [stdout]     |
[INFO] [stdout] 174 |             (TokenType::SLASH, Some(Object::Number(left)), Some(Object::Number(0f64))) => Err(
[INFO] [stdout]     |                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/lox.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 Ok(n) => {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/lox.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 Err(e) => return,
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lox.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn run(mut interpreter: Interpreter, source: String) {
[INFO] [stdout]    |            ----^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lox.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let mut scanner = Scanner::new(source);
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]   --> src/lox.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |             for stmt in &stmts {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/resolver.rs:223:34
[INFO] [stdout]     |
[INFO] [stdout] 223 |     fn visit_literal_expr(&self, expr: Literal) -> Result<Option<Object>, LoxError> {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/resolver.rs:290:35
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn visit_this_expr(&mut self, mut expr: This) -> Result<Option<Object>, LoxError> {
[INFO] [stdout]     |                                   ----^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Clock` is more private than the item `NativeFunction::Clock::0`
[INFO] [stdout]   --> src/function/native_function.rs:9:11
[INFO] [stdout]    |
[INFO] [stdout]  9 |     Clock(Clock),
[INFO] [stdout]    |           ^^^^^ field `NativeFunction::Clock::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Clock` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/function/native_function.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Clock;
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CLASS` is never constructed
[INFO] [stdout]   --> src/class.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) enum ClassType {
[INFO] [stdout]    |                 --------- variant in this enum
[INFO] [stdout] 19 |     NONE,
[INFO] [stdout] 20 |     CLASS,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClassType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/class.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl LoxClass {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ParseError {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(token: Token, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AstPrinter` is never constructed
[INFO] [stdout]   --> src/expr/ast_printer.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct AstPrinter;
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LoxClass` is never constructed
[INFO] [stdout]   --> src/function/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum LoxCallable {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     LoxClass(LoxClass),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LoxCallable` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `METHOD` is never constructed
[INFO] [stdout]   --> src/function/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum FunctionType {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     METHOD,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `run_prompt` is never used
[INFO] [stdout]   --> src/lox.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Lox {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub(crate) fn run_prompt() {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Class` is never constructed
[INFO] [stdout]   --> src/object.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub(crate) enum Object {
[INFO] [stdout]    |                 ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     Class(LoxClass),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `boolean` is never used
[INFO] [stdout]   --> src/object.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Object {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn boolean(b: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `arguments` is never used
[INFO] [stdout]    --> src/parser.rs:382:8
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 382 |     fn arguments(&mut self) -> Result<Expr, LoxError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/stmt/mod.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Class(class::Class),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 31 -     Class(class::Class),
[INFO] [stdout] 31 +     Class(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `visit_class_stmt` is never used
[INFO] [stdout]    --> src/stmt/mod.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub(crate) trait Visitor {
[INFO] [stdout]     |                  ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn visit_class_stmt(&mut self, stmt: class::Class) -> Result<(), LoxError>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `superclass`, and `methods` are never read
[INFO] [stdout]  --> src/stmt/class.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Class {
[INFO] [stdout]   |                   ----- fields in this struct
[INFO] [stdout] 7 |     pub name: Token,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 8 |     pub superclass: Option<Variable>,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 9 |     pub methods: Vec<Function>,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Class` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         Lox::run_file(r#"C:\rock\coding\code\my\rust\r-lox\tmp\a.lox"#);
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let _ = Lox::run_file(r#"C:\rock\coding\code\my\rust\r-lox\tmp\a.lox"#);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `returnValue` should have a snake case name
[INFO] [stdout]   --> src/function/lox_function.rs:50:39
[INFO] [stdout]    |
[INFO] [stdout] 50 |             Err(LoxError::ReturnError(returnValue)) => {
[INFO] [stdout]    |                                       ^^^^^^^^^^^ help: convert the identifier to snake case: `return_value`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `elseBranch` should have a snake case name
[INFO] [stdout]    --> src/interpreter.rs:432:21
[INFO] [stdout]     |
[INFO] [stdout] 432 |         if let Some(elseBranch) = stmt.else_branch {
[INFO] [stdout]     |                     ^^^^^^^^^^ help: convert the identifier to snake case: `else_branch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `thenBranch` should have a snake case name
[INFO] [stdout]   --> src/stmt/mod.rs:81:34
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn r#if(condition: Expr, thenBranch: Stmt, elseBranch: Option<Stmt>) -> Self {
[INFO] [stdout]    |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `then_branch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `elseBranch` should have a snake case name
[INFO] [stdout]   --> src/stmt/mod.rs:81:52
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn r#if(condition: Expr, thenBranch: Stmt, elseBranch: Option<Stmt>) -> Self {
[INFO] [stdout]    |                                                    ^^^^^^^^^^ help: convert the identifier to snake case: `else_branch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.91s
[INFO] running `Command { std: "docker" "inspect" "81ce610b24657b1f296c62ed070fb7980c76cde88c2e60d0149b38a4d2588cc7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "81ce610b24657b1f296c62ed070fb7980c76cde88c2e60d0149b38a4d2588cc7", kill_on_drop: false }`
[INFO] [stdout] 81ce610b24657b1f296c62ed070fb7980c76cde88c2e60d0149b38a4d2588cc7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "--no-run" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 2c092feca46583f16569a2a1e3528a6c0f2db05d8e0abaa52192dabecde72fac
[INFO] running `Command { std: "docker" "start" "-a" "2c092feca46583f16569a2a1e3528a6c0f2db05d8e0abaa52192dabecde72fac", kill_on_drop: false }`
[INFO] [stderr]    Compiling r-lox v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[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::io::Read`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::environment::Environment`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::environment::Environment;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::object::Object`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::object::Object;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::token::token_type::TokenType`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::token::token_type::TokenType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::token::Token`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::token::Token;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::environment::Environment`
[INFO] [stdout]  --> src/class.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::environment::Environment;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::variable::Variable`
[INFO] [stdout]  --> src/class.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expr::variable::Variable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/environment.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/environment.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 |         if (self.values.contains_key(&name.lexeme)) {
[INFO] [stdout]    |            ^                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 53 -         if (self.values.contains_key(&name.lexeme)) {
[INFO] [stdout] 53 +         if self.values.contains_key(&name.lexeme)  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/expr/mod.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{Debug, Display};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::ParseError`
[INFO] [stdout]  --> src/expr/ast_printer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::ParseError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::binary::Binary`
[INFO] [stdout]  --> src/expr/ast_printer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::expr::binary::Binary;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::grouping::Grouping`
[INFO] [stdout]  --> src/expr/ast_printer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expr::grouping::Grouping;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::literal::Literal`
[INFO] [stdout]  --> src/expr/ast_printer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::expr::literal::Literal;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::unary::Unary`
[INFO] [stdout]  --> src/expr/ast_printer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::expr::unary::Unary;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expr` and `Visitor`
[INFO] [stdout]  --> src/expr/ast_printer.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::expr::{Expr, Visitor};
[INFO] [stdout]   |                   ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::object::Object`
[INFO] [stdout]  --> src/expr/ast_printer.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::object::Object;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/expr/ast_printer.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Visitor`
[INFO] [stdout]  --> src/expr/grouping.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::expr::{Expr, Visitor};
[INFO] [stdout]   |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::environment::Environment`
[INFO] [stdout]  --> src/function/native_function.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::environment::Environment;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/function/native_function.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/function/mod.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::function::LoxCallable`
[INFO] [stdout]  --> src/instance.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::function::LoxCallable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]  --> src/interpreter.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::Display;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::discriminant`
[INFO] [stdout]  --> src/interpreter.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::mem::discriminant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/interpreter.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::error::{LoxError, ParseError, Return};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::instance::LoxInstance`
[INFO] [stdout]   --> src/interpreter.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::instance::LoxInstance;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/interpreter.rs:318:12
[INFO] [stdout]     |
[INFO] [stdout] 318 |         if (arguments.len() != function.arity()) {
[INFO] [stdout]     |            ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 318 -         if (arguments.len() != function.arity()) {
[INFO] [stdout] 318 +         if arguments.len() != function.arity()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::interpreter::Interpreter`
[INFO] [stdout]    --> src/interpreter.rs:526:9
[INFO] [stdout]     |
[INFO] [stdout] 526 |     use crate::interpreter::Interpreter;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::Parser`
[INFO] [stdout]    --> src/interpreter.rs:527:9
[INFO] [stdout]     |
[INFO] [stdout] 527 |     use crate::parser::Parser;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::scanner::Scanner`
[INFO] [stdout]    --> src/interpreter.rs:528:9
[INFO] [stdout]     |
[INFO] [stdout] 528 |     use crate::scanner::Scanner;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `once_cell::sync::Lazy`
[INFO] [stdout]  --> src/lox.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use once_cell::sync::Lazy;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/lox.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/lox.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]  --> src/parser.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::set::Set`
[INFO] [stdout]  --> src/parser.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::expr::set::Set;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::expr::Expr::Logical`
[INFO] [stdout]  --> src/parser.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::expr::Expr::Logical;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/parser.rs:182:20
[INFO] [stdout]     |
[INFO] [stdout] 182 |                 if (parameters.len() >= 255) {
[INFO] [stdout]     |                    ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 182 -                 if (parameters.len() >= 255) {
[INFO] [stdout] 182 +                 if parameters.len() >= 255  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/parser.rs:353:23
[INFO] [stdout]     |
[INFO] [stdout] 353 |             } else if (self.match_(&[DOT])) {
[INFO] [stdout]     |                       ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 353 -             } else if (self.match_(&[DOT])) {
[INFO] [stdout] 353 +             } else if self.match_(&[DOT])  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `function`
[INFO] [stdout]   --> src/resolver.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::{expr, function, stmt};
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Map`
[INFO] [stdout]   --> src/resolver.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use std::iter::Map;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/resolver.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 |         if (scope.contains_key(&name.lexeme)) {
[INFO] [stdout]    |            ^                                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 80 -         if (scope.contains_key(&name.lexeme)) {
[INFO] [stdout] 80 +         if scope.contains_key(&name.lexeme)  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/resolver.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 |         if (self.current_function == NONE) {
[INFO] [stdout]     |            ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 171 -         if (self.current_function == NONE) {
[INFO] [stdout] 171 +         if self.current_function == NONE  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/scanner.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 |         /// The closing ".
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 193 |         self.advance();
[INFO] [stdout]     |         -------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ParseError`
[INFO] [stdout]   --> src/stmt/mod.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::error::{LoxError, ParseError};
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LEFT_PAREN` should have an upper camel case name
[INFO] [stdout]  --> src/token/token_type.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     LEFT_PAREN,
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftParen`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RIGHT_PAREN` should have an upper camel case name
[INFO] [stdout]  --> src/token/token_type.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     RIGHT_PAREN,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightParen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LEFT_BRACE` should have an upper camel case name
[INFO] [stdout]  --> src/token/token_type.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     LEFT_BRACE,
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftBrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RIGHT_BRACE` should have an upper camel case name
[INFO] [stdout]  --> src/token/token_type.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     RIGHT_BRACE,
[INFO] [stdout]   |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightBrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BANG_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/token/token_type.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     BANG_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `BangEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `EQUAL_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/token/token_type.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     EQUAL_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EqualEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `GREATER_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/token/token_type.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     GREATER_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GreaterEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LESS_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/token/token_type.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     LESS_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LessEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/token/mod.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::{Display, Formatter, Write};
[INFO] [stdout]   |                                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/environment.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         for i in 0..distance {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interpreter`
[INFO] [stdout]   --> src/function/native_function.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         interpreter: &mut Interpreter,
[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/function/native_function.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         arguments: Vec<Option<Object>>,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/function/mod.rs:54:18
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interpreter.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut globals = Rc::new(RefCell::new(Environment::new()));
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/interpreter.rs:174:52
[INFO] [stdout]     |
[INFO] [stdout] 174 |             (TokenType::SLASH, Some(Object::Number(left)), Some(Object::Number(0f64))) => Err(
[INFO] [stdout]     |                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/lox.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 Ok(n) => {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/lox.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 Err(e) => return,
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lox.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn run(mut interpreter: Interpreter, source: String) {
[INFO] [stdout]    |            ----^^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lox.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let mut scanner = Scanner::new(source);
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]   --> src/lox.rs:59:17
[INFO] [stdout]    |
[INFO] [stdout] 59 |             for stmt in &stmts {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/resolver.rs:223:34
[INFO] [stdout]     |
[INFO] [stdout] 223 |     fn visit_literal_expr(&self, expr: Literal) -> Result<Option<Object>, LoxError> {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/resolver.rs:290:35
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn visit_this_expr(&mut self, mut expr: This) -> Result<Option<Object>, LoxError> {
[INFO] [stdout]     |                                   ----^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Clock` is more private than the item `NativeFunction::Clock::0`
[INFO] [stdout]   --> src/function/native_function.rs:9:11
[INFO] [stdout]    |
[INFO] [stdout]  9 |     Clock(Clock),
[INFO] [stdout]    |           ^^^^^ field `NativeFunction::Clock::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Clock` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/function/native_function.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Clock;
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CLASS` is never constructed
[INFO] [stdout]   --> src/class.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) enum ClassType {
[INFO] [stdout]    |                 --------- variant in this enum
[INFO] [stdout] 19 |     NONE,
[INFO] [stdout] 20 |     CLASS,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClassType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/class.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl LoxClass {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ParseError {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(token: Token, message: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AstPrinter` is never constructed
[INFO] [stdout]   --> src/expr/ast_printer.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct AstPrinter;
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LoxClass` is never constructed
[INFO] [stdout]   --> src/function/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum LoxCallable {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     LoxClass(LoxClass),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LoxCallable` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `METHOD` is never constructed
[INFO] [stdout]   --> src/function/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum FunctionType {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     METHOD,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `run_prompt` is never used
[INFO] [stdout]   --> src/lox.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Lox {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub(crate) fn run_prompt() {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Class` is never constructed
[INFO] [stdout]   --> src/object.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub(crate) enum Object {
[INFO] [stdout]    |                 ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     Class(LoxClass),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `boolean` is never used
[INFO] [stdout]   --> src/object.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Object {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn boolean(b: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `arguments` is never used
[INFO] [stdout]    --> src/parser.rs:382:8
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 382 |     fn arguments(&mut self) -> Result<Expr, LoxError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/stmt/mod.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Class(class::Class),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 31 -     Class(class::Class),
[INFO] [stdout] 31 +     Class(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `visit_class_stmt` is never used
[INFO] [stdout]    --> src/stmt/mod.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub(crate) trait Visitor {
[INFO] [stdout]     |                  ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn visit_class_stmt(&mut self, stmt: class::Class) -> Result<(), LoxError>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `superclass`, and `methods` are never read
[INFO] [stdout]  --> src/stmt/class.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Class {
[INFO] [stdout]   |                   ----- fields in this struct
[INFO] [stdout] 7 |     pub name: Token,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 8 |     pub superclass: Option<Variable>,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 9 |     pub methods: Vec<Function>,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Class` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         Lox::run_file(r#"C:\rock\coding\code\my\rust\r-lox\tmp\a.lox"#);
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let _ = Lox::run_file(r#"C:\rock\coding\code\my\rust\r-lox\tmp\a.lox"#);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `returnValue` should have a snake case name
[INFO] [stdout]   --> src/function/lox_function.rs:50:39
[INFO] [stdout]    |
[INFO] [stdout] 50 |             Err(LoxError::ReturnError(returnValue)) => {
[INFO] [stdout]    |                                       ^^^^^^^^^^^ help: convert the identifier to snake case: `return_value`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `elseBranch` should have a snake case name
[INFO] [stdout]    --> src/interpreter.rs:432:21
[INFO] [stdout]     |
[INFO] [stdout] 432 |         if let Some(elseBranch) = stmt.else_branch {
[INFO] [stdout]     |                     ^^^^^^^^^^ help: convert the identifier to snake case: `else_branch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `thenBranch` should have a snake case name
[INFO] [stdout]   --> src/stmt/mod.rs:81:34
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn r#if(condition: Expr, thenBranch: Stmt, elseBranch: Option<Stmt>) -> Self {
[INFO] [stdout]    |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `then_branch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `elseBranch` should have a snake case name
[INFO] [stdout]   --> src/stmt/mod.rs:81:52
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn r#if(condition: Expr, thenBranch: Stmt, elseBranch: Option<Stmt>) -> Self {
[INFO] [stdout]    |                                                    ^^^^^^^^^^ help: convert the identifier to snake case: `else_branch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.88s
[INFO] running `Command { std: "docker" "inspect" "2c092feca46583f16569a2a1e3528a6c0f2db05d8e0abaa52192dabecde72fac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c092feca46583f16569a2a1e3528a6c0f2db05d8e0abaa52192dabecde72fac", kill_on_drop: false }`
[INFO] [stdout] 2c092feca46583f16569a2a1e3528a6c0f2db05d8e0abaa52192dabecde72fac
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] ef0b381733c9dfd166fafb85a7495c38d2d43e91e7177bf2154a5f4067d62717
[INFO] running `Command { std: "docker" "start" "-a" "ef0b381733c9dfd166fafb85a7495c38d2d43e91e7177bf2154a5f4067d62717", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::error::Error`
[INFO] [stderr]  --> src/main.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::error::Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Read`
[INFO] [stderr]  --> src/main.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::io::Read;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::environment::Environment`
[INFO] [stderr]  --> src/main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::environment::Environment;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::object::Object`
[INFO] [stderr]  --> src/main.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::object::Object;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::token::token_type::TokenType`
[INFO] [stderr]  --> src/main.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::token::token_type::TokenType;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::token::Token`
[INFO] [stderr]   --> src/main.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::token::Token;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::environment::Environment`
[INFO] [stderr]  --> src/class.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::environment::Environment;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::expr::variable::Variable`
[INFO] [stderr]  --> src/class.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::expr::variable::Variable;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ParseError`
[INFO] [stderr]  --> src/environment.rs:5:30
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::error::{LoxError, ParseError};
[INFO] [stderr]   |                              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/environment.rs:53:12
[INFO] [stderr]    |
[INFO] [stderr] 53 |         if (self.values.contains_key(&name.lexeme)) {
[INFO] [stderr]    |            ^                                      ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 53 -         if (self.values.contains_key(&name.lexeme)) {
[INFO] [stderr] 53 +         if self.values.contains_key(&name.lexeme)  {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Display`
[INFO] [stderr]  --> src/expr/mod.rs:1:23
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::fmt::{Debug, Display};
[INFO] [stderr]   |                       ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::error::ParseError`
[INFO] [stderr]  --> src/expr/ast_printer.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::error::ParseError;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::expr::binary::Binary`
[INFO] [stderr]  --> src/expr/ast_printer.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::expr::binary::Binary;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::expr::grouping::Grouping`
[INFO] [stderr]  --> src/expr/ast_printer.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::expr::grouping::Grouping;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::expr::literal::Literal`
[INFO] [stderr]  --> src/expr/ast_printer.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::expr::literal::Literal;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::expr::unary::Unary`
[INFO] [stderr]  --> src/expr/ast_printer.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::expr::unary::Unary;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Expr` and `Visitor`
[INFO] [stderr]  --> src/expr/ast_printer.rs:6:19
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::expr::{Expr, Visitor};
[INFO] [stderr]   |                   ^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::object::Object`
[INFO] [stderr]  --> src/expr/ast_printer.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::object::Object;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fmt::Display`
[INFO] [stderr]  --> src/expr/ast_printer.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::fmt::Display;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Visitor`
[INFO] [stderr]  --> src/expr/grouping.rs:1:25
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::expr::{Expr, Visitor};
[INFO] [stderr]   |                         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::environment::Environment`
[INFO] [stderr]  --> src/function/native_function.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::environment::Environment;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ParseError`
[INFO] [stderr]  --> src/function/native_function.rs:2:30
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::error::{LoxError, ParseError};
[INFO] [stderr]   |                              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ParseError`
[INFO] [stderr]  --> src/function/mod.rs:5:30
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::error::{LoxError, ParseError};
[INFO] [stderr]   |                              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::function::LoxCallable`
[INFO] [stderr]  --> src/instance.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::function::LoxCallable;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fmt::Display`
[INFO] [stderr]  --> src/interpreter.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::fmt::Display;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::mem::discriminant`
[INFO] [stderr]  --> src/interpreter.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::mem::discriminant;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ParseError`
[INFO] [stderr]  --> src/interpreter.rs:9:30
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::error::{LoxError, ParseError, Return};
[INFO] [stderr]   |                              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::instance::LoxInstance`
[INFO] [stderr]   --> src/interpreter.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use crate::instance::LoxInstance;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/interpreter.rs:318:12
[INFO] [stderr]     |
[INFO] [stderr] 318 |         if (arguments.len() != function.arity()) {
[INFO] [stderr]     |            ^                                   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 318 -         if (arguments.len() != function.arity()) {
[INFO] [stderr] 318 +         if arguments.len() != function.arity()  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::interpreter::Interpreter`
[INFO] [stderr]    --> src/interpreter.rs:526:9
[INFO] [stderr]     |
[INFO] [stderr] 526 |     use crate::interpreter::Interpreter;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::parser::Parser`
[INFO] [stderr]    --> src/interpreter.rs:527:9
[INFO] [stderr]     |
[INFO] [stderr] 527 |     use crate::parser::Parser;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::scanner::Scanner`
[INFO] [stderr]    --> src/interpreter.rs:528:9
[INFO] [stderr]     |
[INFO] [stderr] 528 |     use crate::scanner::Scanner;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `once_cell::sync::Lazy`
[INFO] [stderr]  --> src/lox.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use once_cell::sync::Lazy;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/lox.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ParseError`
[INFO] [stderr]  --> src/lox.rs:5:30
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::error::{LoxError, ParseError};
[INFO] [stderr]   |                              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ParseError`
[INFO] [stderr]  --> src/parser.rs:1:30
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::error::{LoxError, ParseError};
[INFO] [stderr]   |                              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::expr::set::Set`
[INFO] [stderr]  --> src/parser.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::expr::set::Set;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::expr::Expr::Logical`
[INFO] [stderr]  --> src/parser.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::expr::Expr::Logical;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/parser.rs:182:20
[INFO] [stderr]     |
[INFO] [stderr] 182 |                 if (parameters.len() >= 255) {
[INFO] [stderr]     |                    ^                       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 182 -                 if (parameters.len() >= 255) {
[INFO] [stderr] 182 +                 if parameters.len() >= 255  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/parser.rs:353:23
[INFO] [stderr]     |
[INFO] [stderr] 353 |             } else if (self.match_(&[DOT])) {
[INFO] [stderr]     |                       ^                   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 353 -             } else if (self.match_(&[DOT])) {
[INFO] [stderr] 353 +             } else if self.match_(&[DOT])  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `function`
[INFO] [stderr]   --> src/resolver.rs:31:19
[INFO] [stderr]    |
[INFO] [stderr] 31 | use crate::{expr, function, stmt};
[INFO] [stderr]    |                   ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::iter::Map`
[INFO] [stderr]   --> src/resolver.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 33 | use std::iter::Map;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/resolver.rs:80:12
[INFO] [stderr]    |
[INFO] [stderr] 80 |         if (scope.contains_key(&name.lexeme)) {
[INFO] [stderr]    |            ^                                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 80 -         if (scope.contains_key(&name.lexeme)) {
[INFO] [stderr] 80 +         if scope.contains_key(&name.lexeme)  {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/resolver.rs:171:12
[INFO] [stderr]     |
[INFO] [stderr] 171 |         if (self.current_function == NONE) {
[INFO] [stderr]     |            ^                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 171 -         if (self.current_function == NONE) {
[INFO] [stderr] 171 +         if self.current_function == NONE  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/scanner.rs:192:9
[INFO] [stderr]     |
[INFO] [stderr] 192 |         /// The closing ".
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 193 |         self.advance();
[INFO] [stderr]     |         -------------- rustdoc does not generate documentation for expressions
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ParseError`
[INFO] [stderr]   --> src/stmt/mod.rs:11:30
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::error::{LoxError, ParseError};
[INFO] [stderr]    |                              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `LEFT_PAREN` should have an upper camel case name
[INFO] [stderr]  --> src/token/token_type.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     LEFT_PAREN,
[INFO] [stderr]   |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftParen`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `RIGHT_PAREN` should have an upper camel case name
[INFO] [stderr]  --> src/token/token_type.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 |     RIGHT_PAREN,
[INFO] [stderr]   |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightParen`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `LEFT_BRACE` should have an upper camel case name
[INFO] [stderr]  --> src/token/token_type.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     LEFT_BRACE,
[INFO] [stderr]   |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftBrace`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `RIGHT_BRACE` should have an upper camel case name
[INFO] [stderr]  --> src/token/token_type.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     RIGHT_BRACE,
[INFO] [stderr]   |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightBrace`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `BANG_EQUAL` should have an upper camel case name
[INFO] [stderr]   --> src/token/token_type.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 |     BANG_EQUAL,
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `BangEqual`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `EQUAL_EQUAL` should have an upper camel case name
[INFO] [stderr]   --> src/token/token_type.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     EQUAL_EQUAL,
[INFO] [stderr]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EqualEqual`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `GREATER_EQUAL` should have an upper camel case name
[INFO] [stderr]   --> src/token/token_type.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     GREATER_EQUAL,
[INFO] [stderr]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GreaterEqual`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `LESS_EQUAL` should have an upper camel case name
[INFO] [stderr]   --> src/token/token_type.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     LESS_EQUAL,
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `LessEqual`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Write`
[INFO] [stderr]  --> src/token/mod.rs:3:36
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::fmt::{Display, Formatter, Write};
[INFO] [stderr]   |                                    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/environment.rs:83:13
[INFO] [stderr]    |
[INFO] [stderr] 83 |         for i in 0..distance {
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `interpreter`
[INFO] [stderr]   --> src/function/native_function.rs:45:9
[INFO] [stderr]    |
[INFO] [stderr] 45 |         interpreter: &mut Interpreter,
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interpreter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `arguments`
[INFO] [stderr]   --> src/function/native_function.rs:46:9
[INFO] [stderr]    |
[INFO] [stderr] 46 |         arguments: Vec<Option<Object>>,
[INFO] [stderr]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arguments`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]   --> src/function/mod.rs:54:18
[INFO] [stderr]    |
[INFO] [stderr] 54 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/interpreter.rs:40:13
[INFO] [stderr]    |
[INFO] [stderr] 40 |         let mut globals = Rc::new(RefCell::new(Environment::new()));
[INFO] [stderr]    |             ----^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `left`
[INFO] [stderr]    --> src/interpreter.rs:174:52
[INFO] [stderr]     |
[INFO] [stderr] 174 |             (TokenType::SLASH, Some(Object::Number(left)), Some(Object::Number(0f64))) => Err(
[INFO] [stderr]     |                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]   --> src/lox.rs:37:20
[INFO] [stderr]    |
[INFO] [stderr] 37 |                 Ok(n) => {
[INFO] [stderr]    |                    ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]   --> src/lox.rs:41:21
[INFO] [stderr]    |
[INFO] [stderr] 41 |                 Err(e) => return,
[INFO] [stderr]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lox.rs:46:12
[INFO] [stderr]    |
[INFO] [stderr] 46 |     fn run(mut interpreter: Interpreter, source: String) {
[INFO] [stderr]    |            ----^^^^^^^^^^^
[INFO] [stderr]    |            |
[INFO] [stderr]    |            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lox.rs:47:13
[INFO] [stderr]    |
[INFO] [stderr] 47 |         let mut scanner = Scanner::new(source);
[INFO] [stderr]    |             ----^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stmt`
[INFO] [stderr]   --> src/lox.rs:59:17
[INFO] [stderr]    |
[INFO] [stderr] 59 |             for stmt in &stmts {
[INFO] [stderr]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expr`
[INFO] [stderr]    --> src/resolver.rs:223:34
[INFO] [stderr]     |
[INFO] [stderr] 223 |     fn visit_literal_expr(&self, expr: Literal) -> Result<Option<Object>, LoxError> {
[INFO] [stderr]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/resolver.rs:290:35
[INFO] [stderr]     |
[INFO] [stderr] 290 |     fn visit_this_expr(&mut self, mut expr: This) -> Result<Option<Object>, LoxError> {
[INFO] [stderr]     |                                   ----^^^^
[INFO] [stderr]     |                                   |
[INFO] [stderr]     |                                   help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: type `Clock` is more private than the item `NativeFunction::Clock::0`
[INFO] [stderr]   --> src/function/native_function.rs:9:11
[INFO] [stderr]    |
[INFO] [stderr]  9 |     Clock(Clock),
[INFO] [stderr]    |           ^^^^^ field `NativeFunction::Clock::0` is reachable at visibility `pub(crate)`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `Clock` is only usable at visibility `pub(self)`
[INFO] [stderr]   --> src/function/native_function.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | struct Clock;
[INFO] [stderr]    | ^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CLASS` is never constructed
[INFO] [stderr]   --> src/class.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub(crate) enum ClassType {
[INFO] [stderr]    |                 --------- variant in this enum
[INFO] [stderr] 19 |     NONE,
[INFO] [stderr] 20 |     CLASS,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ClassType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/class.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl LoxClass {
[INFO] [stderr]    | ------------- associated function in this implementation
[INFO] [stderr] 25 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/error.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | impl ParseError {
[INFO] [stderr]    | --------------- associated function in this implementation
[INFO] [stderr] 30 |     pub fn new(token: Token, message: String) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AstPrinter` is never constructed
[INFO] [stderr]   --> src/expr/ast_printer.rs:10:19
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub(crate) struct AstPrinter;
[INFO] [stderr]    |                   ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `LoxClass` is never constructed
[INFO] [stderr]   --> src/function/mod.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub enum LoxCallable {
[INFO] [stderr]    |          ----------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 13 |     LoxClass(LoxClass),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LoxCallable` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `METHOD` is never constructed
[INFO] [stderr]   --> src/function/mod.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum FunctionType {
[INFO] [stderr]    |          ------------ variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 19 |     METHOD,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FunctionType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `run_prompt` is never used
[INFO] [stderr]   --> src/lox.rs:31:19
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl Lox {
[INFO] [stderr]    | -------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub(crate) fn run_prompt() {
[INFO] [stderr]    |                   ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Class` is never constructed
[INFO] [stderr]   --> src/object.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub(crate) enum Object {
[INFO] [stderr]    |                 ------ variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 15 |     Class(LoxClass),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Object` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `boolean` is never used
[INFO] [stderr]   --> src/object.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl Object {
[INFO] [stderr]    | ----------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn boolean(b: bool) -> Self {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `arguments` is never used
[INFO] [stderr]    --> src/parser.rs:382:8
[INFO] [stderr]     |
[INFO] [stderr]  19 | impl Parser {
[INFO] [stderr]     | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 382 |     fn arguments(&mut self) -> Result<Expr, LoxError> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/stmt/mod.rs:31:11
[INFO] [stderr]    |
[INFO] [stderr] 31 |     Class(class::Class),
[INFO] [stderr]    |     ----- ^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 31 -     Class(class::Class),
[INFO] [stderr] 31 +     Class(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: method `visit_class_stmt` is never used
[INFO] [stderr]    --> src/stmt/mod.rs:136:8
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub(crate) trait Visitor {
[INFO] [stderr]     |                  ------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 136 |     fn visit_class_stmt(&mut self, stmt: class::Class) -> Result<(), LoxError>;
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name`, `superclass`, and `methods` are never read
[INFO] [stderr]  --> src/stmt/class.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub(crate) struct Class {
[INFO] [stderr]   |                   ----- fields in this struct
[INFO] [stderr] 7 |     pub name: Token,
[INFO] [stderr]   |         ^^^^
[INFO] [stderr] 8 |     pub superclass: Option<Variable>,
[INFO] [stderr]   |         ^^^^^^^^^^
[INFO] [stderr] 9 |     pub methods: Vec<Function>,
[INFO] [stderr]   |         ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Class` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |         Lox::run_file(r#"C:\rock\coding\code\my\rust\r-lox\tmp\a.lox"#);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 41 |         let _ = Lox::run_file(r#"C:\rock\coding\code\my\rust\r-lox\tmp\a.lox"#);
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `returnValue` should have a snake case name
[INFO] [stderr]   --> src/function/lox_function.rs:50:39
[INFO] [stderr]    |
[INFO] [stderr] 50 |             Err(LoxError::ReturnError(returnValue)) => {
[INFO] [stderr]    |                                       ^^^^^^^^^^^ help: convert the identifier to snake case: `return_value`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `elseBranch` should have a snake case name
[INFO] [stderr]    --> src/interpreter.rs:432:21
[INFO] [stderr]     |
[INFO] [stderr] 432 |         if let Some(elseBranch) = stmt.else_branch {
[INFO] [stderr]     |                     ^^^^^^^^^^ help: convert the identifier to snake case: `else_branch`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `thenBranch` should have a snake case name
[INFO] [stderr]   --> src/stmt/mod.rs:81:34
[INFO] [stderr]    |
[INFO] [stderr] 81 |     pub fn r#if(condition: Expr, thenBranch: Stmt, elseBranch: Option<Stmt>) -> Self {
[INFO] [stderr]    |                                  ^^^^^^^^^^ help: convert the identifier to snake case: `then_branch`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `elseBranch` should have a snake case name
[INFO] [stderr]   --> src/stmt/mod.rs:81:52
[INFO] [stderr]    |
[INFO] [stderr] 81 |     pub fn r#if(condition: Expr, thenBranch: Stmt, elseBranch: Option<Stmt>) -> Self {
[INFO] [stderr]    |                                                    ^^^^^^^^^^ help: convert the identifier to snake case: `else_branch`
[INFO] [stderr] 
[INFO] [stderr] warning: `r-lox` (bin "r-lox" test) generated 87 warnings (run `cargo fix --bin "r-lox" -p r-lox --tests` to apply 58 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/r-lox/2e2147b38ffd7e63/deps/r_lox-2e2147b38ffd7e63)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ef0b381733c9dfd166fafb85a7495c38d2d43e91e7177bf2154a5f4067d62717", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ef0b381733c9dfd166fafb85a7495c38d2d43e91e7177bf2154a5f4067d62717", kill_on_drop: false }`
[INFO] [stdout] ef0b381733c9dfd166fafb85a7495c38d2d43e91e7177bf2154a5f4067d62717
