[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 try#8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 for pr-82565 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonnyWalker81%2Fmonkey_interpreter" "/workspace/builds/worker-8/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/JonnyWalker81/monkey_interpreter on toolchain 8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "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-8/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: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded maplit v0.1.4 [INFO] [stderr] Downloaded unicode-segmentation v1.0.1 [INFO] [stderr] Downloaded term_size v0.2.1 [INFO] [stderr] Downloaded readline-sys v0.0.12 [INFO] [stderr] Downloaded readline v0.0.13 [INFO] [stderr] Downloaded float-cmp v0.2.3 [INFO] [stderr] Downloaded clap v2.20.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 8d78679c7ea8520a32f9be72bc27e9dc7a8d5039eb366edd2c838b1fd7e6940a [INFO] running `Command { std: "docker" "start" "-a" "8d78679c7ea8520a32f9be72bc27e9dc7a8d5039eb366edd2c838b1fd7e6940a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8d78679c7ea8520a32f9be72bc27e9dc7a8d5039eb366edd2c838b1fd7e6940a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d78679c7ea8520a32f9be72bc27e9dc7a8d5039eb366edd2c838b1fd7e6940a", kill_on_drop: false }` [INFO] [stdout] 8d78679c7ea8520a32f9be72bc27e9dc7a8d5039eb366edd2c838b1fd7e6940a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e2c431b74e9ab00c70e7afe1d87049fd1a18e6944726c2eb9c474435008ea75d [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "e2c431b74e9ab00c70e7afe1d87049fd1a18e6944726c2eb9c474435008ea75d", kill_on_drop: false }` [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 strsim v0.6.0 [INFO] [stderr] Checking seahash v3.0.5 [INFO] [stderr] Checking maplit v0.1.4 [INFO] [stderr] Checking vec_map v0.6.0 [INFO] [stderr] Checking bitflags v0.7.0 [INFO] [stderr] Checking unicode-width v0.1.4 [INFO] [stderr] Checking ansi_term v0.9.0 [INFO] [stderr] Checking term_size v0.2.1 [INFO] [stderr] Checking readline v0.0.13 [INFO] [stderr] Checking clap v2.20.0 [INFO] [stderr] Checking float-cmp v0.2.3 [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] = 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] [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] [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`, `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: use of deprecated struct `std::hash::SipHasher`: use `std::collections::hash_map::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: 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: `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] = note: `#[warn(unused_variables)]` on by default [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: unused variable: `nt` [INFO] [stdout] --> monkey_lib/src/interpreter/token.rs:62:27 [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] [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: 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: unused variable: `val` [INFO] [stdout] --> monkey_lib/src/interpreter/ast.rs:142:19 [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:35 [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:43 [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:46 [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:45 [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:37 [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:32 [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:34 [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:43 [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:42 [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:45 [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:41 [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:35 [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:50 [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:43 [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:22 [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:48 [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:44 [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:41 [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:44 [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:44 [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:35 [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:35 [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:43 [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:37 [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:46 [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:45 [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:45 [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:34 [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:43 [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:42 [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:45 [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:41 [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:48 [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:35 [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:34 [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:48 [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:41 [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: unused variable: `t` [INFO] [stdout] --> monkey_lib/src/interpreter/evaluator.rs:336:41 [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:31 [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:32 [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>) -> 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:32 [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>) -> 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>) -> ObjectType { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_env` [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:30 [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: 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: 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: 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: 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: field is never read: `nodeKind` [INFO] [stdout] --> monkey_lib/src/interpreter/ast.rs:17:5 [INFO] [stdout] | [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: field is never read: `prefix_parse_fns` [INFO] [stdout] --> monkey_lib/src/interpreter/parser.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | prefix_parse_fns: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `infix_parse_fns` [INFO] [stdout] --> monkey_lib/src/interpreter/parser.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | infix_parse_fns: HashMap [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `register_prefix` [INFO] [stdout] --> monkey_lib/src/interpreter/parser.rs:71:8 [INFO] [stdout] | [INFO] [stdout] 71 | fn register_prefix(&mut self, token_id: usize, prefix: PrefixFn) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `register_infix` [INFO] [stdout] --> monkey_lib/src/interpreter/parser.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | fn register_infix(&mut self, token_id: usize, infix: InfixFn) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `parse_call_arguments` [INFO] [stdout] --> monkey_lib/src/interpreter/parser.rs:695:8 [INFO] [stdout] | [INFO] [stdout] 695 | fn parse_call_arguments(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused attribute [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: 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: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in a macro (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 a macro (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 a macro (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] [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 a macro (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 a macro (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] [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 a macro (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 a macro (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 a macro (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 a macro (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 a macro (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 a macro (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 a macro (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 a macro (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 a macro (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 a macro (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 a macro (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 a macro (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: 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] [stdout] warning: 132 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking monkey_interpreter v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.26s [INFO] running `Command { std: "docker" "inspect" "e2c431b74e9ab00c70e7afe1d87049fd1a18e6944726c2eb9c474435008ea75d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e2c431b74e9ab00c70e7afe1d87049fd1a18e6944726c2eb9c474435008ea75d", kill_on_drop: false }` [INFO] [stdout] e2c431b74e9ab00c70e7afe1d87049fd1a18e6944726c2eb9c474435008ea75d