[INFO] cloning repository https://github.com/dust347/monkey_rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dust347/monkey_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdust347%2Fmonkey_rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdust347%2Fmonkey_rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7777d6669cd4091edf32ecd8545a18b7b623c602 [INFO] testing dust347/monkey_rust against 1.86.0 for beta-1.87-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdust347%2Fmonkey_rust" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dust347/monkey_rust on toolchain 1.86.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.86.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/dust347/monkey_rust [INFO] finished tweaking git repo https://github.com/dust347/monkey_rust [INFO] tweaked toml for git repo https://github.com/dust347/monkey_rust written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/dust347/monkey_rust 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" "+1.86.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+1.86.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 765104e41708b940167b92a7de9288b34647193a25ed30c1e71688a1578aa7e5 [INFO] running `Command { std: "docker" "start" "-a" "765104e41708b940167b92a7de9288b34647193a25ed30c1e71688a1578aa7e5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "765104e41708b940167b92a7de9288b34647193a25ed30c1e71688a1578aa7e5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "765104e41708b940167b92a7de9288b34647193a25ed30c1e71688a1578aa7e5", kill_on_drop: false }` [INFO] [stdout] 765104e41708b940167b92a7de9288b34647193a25ed30c1e71688a1578aa7e5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+1.86.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5c5b35dfefb8ceff206670f800b614b428f6f683cde9c079895f6da17b5cf6d9 [INFO] running `Command { std: "docker" "start" "-a" "5c5b35dfefb8ceff206670f800b614b428f6f683cde9c079895f6da17b5cf6d9", kill_on_drop: false }` [INFO] [stderr] Compiling monkey v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/ast/mod.rs:432:9 [INFO] [stdout] | [INFO] [stdout] 432 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::token::TokenType` [INFO] [stdout] --> src/ast/mod.rs:433:9 [INFO] [stdout] | [INFO] [stdout] 433 | use crate::token::TokenType; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `f64::NAN` and `fmt::format` [INFO] [stdout] --> src/parser/mod.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, f64::NAN, fmt::format}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `prefix_parse_fn` should have an upper camel case name [INFO] [stdout] --> src/parser/mod.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type prefix_parse_fn = fn(&mut Parser) -> Option>; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrefixParseFn` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `infix_parse_fn` should have an upper camel case name [INFO] [stdout] --> src/parser/mod.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type infix_parse_fn = fn(&mut Parser, Option>) -> Option>; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InfixParseFn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/parser/mod.rs:48:44 [INFO] [stdout] | [INFO] [stdout] 47 | impl<'a> Parser<'a> { [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 48 | pub fn new(l: &'a mut lexer::Lexer) -> Parser { [INFO] [stdout] | ^^^^^^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ast::Program` and `lexer::Lexer` [INFO] [stdout] --> src/parser/mod.rs:470:16 [INFO] [stdout] | [INFO] [stdout] 470 | use self::{ast::Program, lexer::Lexer}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `new_fn` should have an upper camel case name [INFO] [stdout] --> src/parser/mod.rs:555:10 [INFO] [stdout] | [INFO] [stdout] 555 | type new_fn = fn(i32, i32) -> i32; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `NewFn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Parser` [INFO] [stdout] --> src/repl/mod.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::{self, Parser}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `token::TokenType` [INFO] [stdout] --> src/repl/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | token::TokenType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `statement_node` is never used [INFO] [stdout] --> src/ast/mod.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub trait Statement: Node { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] 8 | fn statement_node(&self); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `expression_node` is never used [INFO] [stdout] --> src/ast/mod.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait Expression: Node { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] 12 | fn expression_node(&self); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/ast/mod.rs:296:9 [INFO] [stdout] | [INFO] [stdout] 294 | pub struct Boolean { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 295 | pub token: Token, [INFO] [stdout] 296 | pub value: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_parse_errors` is never used [INFO] [stdout] --> src/parser/mod.rs:527:8 [INFO] [stdout] | [INFO] [stdout] 527 | fn check_parse_errors(p: &Parser) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/parser/mod.rs:551:8 [INFO] [stdout] | [INFO] [stdout] 551 | fn add(i: i32, j: i32) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `new_fn` is never used [INFO] [stdout] --> src/parser/mod.rs:555:10 [INFO] [stdout] | [INFO] [stdout] 555 | type new_fn = fn(i32, i32) -> i32; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Expected` is never constructed [INFO] [stdout] --> src/parser/mod.rs:569:12 [INFO] [stdout] | [INFO] [stdout] 569 | struct Expected<'a> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/parser/mod.rs:575:12 [INFO] [stdout] | [INFO] [stdout] 574 | impl<'a> Expected<'a> { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 575 | fn new(input: &'a str, expected: &'a str) -> Expected<'a> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `leftExp` should have a snake case name [INFO] [stdout] --> src/parser/mod.rs:166:25 [INFO] [stdout] | [INFO] [stdout] 166 | let mut leftExp = prefix(self); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `left_exp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.41s [INFO] running `Command { std: "docker" "inspect" "5c5b35dfefb8ceff206670f800b614b428f6f683cde9c079895f6da17b5cf6d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c5b35dfefb8ceff206670f800b614b428f6f683cde9c079895f6da17b5cf6d9", kill_on_drop: false }` [INFO] [stdout] 5c5b35dfefb8ceff206670f800b614b428f6f683cde9c079895f6da17b5cf6d9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+1.86.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ad7787d0f941cb5dc5a49a764423630dcb4d89e5f738637e67b65a4c7124173d [INFO] running `Command { std: "docker" "start" "-a" "ad7787d0f941cb5dc5a49a764423630dcb4d89e5f738637e67b65a4c7124173d", kill_on_drop: false }` [INFO] [stderr] Compiling monkey v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `f64::NAN` and `fmt::format` [INFO] [stdout] --> src/parser/mod.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, f64::NAN, fmt::format}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `prefix_parse_fn` should have an upper camel case name [INFO] [stdout] --> src/parser/mod.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type prefix_parse_fn = fn(&mut Parser) -> Option>; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrefixParseFn` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `infix_parse_fn` should have an upper camel case name [INFO] [stdout] --> src/parser/mod.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | type infix_parse_fn = fn(&mut Parser, Option>) -> Option>; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InfixParseFn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/parser/mod.rs:48:44 [INFO] [stdout] | [INFO] [stdout] 47 | impl<'a> Parser<'a> { [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 48 | pub fn new(l: &'a mut lexer::Lexer) -> Parser { [INFO] [stdout] | ^^^^^^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ast::Program` [INFO] [stdout] --> src/parser/mod.rs:470:16 [INFO] [stdout] | [INFO] [stdout] 470 | use self::{ast::Program, lexer::Lexer}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `new_fn` should have an upper camel case name [INFO] [stdout] --> src/parser/mod.rs:555:10 [INFO] [stdout] | [INFO] [stdout] 555 | type new_fn = fn(i32, i32) -> i32; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `NewFn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Parser` [INFO] [stdout] --> src/repl/mod.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::{self, Parser}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `token::TokenType` [INFO] [stdout] --> src/repl/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | token::TokenType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/mod.rs:484:13 [INFO] [stdout] | [INFO] [stdout] 484 | let mut program = p.parse_program(); [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: method `statement_node` is never used [INFO] [stdout] --> src/ast/mod.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub trait Statement: Node { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] 8 | fn statement_node(&self); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `expression_node` is never used [INFO] [stdout] --> src/ast/mod.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait Expression: Node { [INFO] [stdout] | ---------- method in this trait [INFO] [stdout] 12 | fn expression_node(&self); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/ast/mod.rs:296:9 [INFO] [stdout] | [INFO] [stdout] 294 | pub struct Boolean { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 295 | pub token: Token, [INFO] [stdout] 296 | pub value: bool, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `new_fn` is never used [INFO] [stdout] --> src/parser/mod.rs:555:10 [INFO] [stdout] | [INFO] [stdout] 555 | type new_fn = fn(i32, i32) -> i32; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `leftExp` should have a snake case name [INFO] [stdout] --> src/parser/mod.rs:166:25 [INFO] [stdout] | [INFO] [stdout] 166 | let mut leftExp = prefix(self); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `left_exp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.69s [INFO] running `Command { std: "docker" "inspect" "ad7787d0f941cb5dc5a49a764423630dcb4d89e5f738637e67b65a4c7124173d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ad7787d0f941cb5dc5a49a764423630dcb4d89e5f738637e67b65a4c7124173d", kill_on_drop: false }` [INFO] [stdout] ad7787d0f941cb5dc5a49a764423630dcb4d89e5f738637e67b65a4c7124173d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+1.86.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3cf2caa33c0d1e18a588ff48a14ac9f3ea91208aa2222326f00aa00826a1d5e0 [INFO] running `Command { std: "docker" "start" "-a" "3cf2caa33c0d1e18a588ff48a14ac9f3ea91208aa2222326f00aa00826a1d5e0", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `f64::NAN` and `fmt::format` [INFO] [stderr] --> src/parser/mod.rs:1:33 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{collections::HashMap, f64::NAN, fmt::format}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type `prefix_parse_fn` should have an upper camel case name [INFO] [stderr] --> src/parser/mod.rs:9:6 [INFO] [stderr] | [INFO] [stderr] 9 | type prefix_parse_fn = fn(&mut Parser) -> Option>; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `PrefixParseFn` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type `infix_parse_fn` should have an upper camel case name [INFO] [stderr] --> src/parser/mod.rs:10:6 [INFO] [stderr] | [INFO] [stderr] 10 | type infix_parse_fn = fn(&mut Parser, Option>) -> Option>; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InfixParseFn` [INFO] [stderr] [INFO] [stderr] warning: elided lifetime has a name [INFO] [stderr] --> src/parser/mod.rs:48:44 [INFO] [stderr] | [INFO] [stderr] 47 | impl<'a> Parser<'a> { [INFO] [stderr] | -- lifetime `'a` declared here [INFO] [stderr] 48 | pub fn new(l: &'a mut lexer::Lexer) -> Parser { [INFO] [stderr] | ^^^^^^ this elided lifetime gets resolved as `'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `ast::Program` [INFO] [stderr] --> src/parser/mod.rs:470:16 [INFO] [stderr] | [INFO] [stderr] 470 | use self::{ast::Program, lexer::Lexer}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `new_fn` should have an upper camel case name [INFO] [stderr] --> src/parser/mod.rs:555:10 [INFO] [stderr] | [INFO] [stderr] 555 | type new_fn = fn(i32, i32) -> i32; [INFO] [stderr] | ^^^^^^ help: convert the identifier to upper camel case: `NewFn` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Parser` [INFO] [stderr] --> src/repl/mod.rs:3:27 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::parser::{self, Parser}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `token::TokenType` [INFO] [stderr] --> src/repl/mod.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | token::TokenType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/parser/mod.rs:484:13 [INFO] [stderr] | [INFO] [stderr] 484 | let mut program = p.parse_program(); [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: method `statement_node` is never used [INFO] [stderr] --> src/ast/mod.rs:8:8 [INFO] [stderr] | [INFO] [stderr] 7 | pub trait Statement: Node { [INFO] [stderr] | --------- method in this trait [INFO] [stderr] 8 | fn statement_node(&self); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method `expression_node` is never used [INFO] [stderr] --> src/ast/mod.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 11 | pub trait Expression: Node { [INFO] [stderr] | ---------- method in this trait [INFO] [stderr] 12 | fn expression_node(&self); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `value` is never read [INFO] [stderr] --> src/ast/mod.rs:296:9 [INFO] [stderr] | [INFO] [stderr] 294 | pub struct Boolean { [INFO] [stderr] | ------- field in this struct [INFO] [stderr] 295 | pub token: Token, [INFO] [stderr] 296 | pub value: bool, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `new_fn` is never used [INFO] [stderr] --> src/parser/mod.rs:555:10 [INFO] [stderr] | [INFO] [stderr] 555 | type new_fn = fn(i32, i32) -> i32; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `leftExp` should have a snake case name [INFO] [stderr] --> src/parser/mod.rs:166:25 [INFO] [stderr] | [INFO] [stderr] 166 | let mut leftExp = prefix(self); [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `left_exp` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `monkey` (bin "monkey" test) generated 14 warnings (run `cargo fix --bin "monkey" --tests` to apply 5 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.01s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/monkey-7c025012d19f204b) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test ast::tests::test_to_string ... ok [INFO] [stdout] test lexer::tests::test_char ... ok [INFO] [stdout] test lexer::tests::test_read_identifier ... ok [INFO] [stdout] test parser::tests::test_fn ... ok [INFO] [stdout] test parser::tests::test_identifier_expression ... ok [INFO] [stdout] test lexer::tests::test_option ... ok [INFO] [stdout] test parser::tests::test_integer_literal_expression ... ok [INFO] [stdout] test parser::tests::test_ord ... ok [INFO] [stdout] test parser::tests::test_parsing_prefix_expression ... ok [INFO] [stdout] test token::tests::test_enum ... ok [INFO] [stdout] test parser::tests::test_operator_precedence_parsing ... ok [INFO] [stdout] test lexer::tests::test_next_token ... ok [INFO] [stdout] test parser::tests::test_let_statements ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- parser::tests::test_let_statements stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'parser::tests::test_let_statements' panicked at src/parser/mod.rs:485:9: [INFO] [stdout] assertion `left == right` failed [INFO] [stdout] left: 6 [INFO] [stdout] right: 3 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x627f604686d0 - std::backtrace_rs::backtrace::libunwind::trace::h2b8934d68a0c74cb [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x627f604686d0 - std::backtrace_rs::backtrace::trace_unsynchronized::h72d137991fa6eab8 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x627f604686d0 - std::sys::backtrace::_print_fmt::h3e831e32e6da920b [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x627f604686d0 - ::fmt::h6d42cc84fc840290 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x627f6048ecf3 - core::fmt::rt::Argument::fmt::h7239af9e2199f2a8 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/fmt/rt.rs:177:76 [INFO] [stdout] 5: 0x627f6048ecf3 - core::fmt::write::h5af61a909e3ec64d [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/fmt/mod.rs:1449:21 [INFO] [stdout] 6: 0x627f604657f3 - std::io::Write::write_fmt::h64baa9197d9a3b04 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/io/mod.rs:1890:15 [INFO] [stdout] 7: 0x627f60468522 - std::sys::backtrace::BacktraceLock::print::h555579e7396c26ac [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 8: 0x627f60469aff - std::panicking::default_hook::{{closure}}::h9128866118196224 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:298:22 [INFO] [stdout] 9: 0x627f60469918 - std::panicking::default_hook::h52e9e7314e0255f6 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:322:9 [INFO] [stdout] 10: 0x627f60433605 - as core::ops::function::Fn>::call::hb86f691850cc3c26 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1990:9 [INFO] [stdout] 11: 0x627f60433605 - test::test_main::{{closure}}::h903d8079e3c94d93 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/test/src/lib.rs:135:21 [INFO] [stdout] 12: 0x627f6046a573 - as core::ops::function::Fn>::call::h7c356b28a03897d7 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1990:9 [INFO] [stdout] 13: 0x627f6046a573 - std::panicking::rust_panic_with_hook::h541791bcc774ef34 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:839:13 [INFO] [stdout] 14: 0x627f6046a24a - std::panicking::begin_panic_handler::{{closure}}::h6479a2f0137c7d19 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:704:13 [INFO] [stdout] 15: 0x627f60468be9 - std::sys::backtrace::__rust_end_short_backtrace::ha04e7c0fc61ded91 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/backtrace.rs:168:18 [INFO] [stdout] 16: 0x627f60469edd - rust_begin_unwind [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:695:5 [INFO] [stdout] 17: 0x627f603d8cc0 - core::panicking::panic_fmt::h5764ee7030b7a73d [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panicking.rs:75:14 [INFO] [stdout] 18: 0x627f603d90ea - core::panicking::assert_failed_inner::h75e36b16d296c663 [INFO] [stdout] 19: 0x627f603d8f71 - core::panicking::assert_failed::h078dd15f75a47e13 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panicking.rs:380:5 [INFO] [stdout] 20: 0x627f603f8644 - monkey::parser::tests::test_let_statements::hc6973d90ded762bf [INFO] [stdout] at /opt/rustwide/workdir/src/parser/mod.rs:485:9 [INFO] [stdout] 21: 0x627f603f84c7 - monkey::parser::tests::test_let_statements::{{closure}}::h66c7eaf95f067e96 [INFO] [stdout] at /opt/rustwide/workdir/src/parser/mod.rs:475:29 [INFO] [stdout] 22: 0x627f603e7336 - core::ops::function::FnOnce::call_once::h82f69a8e62dee54f [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x627f60438d8b - core::ops::function::FnOnce::call_once::h1dfa20b1ec1f6e08 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x627f60438d8b - test::__rust_begin_short_backtrace::h7b10906492afc420 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/test/src/lib.rs:637:18 [INFO] [stdout] 25: 0x627f60437c78 - test::run_test_in_process::{{closure}}::h51c1c0d319f72c0a [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/test/src/lib.rs:660:60 [INFO] [stdout] 26: 0x627f60437c78 - as core::ops::function::FnOnce<()>>::call_once::h5fadb750f3dbe714 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 27: 0x627f60437c78 - std::panicking::try::do_call::h1ca5071cef82bb40 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:587:40 [INFO] [stdout] 28: 0x627f60437c78 - std::panicking::try::h6931de76fb9a61b1 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:550:19 [INFO] [stdout] 29: 0x627f60437c78 - std::panic::catch_unwind::h67fc9dccf413f4e5 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panic.rs:358:14 [INFO] [stdout] 30: 0x627f60437c78 - test::run_test_in_process::ha966dfbb1d048be5 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/test/src/lib.rs:660:27 [INFO] [stdout] 31: 0x627f60437c78 - test::run_test::{{closure}}::he209928ac5e8a3b8 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/test/src/lib.rs:581:43 [INFO] [stdout] 32: 0x627f603fbc05 - test::run_test::{{closure}}::h34c6289e0b5ed5a5 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/test/src/lib.rs:611:41 [INFO] [stdout] 33: 0x627f603fbc05 - std::sys::backtrace::__rust_begin_short_backtrace::h365aabf21799e6fc [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/backtrace.rs:152:18 [INFO] [stdout] 34: 0x627f603ff67a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h3d5e582cba74b1c3 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 35: 0x627f603ff67a - as core::ops::function::FnOnce<()>>::call_once::h1214c75c3f73f94f [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 36: 0x627f603ff67a - std::panicking::try::do_call::h73540336a45c0cec [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:587:40 [INFO] [stdout] 37: 0x627f603ff67a - std::panicking::try::h428956564307af63 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:550:19 [INFO] [stdout] 38: 0x627f603ff67a - std::panic::catch_unwind::h1a53a6ea2f2041e3 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panic.rs:358:14 [INFO] [stdout] 39: 0x627f603ff67a - std::thread::Builder::spawn_unchecked_::{{closure}}::hac66cbb88d807e14 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 40: 0x627f603ff67a - core::ops::function::FnOnce::call_once{{vtable.shim}}::had7e2d02878d3212 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 41: 0x627f6046e2bb - as core::ops::function::FnOnce>::call_once::h292d1663b0785fda [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1976:9 [INFO] [stdout] 42: 0x627f6046e2bb - as core::ops::function::FnOnce>::call_once::h9d4af7b531852d72 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1976:9 [INFO] [stdout] 43: 0x627f6046e2bb - std::sys::pal::unix::thread::Thread::new::thread_start::hcc5ed016d554f327 [INFO] [stdout] at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/pal/unix/thread.rs:106:17 [INFO] [stderr] error: test failed, to rerun pass `--bin monkey` [INFO] [stdout] 44: 0x7b9a1dd5eaa4 - [INFO] [stdout] 45: 0x7b9a1ddeba34 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] parser::tests::test_let_statements [INFO] [stdout] [INFO] [stdout] test result: FAILED. 12 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "3cf2caa33c0d1e18a588ff48a14ac9f3ea91208aa2222326f00aa00826a1d5e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3cf2caa33c0d1e18a588ff48a14ac9f3ea91208aa2222326f00aa00826a1d5e0", kill_on_drop: false }` [INFO] [stdout] 3cf2caa33c0d1e18a588ff48a14ac9f3ea91208aa2222326f00aa00826a1d5e0