[INFO] cloning repository https://github.com/JonnyWalker81/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/JonnyWalker81/monkey_interpreter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonnyWalker81%2Fmonkey_interpreter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonnyWalker81%2Fmonkey_interpreter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dab302b861ddeef657e16ec34ee9be0cb5f74bf5
[INFO] checking JonnyWalker81/monkey_interpreter against master#cb06d12710575a0d7ff71d6fe108f3bcff4f9195 for pr-128425-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonnyWalker81%2Fmonkey_interpreter" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/JonnyWalker81/monkey_interpreter on toolchain cb06d12710575a0d7ff71d6fe108f3bcff4f9195
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cb06d12710575a0d7ff71d6fe108f3bcff4f9195" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/JonnyWalker81/monkey_interpreter
[INFO] finished tweaking git repo https://github.com/JonnyWalker81/monkey_interpreter
[INFO] tweaked toml for git repo https://github.com/JonnyWalker81/monkey_interpreter written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/JonnyWalker81/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" "+cb06d12710575a0d7ff71d6fe108f3bcff4f9195" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded seahash v3.0.5
[INFO] [stderr]   Downloaded maplit v0.1.4
[INFO] [stderr]   Downloaded term_size v0.2.1
[INFO] [stderr]   Downloaded unicode-segmentation v1.0.1
[INFO] [stderr]   Downloaded clap v2.20.0
[INFO] [stderr]   Downloaded float-cmp v0.2.3
[INFO] [stderr]   Downloaded readline v0.0.13
[INFO] [stderr]   Downloaded readline-sys v0.0.12
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+cb06d12710575a0d7ff71d6fe108f3bcff4f9195" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0a555b021050e0e2ddf88a23e4f6246c8b325fea2b4fc6ce21f357f6a90d1635
[INFO] running `Command { std: "docker" "start" "-a" "0a555b021050e0e2ddf88a23e4f6246c8b325fea2b4fc6ce21f357f6a90d1635", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0a555b021050e0e2ddf88a23e4f6246c8b325fea2b4fc6ce21f357f6a90d1635", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a555b021050e0e2ddf88a23e4f6246c8b325fea2b4fc6ce21f357f6a90d1635", kill_on_drop: false }`
[INFO] [stdout] 0a555b021050e0e2ddf88a23e4f6246c8b325fea2b4fc6ce21f357f6a90d1635
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+cb06d12710575a0d7ff71d6fe108f3bcff4f9195" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eb4acfc6006c70bca23b78fc61369493d8f2c1fe683b58b843d06cb3d1d81cd5
[INFO] running `Command { std: "docker" "start" "-a" "eb4acfc6006c70bca23b78fc61369493d8f2c1fe683b58b843d06cb3d1d81cd5", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking libc v0.2.18
[INFO] [stderr]    Compiling readline-sys v0.0.12
[INFO] [stderr]     Checking num-traits v0.1.36
[INFO] [stderr]     Checking unicode-segmentation v1.0.1
[INFO] [stderr]     Checking vec_map v0.6.0
[INFO] [stderr]     Checking maplit v0.1.4
[INFO] [stderr]     Checking strsim v0.6.0
[INFO] [stderr]     Checking seahash v3.0.5
[INFO] [stderr]     Checking unicode-width v0.1.4
[INFO] [stderr]     Checking bitflags v0.7.0
[INFO] [stderr]     Checking ansi_term v0.9.0
[INFO] [stderr]     Checking term_size v0.2.1
[INFO] [stderr]     Checking float-cmp v0.2.3
[INFO] [stderr]     Checking readline v0.0.13
[INFO] [stderr]     Checking clap v2.20.0
[INFO] [stderr]     Checking monkey_lib v0.1.0 (/opt/rustwide/workdir/monkey_lib)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> monkey_lib/src/lib.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use] extern crate maplit;
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]  --> monkey_lib/src/interpreter/lexer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> monkey_lib/src/interpreter/lexer.rs:177:16
[INFO] [stdout]     |
[INFO] [stdout] 177 |             'a'...'z' => true,
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> monkey_lib/src/interpreter/lexer.rs:178:16
[INFO] [stdout]     |
[INFO] [stdout] 178 |             'A'...'Z' => true,
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> monkey_lib/src/interpreter/lexer.rs:188:16
[INFO] [stdout]     |
[INFO] [stdout] 188 |             '0'...'9' | '.' => true,
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> monkey_lib/src/interpreter/repl.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{ Read, Write };
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interpreter::token::Token`
[INFO] [stdout]  --> monkey_lib/src/interpreter/repl.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use interpreter::token::Token;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interpreter::program::Program`
[INFO] [stdout]  --> monkey_lib/src/interpreter/ast.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use interpreter::program::Program;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::RandomState`
[INFO] [stdout]  --> monkey_lib/src/interpreter/ast.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::hash_map::RandomState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BuildHasher`
[INFO] [stdout]  --> monkey_lib/src/interpreter/ast.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::hash::{Hash, Hasher, BuildHasher};
[INFO] [stdout]   |                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NodeType` and `Node`
[INFO] [stdout]  --> monkey_lib/src/interpreter/program.rs:1:36
[INFO] [stdout]   |
[INFO] [stdout] 1 | use interpreter::ast::{ Statement, Node, NodeType };
[INFO] [stdout]   |                                    ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interpreter::token::Token`
[INFO] [stdout]  --> monkey_lib/src/interpreter/program.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use interpreter::token::Token;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NumberType`
[INFO] [stdout]  --> monkey_lib/src/interpreter/parser.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use interpreter::token::{ Token, NumberType };
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NodeType`
[INFO] [stdout]  --> monkey_lib/src/interpreter/parser.rs:5:91
[INFO] [stdout]   |
[INFO] [stdout] 5 | use interpreter::ast::{ Statement, Identifier, StatementKind, Expression, ExpressionKind, NodeType, BlockStatement, MapExpression };
[INFO] [stdout]   |                                                                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> monkey_lib/src/interpreter/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash`
[INFO] [stdout]  --> monkey_lib/src/interpreter/object.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::RandomState`
[INFO] [stdout]  --> monkey_lib/src/interpreter/object.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::hash_map::RandomState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SipHasher`
[INFO] [stdout]  --> monkey_lib/src/interpreter/object.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::{ Hash, Hasher, SipHasher };
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Token`
[INFO] [stdout]   --> monkey_lib/src/interpreter/object.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | use interpreter::token::{ Token, NumberType };
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interpreter::parser::Parser`
[INFO] [stdout]  --> monkey_lib/src/interpreter/evaluator.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use interpreter::parser::Parser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interpreter::lexer::Lexer`
[INFO] [stdout]  --> monkey_lib/src/interpreter/evaluator.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use interpreter::lexer::Lexer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Identifier`
[INFO] [stdout]  --> monkey_lib/src/interpreter/evaluator.rs:6:50
[INFO] [stdout]   |
[INFO] [stdout] 6 | use interpreter::ast::{Statement, StatementKind, Identifier, BlockStatement, Expression, ExpressionKind};
[INFO] [stdout]   |                                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]   --> monkey_lib/src/interpreter/evaluator.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fmt;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::panic`
[INFO] [stdout]   --> monkey_lib/src/interpreter/evaluator.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::panic;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `float_cmp::ApproxEqUlps`
[INFO] [stdout]   --> monkey_lib/src/interpreter/evaluator.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use float_cmp::ApproxEqUlps;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]  --> monkey_lib/src/interpreter/environment.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{ Arc, RwLock };
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::Cell`
[INFO] [stdout]  --> monkey_lib/src/interpreter/environment.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cell::Cell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interpreter::evaluator::Evaluator`
[INFO] [stdout]  --> monkey_lib/src/interpreter/builtins.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use interpreter::evaluator::Evaluator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdin`
[INFO] [stdout]   --> monkey_lib/src/interpreter/mod.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::io::{Stdout, Stdin};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interpreter::program::Program`
[INFO] [stdout]   --> monkey_lib/src/interpreter/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use interpreter::program::Program;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]  --> monkey_lib/src/lib.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::slice;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> monkey_lib/src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub extern fn evaluate_input(bytes: *const u8, len: size_t)  {
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::hash::SipHasher`: use `std::hash::DefaultHasher` instead
[INFO] [stdout]  --> monkey_lib/src/interpreter/object.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::{ Hash, Hasher, SipHasher };
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]  --> monkey_lib/src/interpreter/builtins.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> monkey_lib/src/interpreter/parser.rs:172:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | /         match expression_stmt {
[INFO] [stdout] 167 | |             Some(s) => {
[INFO] [stdout] 168 | |                 return Some(Statement::new(s));
[INFO] [stdout] 169 | |             },
[INFO] [stdout] 170 | |             None => { return None; }
[INFO] [stdout] 171 | |         }
[INFO] [stdout]     | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 172 |           return None;
[INFO] [stdout]     |           ^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> monkey_lib/src/interpreter/object.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |                         panic!("Unsupported HashMap type -> {}", *self);
[INFO] [stdout]     |                         ----------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 126 |                         HashKey::default();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> monkey_lib/src/interpreter/object.rs:141:17
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 panic!("Unsupported HashMap type -> {}", *self);
[INFO] [stdout]     |                 ----------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 141 |                 HashKey::default();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nt`
[INFO] [stdout]   --> monkey_lib/src/interpreter/token.rs:62:31
[INFO] [stdout]    |
[INFO] [stdout] 62 |             Token::Number(ref nt, ref s) => format!("NUMBER({})", s),
[INFO] [stdout]    |                               ^^ help: if this is intentional, prefix it with an underscore: `_nt`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> monkey_lib/src/interpreter/lexer.rs:122:13
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let pos = self.position;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> monkey_lib/src/interpreter/lexer.rs:134:13
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let pos = self.position;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `monkey_path`
[INFO] [stdout]   --> monkey_lib/src/interpreter/repl.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let monkey_path = match env::var("MONKEY_PATH") {
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_monkey_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> monkey_lib/src/interpreter/repl.rs:60:21
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 Err(e) => break,
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> monkey_lib/src/interpreter/repl.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn start(stdin: &mut Stdin, stdout: &mut Stdout) {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> monkey_lib/src/interpreter/repl.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |             let mut l = Lexer::new(buffer.clone());
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 Err(e) => break,
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stdin`
[INFO] [stdout]   --> monkey_lib/src/interpreter/repl.rs:88:23
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn start_calc(stdin: &mut Stdin, stdout: &mut Stdout) {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_stdin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |             let mut l = Lexer::new(buffer.clone());
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:142:23
[INFO] [stdout]     |
[INFO] [stdout] 142 |         for (key, ref val) in self.map.iter() {
[INFO] [stdout]     |                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:152:39
[INFO] [stdout]     |
[INFO] [stdout] 152 |             ExpressionKind::Ident(ref t, ref v) => {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:161:47
[INFO] [stdout]     |
[INFO] [stdout] 161 |             ExpressionKind::NumberLiteral(ref t, ref s) => {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:164:50
[INFO] [stdout]     |
[INFO] [stdout] 164 |             ExpressionKind::PrefixExpression(ref t, ref v, ref e) => {
[INFO] [stdout]     |                                                  ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:168:49
[INFO] [stdout]     |
[INFO] [stdout] 168 |             ExpressionKind::InfixExpression(ref t, ref l, ref o, ref r) => {
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:171:41
[INFO] [stdout]     |
[INFO] [stdout] 171 |             ExpressionKind::Boolean(ref t, ref b) => {
[INFO] [stdout]     |                                         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:174:36
[INFO] [stdout]     |
[INFO] [stdout] 174 |             ExpressionKind::If(ref t, ref c, ref con, ref alt) => {
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:207:38
[INFO] [stdout]     |
[INFO] [stdout] 207 |             ExpressionKind::Call(ref t, ref f, ref a) => {
[INFO] [stdout]     |                                      ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:223:47
[INFO] [stdout]     |
[INFO] [stdout] 223 |             ExpressionKind::StringLiteral(ref t, ref v) => {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:226:46
[INFO] [stdout]     |
[INFO] [stdout] 226 |             ExpressionKind::ArrayLiteral(ref t, ref el) => {
[INFO] [stdout]     |                                              ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:240:49
[INFO] [stdout]     |
[INFO] [stdout] 240 |             ExpressionKind::IndexExpression(ref t, ref l, ref i) => {
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:251:45
[INFO] [stdout]     |
[INFO] [stdout] 251 |             ExpressionKind::HashLiteral(ref t, ref m) => {
[INFO] [stdout]     |                                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:266:39
[INFO] [stdout]     |
[INFO] [stdout] 266 |             ExpressionKind::While(ref t, ref c, ref b) => {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Nonde`
[INFO] [stdout]    --> monkey_lib/src/interpreter/parser.rs:549:13
[INFO] [stdout]     |
[INFO] [stdout] 549 |             Nonde => Expression::default()
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_Nonde`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> monkey_lib/src/interpreter/object.rs:168:54
[INFO] [stdout]     |
[INFO] [stdout] 168 |             ObjectType::Function(ref ids, ref b, ref e) => {
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> monkey_lib/src/interpreter/object.rs:196:47
[INFO] [stdout]     |
[INFO] [stdout] 196 |             ObjectType::BuiltInIdentifier(ref s) => {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> monkey_lib/src/interpreter/object.rs:217:26
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 for (ref key, ref val) in hm {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> monkey_lib/src/interpreter/evaluator.rs:58:52
[INFO] [stdout]    |
[INFO] [stdout] 58 |             StatementKind::ExpressionStatement(ref t, ref e) => {
[INFO] [stdout]    |                                                    ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> monkey_lib/src/interpreter/evaluator.rs:66:48
[INFO] [stdout]    |
[INFO] [stdout] 66 |             StatementKind::ReturnStatement(ref t, ref e) => {
[INFO] [stdout]    |                                                ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> monkey_lib/src/interpreter/evaluator.rs:78:45
[INFO] [stdout]    |
[INFO] [stdout] 78 |             StatementKind::LetStatement(ref t, ref i, ref e) => {
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> monkey_lib/src/interpreter/evaluator.rs:91:48
[INFO] [stdout]    |
[INFO] [stdout] 91 |             StatementKind::AssignStatement(ref t, ref i, ref e) => {
[INFO] [stdout]    |                                                ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:104:48
[INFO] [stdout]     |
[INFO] [stdout] 104 |             StatementKind::ImportStatement(ref t, ref s) => {
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:135:39
[INFO] [stdout]     |
[INFO] [stdout] 135 |             ExpressionKind::Ident(ref t, ref module) => {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:173:39
[INFO] [stdout]     |
[INFO] [stdout] 173 |             ExpressionKind::Ident(ref t, ref i) => {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:184:47
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     Token::Number(ref nt, ref n) => {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:195:41
[INFO] [stdout]     |
[INFO] [stdout] 195 |             ExpressionKind::Boolean(ref t, ref b) => {
[INFO] [stdout]     |                                         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:198:50
[INFO] [stdout]     |
[INFO] [stdout] 198 |             ExpressionKind::PrefixExpression(ref t, ref o, ref e) => {
[INFO] [stdout]     |                                                  ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:208:49
[INFO] [stdout]     |
[INFO] [stdout] 208 |             ExpressionKind::InfixExpression(ref t, ref l, ref o, ref r) => {
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:226:49
[INFO] [stdout]     |
[INFO] [stdout] 226 |             ExpressionKind::FunctionLiteral(ref t, ref b, ref ids) => {
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:229:38
[INFO] [stdout]     |
[INFO] [stdout] 229 |             ExpressionKind::Call(ref t, ref f, ref a) => {
[INFO] [stdout]     |                                      ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:242:47
[INFO] [stdout]     |
[INFO] [stdout] 242 |             ExpressionKind::StringLiteral(ref t, ref v) => {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:245:46
[INFO] [stdout]     |
[INFO] [stdout] 245 |             ExpressionKind::ArrayLiteral(ref t, ref e) => {
[INFO] [stdout]     |                                              ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:253:49
[INFO] [stdout]     |
[INFO] [stdout] 253 |             ExpressionKind::IndexExpression(ref t, ref l, ref idx) => {
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:266:45
[INFO] [stdout]     |
[INFO] [stdout] 266 |             ExpressionKind::HashLiteral(ref t, ref m) => {
[INFO] [stdout]     |                                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:266:52
[INFO] [stdout]     |
[INFO] [stdout] 266 |             ExpressionKind::HashLiteral(ref t, ref m) => {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:269:39
[INFO] [stdout]     |
[INFO] [stdout] 269 |             ExpressionKind::While(ref t, ref c, ref b) => {
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:290:38
[INFO] [stdout]     |
[INFO] [stdout] 290 |             ObjectType::Function(ref a, ref b, ref e) => {
[INFO] [stdout]     |                                      ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:290:52
[INFO] [stdout]     |
[INFO] [stdout] 290 |             ObjectType::Function(ref a, ref b, ref e) => {
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:306:45
[INFO] [stdout]     |
[INFO] [stdout] 306 |             ObjectType::Function(ref a, ref b, ref e) => {
[INFO] [stdout]     |                                             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:307:21
[INFO] [stdout]     |
[INFO] [stdout] 307 |                 let mut env = Arc::new(RefCell::new(Environment::new_enclosed(Some(e.clone()))));
[INFO] [stdout]     |                     ----^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:336:45
[INFO] [stdout]     |
[INFO] [stdout] 336 |             ExpressionKind::HashLiteral(ref t, ref m) => {
[INFO] [stdout]     |                                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:379:35
[INFO] [stdout]     |
[INFO] [stdout] 379 |             ObjectType::Array(ref e) => {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:468:36
[INFO] [stdout]     |
[INFO] [stdout] 468 |             ExpressionKind::If(ref t, ref c, ref cs, ref alt) => {
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:618:93
[INFO] [stdout]     |
[INFO] [stdout] 618 |     fn eval_integer_infix_expression(operator: String, left: ObjectType, right: ObjectType, env: &Arc<RefCell<Environment>>) -> ObjectType {
[INFO] [stdout]     |                                                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nt`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:676:36
[INFO] [stdout]     |
[INFO] [stdout] 676 |             ObjectType::Number(ref nt, ref i) => {
[INFO] [stdout]     |                                    ^^ help: if this is intentional, prefix it with an underscore: `_nt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:674:65
[INFO] [stdout]     |
[INFO] [stdout] 674 |     fn eval_minus_prefix_operator_expression(right: ObjectType, env: &Arc<RefCell<Environment>>) -> ObjectType {
[INFO] [stdout]     |                                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:687:57
[INFO] [stdout]     |
[INFO] [stdout] 687 |     fn eval_bang_operator_expression(right: ObjectType, env: &Arc<RefCell<Environment>>) -> ObjectType {
[INFO] [stdout]     |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> monkey_lib/src/interpreter/environment.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut obj = self.store.get(&name);
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `length`
[INFO] [stdout]    --> monkey_lib/src/interpreter/builtins.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 |                         let length = a.len();
[INFO] [stdout]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]    --> monkey_lib/src/interpreter/builtins.rs:182:34
[INFO] [stdout]     |
[INFO] [stdout] 182 |             BuiltInKind::Len(ref o) => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes`
[INFO] [stdout]   --> monkey_lib/src/lib.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub extern fn evaluate_input(bytes: *const u8, len: size_t)  {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]   --> monkey_lib/src/lib.rs:12:48
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub extern fn evaluate_input(bytes: *const u8, len: size_t)  {
[INFO] [stdout]    |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `nodeKind` is never read
[INFO] [stdout]   --> monkey_lib/src/interpreter/ast.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Node {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 17 |     nodeKind: NodeType
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `prefix_parse_fns` and `infix_parse_fns` are never read
[INFO] [stdout]   --> monkey_lib/src/interpreter/parser.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct Parser {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     prefix_parse_fns: HashMap<usize, PrefixFn>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     infix_parse_fns: HashMap<usize, InfixFn>
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `register_prefix`, `register_infix`, and `parse_call_arguments` are never used
[INFO] [stdout]    --> monkey_lib/src/interpreter/parser.rs:71:8
[INFO] [stdout]     |
[INFO] [stdout] 50  | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71  |     fn register_prefix(&mut self, token_id: usize, prefix: PrefixFn) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75  |     fn register_infix(&mut self, token_id: usize, infix: InfixFn) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     fn parse_call_arguments(&mut self) -> Vec<Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> monkey_lib/src/interpreter/mod.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     write!(stdout, "Whoops! We ran into some monkey business here!\n");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> monkey_lib/src/interpreter/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     write!(stdout, " parse errors: \n");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> monkey_lib/src/interpreter/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         write!(stdout, "\t{}\n}}", e);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> monkey_lib/src/interpreter/repl.rs:57:22
[INFO] [stdout]    |
[INFO] [stdout] 57 |                      readline::add_history(string.as_str());
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 57 |                      let _ = readline::add_history(string.as_str());
[INFO] [stdout]    |                      +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> monkey_lib/src/interpreter/repl.rs:79:25
[INFO] [stdout]    |
[INFO] [stdout] 79 |                         write!(stdout, "{}", evaluated);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> monkey_lib/src/interpreter/repl.rs:80:25
[INFO] [stdout]    |
[INFO] [stdout] 80 |                         write!(stdout, "\n");
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 |                      readline::add_history(string.as_str());
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 101 |                      let _ = readline::add_history(string.as_str());
[INFO] [stdout]     |                      +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:114:25
[INFO] [stdout]     |
[INFO] [stdout] 114 |                         write!(stdout, "{}", last_good_result);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:115:25
[INFO] [stdout]     |
[INFO] [stdout] 115 |                         write!(stdout, "\n");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 123 |                         write!(stdout, "{}", last_good_result);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:124:25
[INFO] [stdout]     |
[INFO] [stdout] 124 |                         write!(stdout, "\n");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:127:25
[INFO] [stdout]     |
[INFO] [stdout] 127 |                         write!(stdout, "{}", last_good_result);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:128:25
[INFO] [stdout]     |
[INFO] [stdout] 128 |                         write!(stdout, "\n");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 |                         write!(stdout, "{}", evaluated);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:134:25
[INFO] [stdout]     |
[INFO] [stdout] 134 |                         write!(stdout, "\n");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         write!(stdout, "{}", MONKEY_FACE);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |         write!(stdout, "Whoops! We ran into some monkey business here!\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         write!(stdout, " parse errors: \n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/repl.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |             write!(stdout, "\t{}\n}}", e);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `nodeKind` should have a snake case name
[INFO] [stdout]   --> monkey_lib/src/interpreter/ast.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     nodeKind: NodeType
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `node_kind`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `stmtKind` should have a snake case name
[INFO] [stdout]   --> monkey_lib/src/interpreter/ast.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub stmtKind: StatementKind
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `stmt_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `exprKind` should have a snake case name
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub exprKind: ExpressionKind
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `expr_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `must_use` that must be used
[INFO] [stdout]    --> monkey_lib/src/interpreter/ast.rs:175:17
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 format!("if condition");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `stmtStr` should have a snake case name
[INFO] [stdout]   --> monkey_lib/src/interpreter/program.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |             let stmtStr = format!("{}", s.stmtKind);
[INFO] [stdout]    |                 ^^^^^^^ help: convert the identifier to snake case: `stmt_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Nonde` should have a snake case name
[INFO] [stdout]    --> monkey_lib/src/interpreter/parser.rs:549:13
[INFO] [stdout]     |
[INFO] [stdout] 549 |             Nonde => Expression::default()
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `nonde`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `checkToken` should have a snake case name
[INFO] [stdout]    --> monkey_lib/src/interpreter/parser.rs:770:13
[INFO] [stdout]     |
[INFO] [stdout] 770 |         let checkToken = t.clone();
[INFO] [stdout]     |             ^^^^^^^^^^ help: convert the identifier to snake case: `check_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:407:36
[INFO] [stdout]     |
[INFO] [stdout] 407 | ...                   if val < 0 || val > max {
[INFO] [stdout]     |                          ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `leftVal` should have a snake case name
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:572:13
[INFO] [stdout]     |
[INFO] [stdout] 572 |         let leftVal = Evaluator::get_string_value(left);
[INFO] [stdout]     |             ^^^^^^^ help: convert the identifier to snake case: `left_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `rightVal` should have a snake case name
[INFO] [stdout]    --> monkey_lib/src/interpreter/evaluator.rs:573:13
[INFO] [stdout]     |
[INFO] [stdout] 573 |         let rightVal = Evaluator::get_string_value(right);
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `right_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking monkey_interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.61s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0, clap v2.20.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "eb4acfc6006c70bca23b78fc61369493d8f2c1fe683b58b843d06cb3d1d81cd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eb4acfc6006c70bca23b78fc61369493d8f2c1fe683b58b843d06cb3d1d81cd5", kill_on_drop: false }`
[INFO] [stdout] eb4acfc6006c70bca23b78fc61369493d8f2c1fe683b58b843d06cb3d1d81cd5
