[INFO] cloning repository https://github.com/pseguin2011/monkey_interpreter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pseguin2011/monkey_interpreter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpseguin2011%2Fmonkey_interpreter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpseguin2011%2Fmonkey_interpreter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4919060c2b5e948c080fa57822602c4a5996777d
[INFO] checking pseguin2011/monkey_interpreter/4919060c2b5e948c080fa57822602c4a5996777d against master#4d1bd0db7f489b22c6d8aa2385937a95412c015b for pr-114682
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpseguin2011%2Fmonkey_interpreter" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pseguin2011/monkey_interpreter on toolchain 4d1bd0db7f489b22c6d8aa2385937a95412c015b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] finished tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] tweaked toml for git repo https://github.com/pseguin2011/monkey_interpreter written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/pseguin2011/monkey_interpreter 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" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[ERROR] this task or one of its parent failed!
[ERROR] no output for 300 seconds
[ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace.
[INFO] checking pseguin2011/monkey_interpreter/4919060c2b5e948c080fa57822602c4a5996777d against try#785364c7e5e0804473a3fddfb579798ea14e3493 for pr-114682
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpseguin2011%2Fmonkey_interpreter" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pseguin2011/monkey_interpreter on toolchain 785364c7e5e0804473a3fddfb579798ea14e3493
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] finished tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] tweaked toml for git repo https://github.com/pseguin2011/monkey_interpreter written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/pseguin2011/monkey_interpreter 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" "+785364c7e5e0804473a3fddfb579798ea14e3493" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking pseguin2011/monkey_interpreter/4919060c2b5e948c080fa57822602c4a5996777d against try#785364c7e5e0804473a3fddfb579798ea14e3493 for pr-114682
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpseguin2011%2Fmonkey_interpreter" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pseguin2011/monkey_interpreter on toolchain 785364c7e5e0804473a3fddfb579798ea14e3493
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] finished tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] tweaked toml for git repo https://github.com/pseguin2011/monkey_interpreter written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/pseguin2011/monkey_interpreter 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" "+785364c7e5e0804473a3fddfb579798ea14e3493" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking pseguin2011/monkey_interpreter/4919060c2b5e948c080fa57822602c4a5996777d against try#785364c7e5e0804473a3fddfb579798ea14e3493 for pr-114682
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpseguin2011%2Fmonkey_interpreter" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pseguin2011/monkey_interpreter on toolchain 785364c7e5e0804473a3fddfb579798ea14e3493
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] finished tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] tweaked toml for git repo https://github.com/pseguin2011/monkey_interpreter written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/pseguin2011/monkey_interpreter 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" "+785364c7e5e0804473a3fddfb579798ea14e3493" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking pseguin2011/monkey_interpreter/4919060c2b5e948c080fa57822602c4a5996777d against try#785364c7e5e0804473a3fddfb579798ea14e3493 for pr-114682
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpseguin2011%2Fmonkey_interpreter" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/pseguin2011/monkey_interpreter on toolchain 785364c7e5e0804473a3fddfb579798ea14e3493
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] finished tweaking git repo https://github.com/pseguin2011/monkey_interpreter
[INFO] tweaked toml for git repo https://github.com/pseguin2011/monkey_interpreter written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/pseguin2011/monkey_interpreter 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" "+785364c7e5e0804473a3fddfb579798ea14e3493" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a6398af8189c38828e82489ae907f8e0f0087f7837e5124a73d3732aafa8e163
[INFO] running `Command { std: "docker" "start" "-a" "a6398af8189c38828e82489ae907f8e0f0087f7837e5124a73d3732aafa8e163", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a6398af8189c38828e82489ae907f8e0f0087f7837e5124a73d3732aafa8e163", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a6398af8189c38828e82489ae907f8e0f0087f7837e5124a73d3732aafa8e163", kill_on_drop: false }`
[INFO] [stdout] a6398af8189c38828e82489ae907f8e0f0087f7837e5124a73d3732aafa8e163
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+785364c7e5e0804473a3fddfb579798ea14e3493" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4b951eab30d52bf309eec3b04a754912ecf63e6fa44b841816608b0cc7354b3e
[INFO] running `Command { std: "docker" "start" "-a" "4b951eab30d52bf309eec3b04a754912ecf63e6fa44b841816608b0cc7354b3e", kill_on_drop: false }`
[INFO] [stderr]     Checking monkey_interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Node`
[INFO] [stdout]  --> src/parser/parser.rs:1:102
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::ast::{Expressions, ExpressionStatement, Identifier, IntegerLiteral, LetStatement, Node, Program, ReturnStatement, Stat...
[INFO] [stdout]   |                                                                                                      ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser::*`
[INFO] [stdout]  --> src/parser/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use parser::*;
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser::*`
[INFO] [stdout]  --> src/parser/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use parser::*;
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precedence`
[INFO] [stdout]    --> src/parser/parser.rs:280:40
[INFO] [stdout]     |
[INFO] [stdout] 280 |     fn parse_expression<'a>(&mut self, precedence: u8, token_type: token::TokenType) -> Option<Expressions<'static>> {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precedence`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOWEST` is never used
[INFO] [stdout]  --> src/parser/parser.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const LOWEST: u8 = 1;
[INFO] [stdout]   |       ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUALS` is never used
[INFO] [stdout]   --> src/parser/parser.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const EQUALS: u8 = 2;         // ==
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LESSGREATER` is never used
[INFO] [stdout]   --> src/parser/parser.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const LESSGREATER: u8 = 3;    // < or >
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUM` is never used
[INFO] [stdout]   --> src/parser/parser.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const SUM: u8 = 4;            // + 
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRODUCT` is never used
[INFO] [stdout]   --> src/parser/parser.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const PRODUCT: u8 = 5;        // *
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PREFIX` is never used
[INFO] [stdout]   --> src/parser/parser.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const PREFIX: u8 = 6;         // -X or !X
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CALL` is never used
[INFO] [stdout]   --> src/parser/parser.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const CALL: u8 = 7;           // myFunction(X)
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PrefixParsingFn` is never used
[INFO] [stdout]   --> src/parser/parser.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type PrefixParsingFn<'a> = dyn Fn(&Parser) -> Expressions<'a>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InfixParsingFn` is never used
[INFO] [stdout]   --> src/parser/parser.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | type InfixParsingFn<'a> = dyn Fn(&Parser, Expressions<'a>) -> Expressions<'a>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/parser/parser.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Parser {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser/parser.rs:30:12
[INFO] [stdout]     |
[INFO] [stdout] 29  | impl Parser {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 30  |     pub fn new(lexer: Lexer) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 52  |     pub fn register_prefix(&mut self, token_type: token::TokenType<'static>, func: &'static PrefixParsingFn<'static>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65  |     pub fn register_infix(&mut self, token_type: token::TokenType<'static>, func: &'static InfixParsingFn<'static>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     fn new_program_ast_node() -> Program<'static> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80  |     pub fn next_token(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85  |     pub fn errors(&self) -> &[String] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89  |     pub fn peek_error(&mut self, t: token::TokenType) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn parse_program(&mut self) -> Option<Program<'static>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn expected_peek(&mut self, token_type: token::TokenType) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn peek_token_is(&self, token_type: token::TokenType) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn current_token_is(&self, token_type: token::TokenType) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_identifier` and `parse_integer_literal` are never used
[INFO] [stdout]    --> src/parser/parser.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn parse_identifier(&self) -> Expressions<'static> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn parse_integer_literal(&self) -> Expressions<'static> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_let_statement`, `parse_return_statement`, `parse_expression_statement`, and `parse_expression` are never used
[INFO] [stdout]    --> src/parser/parser.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn parse_let_statement(&mut self) -> Option<Statements<'static>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn parse_return_statement(&mut self) -> Option<Statements<'static>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn parse_expression_statement(&mut self) -> Option<Statements<'static>>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn parse_expression<'a>(&mut self, precedence: u8, token_type: token::TokenType) -> Option<Expressions<'static>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_parser_errors` is never used
[INFO] [stdout]    --> src/parser/parser.rs:419:4
[INFO] [stdout]     |
[INFO] [stdout] 419 | fn check_parser_errors(parser: &Parser) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/parser/parser.rs:264:46
[INFO] [stdout]     |
[INFO] [stdout] 264 |             let token_type = token.token_type.clone();
[INFO] [stdout]     |                                              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `precedence`
[INFO] [stdout]    --> src/parser/parser.rs:280:40
[INFO] [stdout]     |
[INFO] [stdout] 280 |     fn parse_expression<'a>(&mut self, precedence: u8, token_type: token::TokenType) -> Option<Expressions<'static>> {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precedence`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUALS` is never used
[INFO] [stdout]   --> src/parser/parser.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const EQUALS: u8 = 2;         // ==
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LESSGREATER` is never used
[INFO] [stdout]   --> src/parser/parser.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const LESSGREATER: u8 = 3;    // < or >
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUM` is never used
[INFO] [stdout]   --> src/parser/parser.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const SUM: u8 = 4;            // + 
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRODUCT` is never used
[INFO] [stdout]   --> src/parser/parser.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const PRODUCT: u8 = 5;        // *
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PREFIX` is never used
[INFO] [stdout]   --> src/parser/parser.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const PREFIX: u8 = 6;         // -X or !X
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CALL` is never used
[INFO] [stdout]   --> src/parser/parser.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const CALL: u8 = 7;           // myFunction(X)
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `infix_parsing_fns` is never read
[INFO] [stdout]   --> src/parser/parser.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Parser {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     infix_parsing_fns:  HashMap<token::TokenType<'static>, &'static InfixParsingFn<'static>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `register_infix` is never used
[INFO] [stdout]   --> src/parser/parser.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn register_infix(&mut self, token_type: token::TokenType<'static>, func: &'static InfixParsingFn<'static>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/parser/parser.rs:264:46
[INFO] [stdout]     |
[INFO] [stdout] 264 |             let token_type = token.token_type.clone();
[INFO] [stdout]     |                                              ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 0.12s
[INFO] running `Command { std: "docker" "inspect" "4b951eab30d52bf309eec3b04a754912ecf63e6fa44b841816608b0cc7354b3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b951eab30d52bf309eec3b04a754912ecf63e6fa44b841816608b0cc7354b3e", kill_on_drop: false }`
[INFO] [stdout] 4b951eab30d52bf309eec3b04a754912ecf63e6fa44b841816608b0cc7354b3e
