[INFO] cloning repository https://github.com/magurotuna/rust-monkey [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/magurotuna/rust-monkey" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmagurotuna%2Frust-monkey"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmagurotuna%2Frust-monkey'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 53e6ad38d3aeec39091807b4de5084f2c84d6507 [INFO] checking magurotuna/rust-monkey against try#e4dba30b9b475d8750370c4dfb49b6541990904d for pr-71393 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmagurotuna%2Frust-monkey" "/workspace/builds/worker-12/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-12/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/magurotuna/rust-monkey on toolchain e4dba30b9b475d8750370c4dfb49b6541990904d [INFO] running `"/workspace/cargo-home/bin/cargo" "+e4dba30b9b475d8750370c4dfb49b6541990904d" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/magurotuna/rust-monkey [INFO] finished tweaking git repo https://github.com/magurotuna/rust-monkey [INFO] tweaked toml for git repo https://github.com/magurotuna/rust-monkey written to /workspace/builds/worker-12/source/Cargo.toml [INFO] crate git repo https://github.com/magurotuna/rust-monkey already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+e4dba30b9b475d8750370c4dfb49b6541990904d" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+e4dba30b9b475d8750370c4dfb49b6541990904d" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] b9aeb3986cb26b096dea3b2793683c3787d53f9921ceb44802eb01e4eac5eab2 [INFO] running `"docker" "start" "-a" "b9aeb3986cb26b096dea3b2793683c3787d53f9921ceb44802eb01e4eac5eab2"` [INFO] [stderr] Compiling syn v1.0.11 [INFO] [stderr] Compiling anyhow v1.0.26 [INFO] [stderr] Checking whoami v0.7.0 [INFO] [stderr] Compiling proc-macro2 v1.0.6 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Compiling thiserror-impl v1.0.9 [INFO] [stderr] Compiling derive-new v0.5.8 [INFO] [stderr] Checking thiserror v1.0.9 [INFO] [stderr] Checking rust-monkey v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BlockStatement`, `FunctionParameters` [INFO] [stderr] --> src/evaluator.rs:1:18 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast::{BlockStatement, Expression, FunctionParameters, Identifier, Node, Statement}; [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BlockStatement`, `FunctionParameters` [INFO] [stderr] --> src/evaluator.rs:1:18 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast::{BlockStatement, Expression, FunctionParameters, Identifier, Node, Statement}; [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ident` [INFO] [stderr] --> src/evaluator.rs:17:35 [INFO] [stderr] | [INFO] [stderr] 17 | Statement::Let(Identifier(ident), expr) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/evaluator.rs:17:43 [INFO] [stderr] | [INFO] [stderr] 17 | Statement::Let(Identifier(ident), expr) => todo!(), [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ident` [INFO] [stderr] --> src/evaluator.rs:25:43 [INFO] [stderr] | [INFO] [stderr] 25 | Expression::Identifier(Identifier(ident)) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident` [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Expression` [INFO] [stderr] --> src/ast.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | Expression(Expression), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eval` [INFO] [stderr] --> src/evaluator.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn eval(node: Node) -> Object { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eval_statement` [INFO] [stderr] --> src/evaluator.rs:15:4 [INFO] [stderr] | [INFO] [stderr] 15 | fn eval_statement(statement: &Statement) -> Object { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eval_expression` [INFO] [stderr] --> src/evaluator.rs:23:4 [INFO] [stderr] | [INFO] [stderr] 23 | fn eval_expression(expression: &Expression) -> Object { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eval_prefix_expression` [INFO] [stderr] --> src/evaluator.rs:64:4 [INFO] [stderr] | [INFO] [stderr] 64 | fn eval_prefix_expression(operator: &str, right: Object) -> Object { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eval_bang_operator_expression` [INFO] [stderr] --> src/evaluator.rs:72:4 [INFO] [stderr] | [INFO] [stderr] 72 | fn eval_bang_operator_expression(right: Object) -> Object { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eval_minus_operator_expression` [INFO] [stderr] --> src/evaluator.rs:81:4 [INFO] [stderr] | [INFO] [stderr] 81 | fn eval_minus_operator_expression(right: Object) -> Object { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eval_infix_expression` [INFO] [stderr] --> src/evaluator.rs:88:4 [INFO] [stderr] | [INFO] [stderr] 88 | fn eval_infix_expression(operator: &str, left: Object, right: Object) -> Object { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eval_integer_infix_expression` [INFO] [stderr] --> src/evaluator.rs:100:4 [INFO] [stderr] | [INFO] [stderr] 100 | fn eval_integer_infix_expression(operator: &str, left_val: i64, right_val: i64) -> Object { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `eval_boolean_infix_expression` [INFO] [stderr] --> src/evaluator.rs:114:4 [INFO] [stderr] | [INFO] [stderr] 114 | fn eval_boolean_infix_expression(operator: &str, left_val: bool, right_val: bool) -> Object { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Integer` [INFO] [stderr] --> src/object.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | Integer(i64), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Boolean` [INFO] [stderr] --> src/object.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | Boolean(bool), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Null` [INFO] [stderr] --> src/object.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | Null, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `ObjectType` [INFO] [stderr] --> src/object.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | type ObjectType = &'static str; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_type` [INFO] [stderr] --> src/object.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn get_type(&self) -> ObjectType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_integer` [INFO] [stderr] --> src/object.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn is_integer(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 21 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ident` [INFO] [stderr] --> src/evaluator.rs:17:35 [INFO] [stderr] | [INFO] [stderr] 17 | Statement::Let(Identifier(ident), expr) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `expr` [INFO] [stderr] --> src/evaluator.rs:17:43 [INFO] [stderr] | [INFO] [stderr] 17 | Statement::Let(Identifier(ident), expr) => todo!(), [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_expr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ident` [INFO] [stderr] --> src/evaluator.rs:25:43 [INFO] [stderr] | [INFO] [stderr] 25 | Expression::Identifier(Identifier(ident)) => todo!(), [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:429:17 [INFO] [stderr] | [INFO] [stderr] 429 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:459:13 [INFO] [stderr] | [INFO] [stderr] 459 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:513:17 [INFO] [stderr] | [INFO] [stderr] 513 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:538:13 [INFO] [stderr] | [INFO] [stderr] 538 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:566:13 [INFO] [stderr] | [INFO] [stderr] 566 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:602:17 [INFO] [stderr] | [INFO] [stderr] 602 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:641:17 [INFO] [stderr] | [INFO] [stderr] 641 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:710:17 [INFO] [stderr] | [INFO] [stderr] 710 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:778:17 [INFO] [stderr] | [INFO] [stderr] 778 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:793:13 [INFO] [stderr] | [INFO] [stderr] 793 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:853:17 [INFO] [stderr] | [INFO] [stderr] 853 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:887:13 [INFO] [stderr] | [INFO] [stderr] 887 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:921:13 [INFO] [stderr] | [INFO] [stderr] 921 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser.rs:968:13 [INFO] [stderr] | [INFO] [stderr] 968 | let mut parser = Parser::new(lexer); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Expression` [INFO] [stderr] --> src/ast.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | Expression(Expression), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `ObjectType` [INFO] [stderr] --> src/object.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | type ObjectType = &'static str; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_type` [INFO] [stderr] --> src/object.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn get_type(&self) -> ObjectType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_integer` [INFO] [stderr] --> src/object.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn is_integer(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_typename` [INFO] [stderr] --> src/parser.rs:1095:8 [INFO] [stderr] | [INFO] [stderr] 1095 | fn print_typename(_: T) -> &'static str { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> src/parser.rs:477:38 [INFO] [stderr] | [INFO] [stderr] 477 | .zip(expected_errors.into_iter()) [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(array_into_iter)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] [INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added. [INFO] [stderr] --> src/parser.rs:708:39 [INFO] [stderr] | [INFO] [stderr] 708 | for infix_test in infix_tests.into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter` [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #66145 [INFO] [stderr] [INFO] [stderr] warning: 25 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 19.63s [INFO] running `"docker" "inspect" "b9aeb3986cb26b096dea3b2793683c3787d53f9921ceb44802eb01e4eac5eab2"` [INFO] running `"docker" "rm" "-f" "b9aeb3986cb26b096dea3b2793683c3787d53f9921ceb44802eb01e4eac5eab2"` [INFO] [stdout] b9aeb3986cb26b096dea3b2793683c3787d53f9921ceb44802eb01e4eac5eab2