[INFO] cloning repository https://github.com/rfaulhaber/monkey
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rfaulhaber/monkey" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frfaulhaber%2Fmonkey", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frfaulhaber%2Fmonkey'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2cd35643d05de28051122a6381c0cca70cf3427f
[INFO] checking rfaulhaber/monkey against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frfaulhaber%2Fmonkey" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rfaulhaber/monkey
[INFO] finished tweaking git repo https://github.com/rfaulhaber/monkey
[INFO] tweaked toml for git repo https://github.com/rfaulhaber/monkey written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rfaulhaber/monkey on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rfaulhaber/monkey 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v1.0.56
[INFO] [stderr]   Downloaded utf8parse v0.2.1
[INFO] [stderr]   Downloaded fd-lock v3.0.12
[INFO] [stderr]   Downloaded smallvec v1.10.0
[INFO] [stderr]   Downloaded is-terminal v0.4.7
[INFO] [stderr]   Downloaded anstyle-query v1.0.0
[INFO] [stderr]   Downloaded clap_lex v0.4.1
[INFO] [stderr]   Downloaded ctor v0.1.26
[INFO] [stderr]   Downloaded output_vt100 v0.1.3
[INFO] [stderr]   Downloaded colorchoice v1.0.0
[INFO] [stderr]   Downloaded anstyle v1.0.0
[INFO] [stderr]   Downloaded anstyle-wincon v1.0.1
[INFO] [stderr]   Downloaded anstyle-parse v0.2.0
[INFO] [stderr]   Downloaded anstream v0.3.1
[INFO] [stderr]   Downloaded clap_derive v4.2.0
[INFO] [stderr]   Downloaded yansi v0.5.1
[INFO] [stderr]   Downloaded clap v4.2.5
[INFO] [stderr]   Downloaded diff v0.1.13
[INFO] [stderr]   Downloaded pretty_assertions v1.3.0
[INFO] [stderr]   Downloaded rustyline v10.1.1
[INFO] [stderr]   Downloaded unicode-segmentation v1.10.1
[INFO] [stderr]   Downloaded clap_builder v4.2.5
[INFO] [stderr]   Downloaded syn v2.0.15
[INFO] [stderr]   Downloaded rustix v0.37.18
[INFO] [stderr]   Downloaded libc v0.2.142
[INFO] [stderr]   Downloaded linux-raw-sys v0.3.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 82eadf5a29e8d06583bfc305d590a2f69dbc66ecab93f1638d4566118c6dd159
[INFO] running `Command { std: "docker" "start" "-a" "82eadf5a29e8d06583bfc305d590a2f69dbc66ecab93f1638d4566118c6dd159", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "82eadf5a29e8d06583bfc305d590a2f69dbc66ecab93f1638d4566118c6dd159", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "82eadf5a29e8d06583bfc305d590a2f69dbc66ecab93f1638d4566118c6dd159", kill_on_drop: false }`
[INFO] [stdout] 82eadf5a29e8d06583bfc305d590a2f69dbc66ecab93f1638d4566118c6dd159
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 542cac0aa552110a977e873f8cdd56248405ad552e832ef7ab6c4e94950667d4
[INFO] running `Command { std: "docker" "start" "-a" "542cac0aa552110a977e873f8cdd56248405ad552e832ef7ab6c4e94950667d4", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.142
[INFO] [stderr]    Compiling io-lifetimes v1.0.10
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling rustix v0.37.18
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]     Checking linux-raw-sys v0.3.6
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]     Checking utf8parse v0.2.1
[INFO] [stderr]     Checking anstyle-parse v0.2.0
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]     Checking anstyle-query v1.0.0
[INFO] [stderr]     Checking colorchoice v1.0.0
[INFO] [stderr]     Checking anstyle v1.0.0
[INFO] [stderr]     Checking clap_lex v0.4.1
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]    Compiling thiserror v1.0.40
[INFO] [stderr]     Checking endian-type v0.1.2
[INFO] [stderr]     Checking unicode-segmentation v1.10.1
[INFO] [stderr]     Checking once_cell v1.17.1
[INFO] [stderr]     Checking unicode-width v0.1.10
[INFO] [stderr]     Checking yansi v0.5.1
[INFO] [stderr]     Checking radix_trie v0.2.1
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]     Checking pretty_assertions v1.3.0
[INFO] [stderr]    Compiling syn v2.0.15
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking dirs-next v2.0.0
[INFO] [stderr]     Checking is-terminal v0.4.7
[INFO] [stderr]     Checking fd-lock v3.0.12
[INFO] [stderr]     Checking anstream v0.3.1
[INFO] [stderr]     Checking rustyline v10.1.1
[INFO] [stderr]    Compiling clap_derive v4.2.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.40
[INFO] [stderr]     Checking clap_builder v4.2.5
[INFO] [stderr]     Checking clap v4.2.5
[INFO] [stderr]     Checking monkey v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> src/parser/parser.rs:92:36
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn parse_infix_expr(&mut self, expr: Expr) -> ParseResult<Expr> {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prec`
[INFO] [stdout]    --> src/parser/parser.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn parse_expr_stmt(&mut self, token: Token, prec: OperatorPrecedence) -> ParseResult<()> {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_prec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parser/parser.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |             _ => todo!(),
[INFO] [stdout]     |             - matches any value
[INFO] [stdout] 119 |             None => todo!(),
[INFO] [stdout]     |             ^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]   --> src/lexer/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Lexer<'a> {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 10 |     input: &'a str,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Lexer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> Lexer<'a> {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub(crate) fn peek(&self) -> Option<Token> {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Program` is never used
[INFO] [stdout]  --> src/parser/ast.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Program = Vec<Stmt>;
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stmt` is never used
[INFO] [stdout]  --> src/parser/ast.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Stmt {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]   --> src/parser/ast.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Expr {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Identifier` is never constructed
[INFO] [stdout]   --> src/parser/ast.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Identifier {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OperatorPrecedence` is never used
[INFO] [stdout]   --> src/parser/ast.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum OperatorPrecedence {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseResult` is never used
[INFO] [stdout]   --> src/parser/parser.rs:25:6
[INFO] [stdout]    |
[INFO] [stdout] 25 | type ParseResult<T> = Result<T, ParseError>;
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/parser/parser.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Parser<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]   --> src/parser/parser.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub enum ParseError {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser/parser.rs:44:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl<'a> Parser<'a> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  44 |     pub fn new(lexer: Lexer) -> Parser {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn parse(mut self) -> ParseResult<Program> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     fn parse_let(&mut self) -> ParseResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn parse_return(&mut self) -> ParseResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn parse_infix_expr(&mut self, expr: Expr) -> ParseResult<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn parse_prefix_expr(&mut self, token: Token) -> ParseResult<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn parse_expr_stmt(&mut self, token: Token, prec: OperatorPrecedence) -> ParseResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn parse_expr(&mut self) -> ParseResult<Expr> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn parse_ident(&mut self) -> ParseResult<Identifier> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assert_ne`
[INFO] [stdout]   --> src/lexer/mod.rs:90:40
[INFO] [stdout]    |
[INFO] [stdout] 90 |     use pretty_assertions::{assert_eq, assert_ne};
[INFO] [stdout]    |                                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser::ParseError`
[INFO] [stdout]  --> src/parser/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |         parser::ParseError,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]   --> src/parser/parser.rs:92:36
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn parse_infix_expr(&mut self, expr: Expr) -> ParseResult<Expr> {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prec`
[INFO] [stdout]    --> src/parser/parser.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn parse_expr_stmt(&mut self, token: Token, prec: OperatorPrecedence) -> ParseResult<()> {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_prec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parser/parser.rs:119:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |             _ => todo!(),
[INFO] [stdout]     |             - matches any value
[INFO] [stdout] 119 |             None => todo!(),
[INFO] [stdout]     |             ^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]   --> src/lexer/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Lexer<'a> {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 10 |     input: &'a str,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Lexer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Equals`, `LessOrGreater`, `Sum`, `Product`, `Prefix`, and `Call` are never constructed
[INFO] [stdout]   --> src/parser/ast.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum OperatorPrecedence {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout] 26 |     Lowest,
[INFO] [stdout] 27 |     Equals,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 28 |     LessOrGreater,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 29 |     Sum,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 30 |     Product,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 31 |     Prefix,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 32 |     Call
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OperatorPrecedence` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_infix_expr` is never used
[INFO] [stdout]   --> src/parser/parser.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl<'a> Parser<'a> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     fn parse_infix_expr(&mut self, expr: Expr) -> ParseResult<Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.96s
[INFO] running `Command { std: "docker" "inspect" "542cac0aa552110a977e873f8cdd56248405ad552e832ef7ab6c4e94950667d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "542cac0aa552110a977e873f8cdd56248405ad552e832ef7ab6c4e94950667d4", kill_on_drop: false }`
[INFO] [stdout] 542cac0aa552110a977e873f8cdd56248405ad552e832ef7ab6c4e94950667d4
