[INFO] cloning repository https://github.com/rock117/rlox-bytecode
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rock117/rlox-bytecode" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Frlox-bytecode", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Frlox-bytecode'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0e3549209073f219c792c0a5a02462d3287c6701
[INFO] checking rock117/rlox-bytecode against try#3857be5045fe74bd0f296f6f4c23db10f8857f73 for pr-156807
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frock117%2Frlox-bytecode" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rock117/rlox-bytecode
[INFO] finished tweaking git repo https://github.com/rock117/rlox-bytecode
[INFO] tweaked toml for git repo https://github.com/rock117/rlox-bytecode written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rock117/rlox-bytecode on toolchain 3857be5045fe74bd0f296f6f4c23db10f8857f73
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rock117/rlox-bytecode 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" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded int-enum v1.1.2
[INFO] [stderr]   Downloaded int-to-c-enum v0.1.0
[INFO] [stderr]   Downloaded int-to-c-enum-derive v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 09e20ea113c64e9a36370d3c62658e41355f0937edf9f2c16596e3dd146914fd
[INFO] running `Command { std: "docker" "start" "-a" "09e20ea113c64e9a36370d3c62658e41355f0937edf9f2c16596e3dd146914fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "09e20ea113c64e9a36370d3c62658e41355f0937edf9f2c16596e3dd146914fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09e20ea113c64e9a36370d3c62658e41355f0937edf9f2c16596e3dd146914fd", kill_on_drop: false }`
[INFO] [stdout] 09e20ea113c64e9a36370d3c62658e41355f0937edf9f2c16596e3dd146914fd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c15119cdfe0997c0b1b175559784e922026bf297dfd2159c099bebd508c057ff
[INFO] running `Command { std: "docker" "start" "-a" "c15119cdfe0997c0b1b175559784e922026bf297dfd2159c099bebd508c057ff", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling int-enum v1.1.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.77
[INFO] [stderr]    Compiling int-to-c-enum-derive v0.1.0
[INFO] [stderr]     Checking int-to-c-enum v0.1.0
[INFO] [stderr]     Checking r-lox-bytecode v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `OP_CONSTANT`, `OP_NEGATE`, and `OP_RETURN`
[INFO] [stdout]  --> src/chunk.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::chunk::OpCode::{OP_CONSTANT, OP_NEGATE, OP_RETURN};
[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: `int_enum::IntEnum`
[INFO] [stdout]  --> src/chunk.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use int_enum::IntEnum;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `int_to_c_enum::TryFromInt`
[INFO] [stdout]  --> src/chunk.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use int_to_c_enum::TryFromInt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_CONSTANT` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     OP_CONSTANT = 0,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpConstant`
[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 `OP_NIL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     OP_NIL,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `OpNil`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_TRUE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     OP_TRUE,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `OpTrue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_FALSE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     OP_FALSE,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `OpFalse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_POP` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     OP_POP,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `OpPop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_GET_LOCAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     OP_GET_LOCAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpGetLocal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_SET_LOCAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     OP_SET_LOCAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpSetLocal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_GET_GLOBAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     OP_GET_GLOBAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpGetGlobal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_DEFINE_GLOBAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     OP_DEFINE_GLOBAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpDefineGlobal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_SET_GLOBAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     OP_SET_GLOBAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpSetGlobal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     OP_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `OpEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_GREATER` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     OP_GREATER,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `OpGreater`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_LESS` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     OP_LESS,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `OpLess`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_ADD` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     OP_ADD,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `OpAdd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_SUBTRACT` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     OP_SUBTRACT,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpSubtract`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_MULTIPLY` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     OP_MULTIPLY,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpMultiply`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_DIVIDE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     OP_DIVIDE,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `OpDivide`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_NOT` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     OP_NOT,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `OpNot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_NEGATE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     OP_NEGATE,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `OpNegate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_PRINT` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     OP_PRINT,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `OpPrint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_JUMP` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     OP_JUMP,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `OpJump`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_JUMP_IF_FALSE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     OP_JUMP_IF_FALSE,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpJumpIfFalse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_LOOP` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     OP_LOOP,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `OpLoop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_RETURN` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     OP_RETURN,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `OpReturn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OpCode`
[INFO] [stdout]  --> src/compiler.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::chunk::{Chunk, OpCode};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_NONE` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     PREC_NONE = 0,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PrecNone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_ASSIGNMENT` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     PREC_ASSIGNMENT = 1, // =
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecAssignment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_OR` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     PREC_OR = 2,         // or
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `PrecOr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_AND` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     PREC_AND = 3,        // and
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `PrecAnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_EQUALITY` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     PREC_EQUALITY = 4,   // == !=
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecEquality`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_COMPARISON` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     PREC_COMPARISON = 5, // < > <= >=
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecComparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_TERM` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     PREC_TERM = 6,       // + -
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PrecTerm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_FACTOR` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     PREC_FACTOR = 7,     // * /
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecFactor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_UNARY` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     PREC_UNARY = 8,      // ! -
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecUnary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_CALL` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     PREC_CALL = 9,       // . ()
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PrecCall`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_PRIMARY` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     PREC_PRIMARY = 10,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecPrimary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |         if (self.parser.current.r#type == r#type) {
[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] 113 -         if (self.parser.current.r#type == r#type) {
[INFO] [stdout] 113 +         if self.parser.current.r#type == r#type  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:167:12
[INFO] [stdout]     |
[INFO] [stdout] 167 |         if (!self.parser.had_error) {
[INFO] [stdout]     |            ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 167 -         if (!self.parser.had_error) {
[INFO] [stdout] 167 +         if !self.parser.had_error  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/compiler.rs:190:31
[INFO] [stdout]     |
[INFO] [stdout] 190 |         self.parse_precedence((rule.unwrap().precedence.add(1)));
[INFO] [stdout]     |                               ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 190 -         self.parse_precedence((rule.unwrap().precedence.add(1)));
[INFO] [stdout] 190 +         self.parse_precedence(rule.unwrap().precedence.add(1) );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:360:12
[INFO] [stdout]     |
[INFO] [stdout] 360 |         if (self.match_(TOKEN_EQUAL)) {
[INFO] [stdout]     |            ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 360 -         if (self.match_(TOKEN_EQUAL)) {
[INFO] [stdout] 360 +         if self.match_(TOKEN_EQUAL)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:390:12
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if (!self.match_(TOKEN_SEMICOLON)) {
[INFO] [stdout]     |            ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 390 -         if (!self.match_(TOKEN_SEMICOLON)) {
[INFO] [stdout] 390 +         if !self.match_(TOKEN_SEMICOLON)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:400:12
[INFO] [stdout]     |
[INFO] [stdout] 400 |         if (!self.match_(TOKEN_RIGHT_PAREN)) {
[INFO] [stdout]     |            ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 400 -         if (!self.match_(TOKEN_RIGHT_PAREN)) {
[INFO] [stdout] 400 +         if !self.match_(TOKEN_RIGHT_PAREN)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:460:16
[INFO] [stdout]     |
[INFO] [stdout] 460 |             if (self.parser.previous.r#type == TOKEN_SEMICOLON) {
[INFO] [stdout]     |                ^                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 460 -             if (self.parser.previous.r#type == TOKEN_SEMICOLON) {
[INFO] [stdout] 460 +             if self.parser.previous.r#type == TOKEN_SEMICOLON  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:696:12
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if (constant > u8::MAX as usize) {
[INFO] [stdout]     |            ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 696 -         if (constant > u8::MAX as usize) {
[INFO] [stdout] 696 +         if constant > u8::MAX as usize  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]  --> src/debug.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::value::{print_value, Value};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `string` should have an upper camel case name
[INFO] [stdout]  --> src/object/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     string(String),
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::read_to_string`
[INFO] [stdout]  --> src/scanner.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::read_to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_LEFT_PAREN` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     TOKEN_LEFT_PAREN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenLeftParen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_RIGHT_PAREN` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     TOKEN_RIGHT_PAREN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenRightParen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_LEFT_BRACE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     TOKEN_LEFT_BRACE,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenLeftBrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_RIGHT_BRACE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     TOKEN_RIGHT_BRACE,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenRightBrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_COMMA` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     TOKEN_COMMA,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenComma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_DOT` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     TOKEN_DOT,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenDot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_MINUS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     TOKEN_MINUS,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenMinus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_PLUS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     TOKEN_PLUS,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenPlus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_SEMICOLON` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     TOKEN_SEMICOLON,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenSemicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_SLASH` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     TOKEN_SLASH,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenSlash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_STAR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     TOKEN_STAR,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenStar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_BANG` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     TOKEN_BANG,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenBang`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_BANG_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     TOKEN_BANG_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenBangEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     TOKEN_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_EQUAL_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     TOKEN_EQUAL_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenEqualEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_GREATER` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     TOKEN_GREATER,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenGreater`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_GREATER_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     TOKEN_GREATER_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenGreaterEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_LESS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     TOKEN_LESS,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenLess`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_LESS_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     TOKEN_LESS_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenLessEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_IDENTIFIER` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     TOKEN_IDENTIFIER,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenIdentifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_STRING` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     TOKEN_STRING,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenString`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_NUMBER` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     TOKEN_NUMBER,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenNumber`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_AND` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     TOKEN_AND,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenAnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_CLASS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     TOKEN_CLASS,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenClass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_ELSE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     TOKEN_ELSE,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenElse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_FALSE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     TOKEN_FALSE,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenFalse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_FOR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     TOKEN_FOR,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenFor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_FUN` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     TOKEN_FUN,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenFun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_IF` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     TOKEN_IF,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `TokenIf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_NIL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     TOKEN_NIL,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenNil`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_OR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     TOKEN_OR,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `TokenOr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_PRINT` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     TOKEN_PRINT,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenPrint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_RETURN` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     TOKEN_RETURN,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenReturn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_SUPER` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     TOKEN_SUPER,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenSuper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_THIS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     TOKEN_THIS,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenThis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_TRUE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     TOKEN_TRUE,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenTrue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_VAR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     TOKEN_VAR,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenVar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_WHILE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     TOKEN_WHILE,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenWhile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_ERROR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     TOKEN_ERROR,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_EOF` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     TOKEN_EOF,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenEof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/scanner.rs:242:15
[INFO] [stdout]     |
[INFO] [stdout] 242 |         while (self.peek() != '"' && !self.is_at_end()) {
[INFO] [stdout]     |               ^                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 242 -         while (self.peek() != '"' && !self.is_at_end()) {
[INFO] [stdout] 242 +         while self.peek() != '"' && !self.is_at_end()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner.rs:243:16
[INFO] [stdout]     |
[INFO] [stdout] 243 |             if (self.peek() == '\n') {
[INFO] [stdout]     |                ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 243 -             if (self.peek() == '\n') {
[INFO] [stdout] 243 +             if self.peek() == '\n'  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 249 |         if (self.is_at_end()) {
[INFO] [stdout]     |            ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 249 -         if (self.is_at_end()) {
[INFO] [stdout] 249 +         if self.is_at_end()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner.rs:306:20
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 if (self.current - self.start > 1) {
[INFO] [stdout]     |                    ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 306 -                 if (self.current - self.start > 1) {
[INFO] [stdout] 306 +                 if self.current - self.start > 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Formatter`
[INFO] [stdout]  --> src/value.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fmt::{Debug, Formatter};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `boolean` should have an upper camel case name
[INFO] [stdout]   --> src/value.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     boolean(bool),
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `Boolean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `number` should have an upper camel case name
[INFO] [stdout]   --> src/value.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     number(f64),
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `Number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `obj` should have an upper camel case name
[INFO] [stdout]   --> src/value.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     obj(Obj),
[INFO] [stdout]    |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `nil` should have an upper camel case name
[INFO] [stdout]   --> src/value.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     nil,
[INFO] [stdout]    |     ^^^ help: convert the identifier to upper camel case: `Nil`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::chunk::OpCode::OP_NIL`
[INFO] [stdout]  --> src/vm.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::chunk::OpCode::OP_NIL;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::debug`
[INFO] [stdout]  --> src/vm.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INTERPRET_OK` should have an upper camel case name
[INFO] [stdout]   --> src/vm.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     INTERPRET_OK,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretOk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INTERPRET_COMPILE_ERROR` should have an upper camel case name
[INFO] [stdout]   --> src/vm.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     INTERPRET_COMPILE_ERROR,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretCompileError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INTERPRET_RUNTIME_ERROR` should have an upper camel case name
[INFO] [stdout]   --> src/vm.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     INTERPRET_RUNTIME_ERROR,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretRuntimeError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OP_ADD`, `OP_CONSTANT`, `OP_DIVIDE`, `OP_NEGATE`, and `OP_RETURN`
[INFO] [stdout]  --> src/main.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::chunk::OpCode::{OP_ADD, OP_CONSTANT, OP_DIVIDE, OP_NEGATE, OP_RETURN};
[INFO] [stdout]   |                            ^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug::*`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use debug::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::PartialEq`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp::PartialEq;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::Ordering`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::sync::atomic::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `value::*`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use value::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OP_CONSTANT`, `OP_NEGATE`, and `OP_RETURN`
[INFO] [stdout]  --> src/chunk.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::chunk::OpCode::{OP_CONSTANT, OP_NEGATE, OP_RETURN};
[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: `int_enum::IntEnum`
[INFO] [stdout]  --> src/chunk.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use int_enum::IntEnum;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `int_to_c_enum::TryFromInt`
[INFO] [stdout]  --> src/chunk.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use int_to_c_enum::TryFromInt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_CONSTANT` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     OP_CONSTANT = 0,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpConstant`
[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 `OP_NIL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     OP_NIL,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `OpNil`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_TRUE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     OP_TRUE,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `OpTrue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_FALSE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     OP_FALSE,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `OpFalse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_POP` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     OP_POP,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `OpPop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_GET_LOCAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     OP_GET_LOCAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpGetLocal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_SET_LOCAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     OP_SET_LOCAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpSetLocal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_GET_GLOBAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     OP_GET_GLOBAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpGetGlobal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_DEFINE_GLOBAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     OP_DEFINE_GLOBAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpDefineGlobal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_SET_GLOBAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     OP_SET_GLOBAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpSetGlobal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     OP_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `OpEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_GREATER` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     OP_GREATER,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `OpGreater`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_LESS` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     OP_LESS,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `OpLess`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_ADD` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     OP_ADD,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `OpAdd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_SUBTRACT` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     OP_SUBTRACT,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpSubtract`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_MULTIPLY` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     OP_MULTIPLY,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpMultiply`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_DIVIDE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     OP_DIVIDE,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `OpDivide`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_NOT` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     OP_NOT,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `OpNot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_NEGATE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     OP_NEGATE,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `OpNegate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_PRINT` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     OP_PRINT,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `OpPrint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_JUMP` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     OP_JUMP,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `OpJump`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_JUMP_IF_FALSE` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     OP_JUMP_IF_FALSE,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OpJumpIfFalse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_LOOP` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     OP_LOOP,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `OpLoop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OP_RETURN` should have an upper camel case name
[INFO] [stdout]   --> src/chunk.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     OP_RETURN,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `OpReturn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OpCode`
[INFO] [stdout]  --> src/compiler.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::chunk::{Chunk, OpCode};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_NONE` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     PREC_NONE = 0,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PrecNone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_ASSIGNMENT` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     PREC_ASSIGNMENT = 1, // =
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecAssignment`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_OR` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     PREC_OR = 2,         // or
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `PrecOr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_AND` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     PREC_AND = 3,        // and
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `PrecAnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_EQUALITY` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     PREC_EQUALITY = 4,   // == !=
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecEquality`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_COMPARISON` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     PREC_COMPARISON = 5, // < > <= >=
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecComparison`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_TERM` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     PREC_TERM = 6,       // + -
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PrecTerm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_FACTOR` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     PREC_FACTOR = 7,     // * /
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecFactor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_UNARY` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     PREC_UNARY = 8,      // ! -
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecUnary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_CALL` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     PREC_CALL = 9,       // . ()
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `PrecCall`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PREC_PRIMARY` should have an upper camel case name
[INFO] [stdout]   --> src/compiler.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     PREC_PRIMARY = 10,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrecPrimary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |         if (self.parser.current.r#type == r#type) {
[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] 113 -         if (self.parser.current.r#type == r#type) {
[INFO] [stdout] 113 +         if self.parser.current.r#type == r#type  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:167:12
[INFO] [stdout]     |
[INFO] [stdout] 167 |         if (!self.parser.had_error) {
[INFO] [stdout]     |            ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 167 -         if (!self.parser.had_error) {
[INFO] [stdout] 167 +         if !self.parser.had_error  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/compiler.rs:190:31
[INFO] [stdout]     |
[INFO] [stdout] 190 |         self.parse_precedence((rule.unwrap().precedence.add(1)));
[INFO] [stdout]     |                               ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 190 -         self.parse_precedence((rule.unwrap().precedence.add(1)));
[INFO] [stdout] 190 +         self.parse_precedence(rule.unwrap().precedence.add(1) );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:360:12
[INFO] [stdout]     |
[INFO] [stdout] 360 |         if (self.match_(TOKEN_EQUAL)) {
[INFO] [stdout]     |            ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 360 -         if (self.match_(TOKEN_EQUAL)) {
[INFO] [stdout] 360 +         if self.match_(TOKEN_EQUAL)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:390:12
[INFO] [stdout]     |
[INFO] [stdout] 390 |         if (!self.match_(TOKEN_SEMICOLON)) {
[INFO] [stdout]     |            ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 390 -         if (!self.match_(TOKEN_SEMICOLON)) {
[INFO] [stdout] 390 +         if !self.match_(TOKEN_SEMICOLON)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:400:12
[INFO] [stdout]     |
[INFO] [stdout] 400 |         if (!self.match_(TOKEN_RIGHT_PAREN)) {
[INFO] [stdout]     |            ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 400 -         if (!self.match_(TOKEN_RIGHT_PAREN)) {
[INFO] [stdout] 400 +         if !self.match_(TOKEN_RIGHT_PAREN)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:460:16
[INFO] [stdout]     |
[INFO] [stdout] 460 |             if (self.parser.previous.r#type == TOKEN_SEMICOLON) {
[INFO] [stdout]     |                ^                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 460 -             if (self.parser.previous.r#type == TOKEN_SEMICOLON) {
[INFO] [stdout] 460 +             if self.parser.previous.r#type == TOKEN_SEMICOLON  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/compiler.rs:696:12
[INFO] [stdout]     |
[INFO] [stdout] 696 |         if (constant > u8::MAX as usize) {
[INFO] [stdout]     |            ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 696 -         if (constant > u8::MAX as usize) {
[INFO] [stdout] 696 +         if constant > u8::MAX as usize  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Value`
[INFO] [stdout]  --> src/debug.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::value::{print_value, Value};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `string` should have an upper camel case name
[INFO] [stdout]  --> src/object/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     string(String),
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::read_to_string`
[INFO] [stdout]  --> src/scanner.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::read_to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_LEFT_PAREN` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     TOKEN_LEFT_PAREN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenLeftParen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_RIGHT_PAREN` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     TOKEN_RIGHT_PAREN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenRightParen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_LEFT_BRACE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     TOKEN_LEFT_BRACE,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenLeftBrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_RIGHT_BRACE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     TOKEN_RIGHT_BRACE,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenRightBrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_COMMA` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     TOKEN_COMMA,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenComma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_DOT` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     TOKEN_DOT,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenDot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_MINUS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     TOKEN_MINUS,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenMinus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_PLUS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     TOKEN_PLUS,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenPlus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_SEMICOLON` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     TOKEN_SEMICOLON,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenSemicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_SLASH` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     TOKEN_SLASH,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenSlash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_STAR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     TOKEN_STAR,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenStar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_BANG` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     TOKEN_BANG,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenBang`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_BANG_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     TOKEN_BANG_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenBangEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     TOKEN_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_EQUAL_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     TOKEN_EQUAL_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenEqualEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_GREATER` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     TOKEN_GREATER,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenGreater`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_GREATER_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     TOKEN_GREATER_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenGreaterEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_LESS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     TOKEN_LESS,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenLess`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_LESS_EQUAL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     TOKEN_LESS_EQUAL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenLessEqual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_IDENTIFIER` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     TOKEN_IDENTIFIER,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenIdentifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_STRING` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     TOKEN_STRING,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenString`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_NUMBER` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     TOKEN_NUMBER,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenNumber`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_AND` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     TOKEN_AND,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenAnd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_CLASS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     TOKEN_CLASS,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenClass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_ELSE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     TOKEN_ELSE,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenElse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_FALSE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     TOKEN_FALSE,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenFalse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_FOR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     TOKEN_FOR,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenFor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_FUN` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     TOKEN_FUN,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenFun`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_IF` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     TOKEN_IF,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `TokenIf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_NIL` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     TOKEN_NIL,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenNil`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_OR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     TOKEN_OR,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `TokenOr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_PRINT` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     TOKEN_PRINT,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenPrint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_RETURN` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     TOKEN_RETURN,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenReturn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_SUPER` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     TOKEN_SUPER,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenSuper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_THIS` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     TOKEN_THIS,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenThis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_TRUE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     TOKEN_TRUE,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenTrue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_VAR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     TOKEN_VAR,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenVar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_WHILE` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     TOKEN_WHILE,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenWhile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_ERROR` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     TOKEN_ERROR,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TokenError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TOKEN_EOF` should have an upper camel case name
[INFO] [stdout]   --> src/scanner.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     TOKEN_EOF,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TokenEof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/scanner.rs:242:15
[INFO] [stdout]     |
[INFO] [stdout] 242 |         while (self.peek() != '"' && !self.is_at_end()) {
[INFO] [stdout]     |               ^                                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 242 -         while (self.peek() != '"' && !self.is_at_end()) {
[INFO] [stdout] 242 +         while self.peek() != '"' && !self.is_at_end()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner.rs:243:16
[INFO] [stdout]     |
[INFO] [stdout] 243 |             if (self.peek() == '\n') {
[INFO] [stdout]     |                ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 243 -             if (self.peek() == '\n') {
[INFO] [stdout] 243 +             if self.peek() == '\n'  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 249 |         if (self.is_at_end()) {
[INFO] [stdout]     |            ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 249 -         if (self.is_at_end()) {
[INFO] [stdout] 249 +         if self.is_at_end()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scanner.rs:306:20
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 if (self.current - self.start > 1) {
[INFO] [stdout]     |                    ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 306 -                 if (self.current - self.start > 1) {
[INFO] [stdout] 306 +                 if self.current - self.start > 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Formatter`
[INFO] [stdout]  --> src/value.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fmt::{Debug, Formatter};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `boolean` should have an upper camel case name
[INFO] [stdout]   --> src/value.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     boolean(bool),
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `Boolean`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `number` should have an upper camel case name
[INFO] [stdout]   --> src/value.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     number(f64),
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `Number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `obj` should have an upper camel case name
[INFO] [stdout]   --> src/value.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     obj(Obj),
[INFO] [stdout]    |     ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `nil` should have an upper camel case name
[INFO] [stdout]   --> src/value.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     nil,
[INFO] [stdout]    |     ^^^ help: convert the identifier to upper camel case: `Nil`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::chunk::OpCode::OP_NIL`
[INFO] [stdout]  --> src/vm.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::chunk::OpCode::OP_NIL;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::debug`
[INFO] [stdout]  --> src/vm.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INTERPRET_OK` should have an upper camel case name
[INFO] [stdout]   --> src/vm.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     INTERPRET_OK,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretOk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INTERPRET_COMPILE_ERROR` should have an upper camel case name
[INFO] [stdout]   --> src/vm.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     INTERPRET_COMPILE_ERROR,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretCompileError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INTERPRET_RUNTIME_ERROR` should have an upper camel case name
[INFO] [stdout]   --> src/vm.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     INTERPRET_RUNTIME_ERROR,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretRuntimeError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OP_ADD`, `OP_CONSTANT`, `OP_DIVIDE`, `OP_NEGATE`, and `OP_RETURN`
[INFO] [stdout]  --> src/main.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::chunk::OpCode::{OP_ADD, OP_CONSTANT, OP_DIVIDE, OP_NEGATE, OP_RETURN};
[INFO] [stdout]   |                            ^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug::*`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use debug::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::PartialEq`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp::PartialEq;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::Ordering`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::sync::atomic::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `value::*`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use value::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `emitByte` found for mutable reference `&mut Compiler` in the current scope
[INFO] [stdout]    --> src/compiler.rs:404:18
[INFO] [stdout]     |
[INFO] [stdout] 404 |             self.emitByte(OP_POP);
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `emit_byte` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 404 -             self.emitByte(OP_POP);
[INFO] [stdout] 404 +             self.emit_byte(OP_POP);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `emitLoop` found for mutable reference `&mut Compiler` in the current scope
[INFO] [stdout]    --> src/compiler.rs:407:18
[INFO] [stdout]     |
[INFO] [stdout] 407 |             self.emitLoop(loop_start);
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `emit_loop` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 407 -             self.emitLoop(loop_start);
[INFO] [stdout] 407 +             self.emit_loop(loop_start);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `patchJump` found for mutable reference `&mut Compiler` in the current scope
[INFO] [stdout]    --> src/compiler.rs:409:18
[INFO] [stdout]     |
[INFO] [stdout] 409 |             self.patchJump(bodyJump);
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `patch_jump` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 409 -             self.patchJump(bodyJump);
[INFO] [stdout] 409 +             self.patch_jump(bodyJump);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OpCode: TryFrom<u8>` is not satisfied
[INFO] [stdout]   --> src/debug.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     match OpCode::try_from(instruction) {
[INFO] [stdout]    |           ^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<u8>` is not implemented for `OpCode`
[INFO] [stdout]   --> src/chunk.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum OpCode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `u8` to implement `Into<OpCode>`
[INFO] [stdout]    = note: required for `OpCode` to implement `TryFrom<u8>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OpCode: From<u8>` is not satisfied
[INFO] [stdout]   --> src/debug.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     match OpCode::try_from(instruction) {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<u8>` is not implemented for `OpCode`
[INFO] [stdout]   --> src/chunk.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum OpCode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `u8` to implement `Into<OpCode>`
[INFO] [stdout]    = note: required for `OpCode` to implement `TryFrom<u8>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OpCode: TryFrom<u8>` is not satisfied
[INFO] [stdout]   --> src/vm.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 |             match OpCode::try_from(instruction) {
[INFO] [stdout]    |                   ^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<u8>` is not implemented for `OpCode`
[INFO] [stdout]   --> src/chunk.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum OpCode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `u8` to implement `Into<OpCode>`
[INFO] [stdout]    = note: required for `OpCode` to implement `TryFrom<u8>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OpCode: From<u8>` is not satisfied
[INFO] [stdout]   --> src/vm.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 |             match OpCode::try_from(instruction) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<u8>` is not implemented for `OpCode`
[INFO] [stdout]   --> src/chunk.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum OpCode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `u8` to implement `Into<OpCode>`
[INFO] [stdout]    = note: required for `OpCode` to implement `TryFrom<u8>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:207:27
[INFO] [stdout]     |
[INFO] [stdout] 207 |     fn literal(&mut self, can_assign: bool) {
[INFO] [stdout]     |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/compiler.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |             TOKEN_COMMA => Some(ParseRule::new(None, None, PREC_NONE)),
[INFO] [stdout]     |             ----------- matches all the relevant values
[INFO] [stdout] 227 |
[INFO] [stdout] 228 |             TOKEN_COMMA => Some(ParseRule::new(None, None, PREC_NONE)),
[INFO] [stdout]     |             ^^^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:216:50
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn get_rule(&self, operator_type: TokenType, can_assign: bool) -> Option<ParseRule> {
[INFO] [stdout]     |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:338:28
[INFO] [stdout]     |
[INFO] [stdout] 338 |     fn grouping(&mut self, can_assign: bool) {
[INFO] [stdout]     |                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:501:26
[INFO] [stdout]     |
[INFO] [stdout] 501 |     fn number(&mut self, can_assign: bool) {
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:511:22
[INFO] [stdout]     |
[INFO] [stdout] 511 |     fn or(&mut self, can_assign: bool ) {
[INFO] [stdout]     |                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:522:26
[INFO] [stdout]     |
[INFO] [stdout] 522 |     fn string(&mut self, can_assign: bool) {
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_op`
[INFO] [stdout]    --> src/compiler.rs:533:19
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let (arg, get_op, set_op) = match self.resolve_local(name) {
[INFO] [stdout]     |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `set_op`
[INFO] [stdout]    --> src/compiler.rs:533:27
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let (arg, get_op, set_op) = match self.resolve_local(name) {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_set_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:547:25
[INFO] [stdout]     |
[INFO] [stdout] 547 |     fn unary(&mut self, can_assign: bool) {
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:618:23
[INFO] [stdout]     |
[INFO] [stdout] 618 |     fn and(&mut self, can_assign: bool) {
[INFO] [stdout]     |                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/compiler.rs:638:16
[INFO] [stdout]     |
[INFO] [stdout] 636 |             let local = &mut self.locals[i];
[INFO] [stdout]     |                              ----------- mutable borrow occurs here
[INFO] [stdout] 637 |             let local_name = local.name.clone();
[INFO] [stdout] 638 |             if self.identifiers_equal(name, &local_name) {
[INFO] [stdout]     |                ^^^^ immutable borrow occurs here
[INFO] [stdout] 639 |                 if local.depth == -1 {
[INFO] [stdout]     |                    ----------- mutable borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/compiler.rs:723:13
[INFO] [stdout]     |
[INFO] [stdout] 723 |     fn from(value: u8) -> Self {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/object/mod.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |             string(v) => print!("{:?}", self),
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/object/mod.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |             string(_) => true,
[INFO] [stdout]    |             --------- matches all the relevant values
[INFO] [stdout] 22 |             _ => false,
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/object/mod.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |             string(v) => v,
[INFO] [stdout]    |             --------- matches all the relevant values
[INFO] [stdout] 29 |             _ => "",
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `emitByte` found for mutable reference `&mut Compiler` in the current scope
[INFO] [stdout]    --> src/compiler.rs:404:18
[INFO] [stdout]     |
[INFO] [stdout] 404 |             self.emitByte(OP_POP);
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `emit_byte` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 404 -             self.emitByte(OP_POP);
[INFO] [stdout] 404 +             self.emit_byte(OP_POP);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/vm.rs:223:33
[INFO] [stdout]     |
[INFO] [stdout] 223 |     fn runtime_error(&mut self, msg: &str) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/main.rs:37:16
[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/main.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Err(e) => return,
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0502, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `emitLoop` found for mutable reference `&mut Compiler` in the current scope
[INFO] [stdout]    --> src/compiler.rs:407:18
[INFO] [stdout]     |
[INFO] [stdout] 407 |             self.emitLoop(loop_start);
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `emit_loop` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 407 -             self.emitLoop(loop_start);
[INFO] [stdout] 407 +             self.emit_loop(loop_start);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `patchJump` found for mutable reference `&mut Compiler` in the current scope
[INFO] [stdout]    --> src/compiler.rs:409:18
[INFO] [stdout]     |
[INFO] [stdout] 409 |             self.patchJump(bodyJump);
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `patch_jump` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 409 -             self.patchJump(bodyJump);
[INFO] [stdout] 409 +             self.patch_jump(bodyJump);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `r-lox-bytecode` (bin "r-lox-bytecode" test) due to 8 previous errors; 127 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0277]: the trait bound `OpCode: TryFrom<u8>` is not satisfied
[INFO] [stdout]   --> src/debug.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     match OpCode::try_from(instruction) {
[INFO] [stdout]    |           ^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<u8>` is not implemented for `OpCode`
[INFO] [stdout]   --> src/chunk.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum OpCode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `u8` to implement `Into<OpCode>`
[INFO] [stdout]    = note: required for `OpCode` to implement `TryFrom<u8>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OpCode: From<u8>` is not satisfied
[INFO] [stdout]   --> src/debug.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     match OpCode::try_from(instruction) {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<u8>` is not implemented for `OpCode`
[INFO] [stdout]   --> src/chunk.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum OpCode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `u8` to implement `Into<OpCode>`
[INFO] [stdout]    = note: required for `OpCode` to implement `TryFrom<u8>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OpCode: TryFrom<u8>` is not satisfied
[INFO] [stdout]   --> src/vm.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 |             match OpCode::try_from(instruction) {
[INFO] [stdout]    |                   ^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<u8>` is not implemented for `OpCode`
[INFO] [stdout]   --> src/chunk.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum OpCode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `u8` to implement `Into<OpCode>`
[INFO] [stdout]    = note: required for `OpCode` to implement `TryFrom<u8>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `OpCode: From<u8>` is not satisfied
[INFO] [stdout]   --> src/vm.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 |             match OpCode::try_from(instruction) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `From<u8>` is not implemented for `OpCode`
[INFO] [stdout]   --> src/chunk.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum OpCode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: required for `u8` to implement `Into<OpCode>`
[INFO] [stdout]    = note: required for `OpCode` to implement `TryFrom<u8>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:207:27
[INFO] [stdout]     |
[INFO] [stdout] 207 |     fn literal(&mut self, can_assign: bool) {
[INFO] [stdout]     |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/compiler.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |             TOKEN_COMMA => Some(ParseRule::new(None, None, PREC_NONE)),
[INFO] [stdout]     |             ----------- matches all the relevant values
[INFO] [stdout] 227 |
[INFO] [stdout] 228 |             TOKEN_COMMA => Some(ParseRule::new(None, None, PREC_NONE)),
[INFO] [stdout]     |             ^^^^^^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:216:50
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn get_rule(&self, operator_type: TokenType, can_assign: bool) -> Option<ParseRule> {
[INFO] [stdout]     |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:338:28
[INFO] [stdout]     |
[INFO] [stdout] 338 |     fn grouping(&mut self, can_assign: bool) {
[INFO] [stdout]     |                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:501:26
[INFO] [stdout]     |
[INFO] [stdout] 501 |     fn number(&mut self, can_assign: bool) {
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:511:22
[INFO] [stdout]     |
[INFO] [stdout] 511 |     fn or(&mut self, can_assign: bool ) {
[INFO] [stdout]     |                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:522:26
[INFO] [stdout]     |
[INFO] [stdout] 522 |     fn string(&mut self, can_assign: bool) {
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_op`
[INFO] [stdout]    --> src/compiler.rs:533:19
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let (arg, get_op, set_op) = match self.resolve_local(name) {
[INFO] [stdout]     |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `set_op`
[INFO] [stdout]    --> src/compiler.rs:533:27
[INFO] [stdout]     |
[INFO] [stdout] 533 |         let (arg, get_op, set_op) = match self.resolve_local(name) {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_set_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:547:25
[INFO] [stdout]     |
[INFO] [stdout] 547 |     fn unary(&mut self, can_assign: bool) {
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_assign`
[INFO] [stdout]    --> src/compiler.rs:618:23
[INFO] [stdout]     |
[INFO] [stdout] 618 |     fn and(&mut self, can_assign: bool) {
[INFO] [stdout]     |                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `*self` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/compiler.rs:638:16
[INFO] [stdout]     |
[INFO] [stdout] 636 |             let local = &mut self.locals[i];
[INFO] [stdout]     |                              ----------- mutable borrow occurs here
[INFO] [stdout] 637 |             let local_name = local.name.clone();
[INFO] [stdout] 638 |             if self.identifiers_equal(name, &local_name) {
[INFO] [stdout]     |                ^^^^ immutable borrow occurs here
[INFO] [stdout] 639 |                 if local.depth == -1 {
[INFO] [stdout]     |                    ----------- mutable borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/compiler.rs:723:13
[INFO] [stdout]     |
[INFO] [stdout] 723 |     fn from(value: u8) -> Self {
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/object/mod.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |             string(v) => print!("{:?}", self),
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/object/mod.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |             string(_) => true,
[INFO] [stdout]    |             --------- matches all the relevant values
[INFO] [stdout] 22 |             _ => false,
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/object/mod.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |             string(v) => v,
[INFO] [stdout]    |             --------- matches all the relevant values
[INFO] [stdout] 29 |             _ => "",
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/vm.rs:223:33
[INFO] [stdout]     |
[INFO] [stdout] 223 |     fn runtime_error(&mut self, msg: &str) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/main.rs:37:16
[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/main.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Err(e) => return,
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0502, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `r-lox-bytecode` (bin "r-lox-bytecode") due to 8 previous errors; 127 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "c15119cdfe0997c0b1b175559784e922026bf297dfd2159c099bebd508c057ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c15119cdfe0997c0b1b175559784e922026bf297dfd2159c099bebd508c057ff", kill_on_drop: false }`
[INFO] [stdout] c15119cdfe0997c0b1b175559784e922026bf297dfd2159c099bebd508c057ff
