[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] checking dust347/monkey_rust against master#a5db378dc14a40dd1580c27fb8362156446382c3 for pr-136490 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdust347%2Fmonkey_rust" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dust347/monkey_rust on toolchain a5db378dc14a40dd1580c27fb8362156446382c3 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5db378dc14a40dd1580c27fb8362156446382c3" "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-5-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" "+a5db378dc14a40dd1580c27fb8362156446382c3" "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-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+a5db378dc14a40dd1580c27fb8362156446382c3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 02d692dd432cc5c26fdaacfe15f0d6dde8360312b4f32cd1cbe72901101646ed [INFO] running `Command { std: "docker" "start" "-a" "02d692dd432cc5c26fdaacfe15f0d6dde8360312b4f32cd1cbe72901101646ed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "02d692dd432cc5c26fdaacfe15f0d6dde8360312b4f32cd1cbe72901101646ed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "02d692dd432cc5c26fdaacfe15f0d6dde8360312b4f32cd1cbe72901101646ed", kill_on_drop: false }` [INFO] [stdout] 02d692dd432cc5c26fdaacfe15f0d6dde8360312b4f32cd1cbe72901101646ed [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c80049f3b88b82089a44e0f06d0d6029d44b96b7257e55a1cd63dbc9f4c33334" "/opt/rustwide/cargo-home/bin/cargo" "+a5db378dc14a40dd1580c27fb8362156446382c3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5c31445b3081a9fc45f8b1c71e2335c5b008d1ba4592a63b4ebfc1964587605a [INFO] running `Command { std: "docker" "start" "-a" "5c31445b3081a9fc45f8b1c71e2335c5b008d1ba4592a63b4ebfc1964587605a", kill_on_drop: false }` [INFO] [stderr] Checking 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: 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: 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] [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 `dev` profile [unoptimized + debuginfo] target(s) in 0.43s [INFO] running `Command { std: "docker" "inspect" "5c31445b3081a9fc45f8b1c71e2335c5b008d1ba4592a63b4ebfc1964587605a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c31445b3081a9fc45f8b1c71e2335c5b008d1ba4592a63b4ebfc1964587605a", kill_on_drop: false }` [INFO] [stdout] 5c31445b3081a9fc45f8b1c71e2335c5b008d1ba4592a63b4ebfc1964587605a