[INFO] cloning repository https://github.com/baevm/monkey-lang-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/baevm/monkey-lang-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbaevm%2Fmonkey-lang-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbaevm%2Fmonkey-lang-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 83067a60e33460320f45519bcfd61137dfcfdb80 [INFO] checking baevm/monkey-lang-rs against master#f8f6997469237299c1d60814c7b9828602a1f8e4 for pr-143808 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbaevm%2Fmonkey-lang-rs" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/baevm/monkey-lang-rs [INFO] finished tweaking git repo https://github.com/baevm/monkey-lang-rs [INFO] tweaked toml for git repo https://github.com/baevm/monkey-lang-rs written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/baevm/monkey-lang-rs on toolchain f8f6997469237299c1d60814c7b9828602a1f8e4 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f8f6997469237299c1d60814c7b9828602a1f8e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/baevm/monkey-lang-rs 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" "+f8f6997469237299c1d60814c7b9828602a1f8e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+f8f6997469237299c1d60814c7b9828602a1f8e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2bfef2235622c2b73b2e4307b714a898a25a96f3f69564d3cd1897c9c31f5a02 [INFO] running `Command { std: "docker" "start" "-a" "2bfef2235622c2b73b2e4307b714a898a25a96f3f69564d3cd1897c9c31f5a02", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2bfef2235622c2b73b2e4307b714a898a25a96f3f69564d3cd1897c9c31f5a02", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2bfef2235622c2b73b2e4307b714a898a25a96f3f69564d3cd1897c9c31f5a02", kill_on_drop: false }` [INFO] [stdout] 2bfef2235622c2b73b2e4307b714a898a25a96f3f69564d3cd1897c9c31f5a02 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+f8f6997469237299c1d60814c7b9828602a1f8e4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 84102e4256770ec961c3d12eaad75de49a867a9a62f9f82a913b38f3587e453c [INFO] running `Command { std: "docker" "start" "-a" "84102e4256770ec961c3d12eaad75de49a867a9a62f9f82a913b38f3587e453c", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking strum v0.27.1 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling strum_macros v0.27.1 [INFO] [stderr] Checking monkey-lang-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ast.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/parser.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/parser.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | (Box::new(ArrayLiteral { [INFO] [stdout] | ^ [INFO] [stdout] 412 | elements: self.parse_expression_list(TokenType::Rbracket), [INFO] [stdout] 413 | })), [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 411 ~ Box::new(ArrayLiteral { [INFO] [stdout] 412 | elements: self.parse_expression_list(TokenType::Rbracket), [INFO] [stdout] 413 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/ast.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/parser.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/parser.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | (Box::new(ArrayLiteral { [INFO] [stdout] | ^ [INFO] [stdout] 412 | elements: self.parse_expression_list(TokenType::Rbracket), [INFO] [stdout] 413 | })), [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 411 ~ Box::new(ArrayLiteral { [INFO] [stdout] 412 | elements: self.parse_expression_list(TokenType::Rbracket), [INFO] [stdout] 413 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/parser.rs:307:17 [INFO] [stdout] | [INFO] [stdout] 306 | panic!("TODO: add missing lbrace handling here"); [INFO] [stdout] | ------------------------------------------------ any code following this expression is unreachable [INFO] [stdout] 307 | 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 pattern [INFO] [stdout] --> src/evaluator.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | _ => Object::Null(Box::new(Null {})), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/evaluator.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 100 | Expression::IntegerLiteral(integer_literal) => Object::Integer(Box::new(Integer { [INFO] [stdout] | ------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 103 | Expression::StringLiteral(str_literal) => Object::String(Box::new(StringObj { [INFO] [stdout] | -------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 106 | Expression::Boolean(boolean_literal) => Object::Boolean(Box::new(Boolean { [INFO] [stdout] | ------------------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 109 | Expression::PrefixExpression(prefix_expr) => { [INFO] [stdout] | ----------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 177 | _ => Object::Null(Box::new(Null {})), [INFO] [stdout] | ^ ...and 8 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/evaluator.rs:366:38 [INFO] [stdout] | [INFO] [stdout] 366 | if let Object::InternalError(err) = obj { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> src/evaluator.rs:484:17 [INFO] [stdout] | [INFO] [stdout] 484 | other => unreachable!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `token` is never read [INFO] [stdout] --> src/lexer.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | let mut token: Token = Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/parser.rs:307:17 [INFO] [stdout] | [INFO] [stdout] 306 | panic!("TODO: add missing lbrace handling here"); [INFO] [stdout] | ------------------------------------------------ any code following this expression is unreachable [INFO] [stdout] 307 | return None; [INFO] [stdout] | ^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_string` is never used [INFO] [stdout] --> src/ast.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl Program { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 34 | pub fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/evaluator.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | _ => Object::Null(Box::new(Null {})), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/evaluator.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 100 | Expression::IntegerLiteral(integer_literal) => Object::Integer(Box::new(Integer { [INFO] [stdout] | ------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 103 | Expression::StringLiteral(str_literal) => Object::String(Box::new(StringObj { [INFO] [stdout] | -------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 106 | Expression::Boolean(boolean_literal) => Object::Boolean(Box::new(Boolean { [INFO] [stdout] | ------------------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 109 | Expression::PrefixExpression(prefix_expr) => { [INFO] [stdout] | ----------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 177 | _ => Object::Null(Box::new(Null {})), [INFO] [stdout] | ^ ...and 8 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/evaluator.rs:366:38 [INFO] [stdout] | [INFO] [stdout] 366 | if let Object::InternalError(err) = obj { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> src/evaluator.rs:484:17 [INFO] [stdout] | [INFO] [stdout] 484 | other => unreachable!(), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `int_obj` [INFO] [stdout] --> src/evaluator.rs:705:40 [INFO] [stdout] | [INFO] [stdout] 705 | if let Object::Integer(int_obj) = &evaluated { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_int_obj` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `null_obj` [INFO] [stdout] --> src/evaluator.rs:1194:26 [INFO] [stdout] | [INFO] [stdout] 1194 | let Object::Null(null_obj) = obj else { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_null_obj` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `token` is never read [INFO] [stdout] --> src/lexer.rs:29:17 [INFO] [stdout] | [INFO] [stdout] 29 | let mut token: Token = Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_let_statement` is never used [INFO] [stdout] --> src/parser.rs:1661:8 [INFO] [stdout] | [INFO] [stdout] 1661 | fn test_let_statement(stmt: &Statement, expected: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.37s [INFO] running `Command { std: "docker" "inspect" "84102e4256770ec961c3d12eaad75de49a867a9a62f9f82a913b38f3587e453c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "84102e4256770ec961c3d12eaad75de49a867a9a62f9f82a913b38f3587e453c", kill_on_drop: false }` [INFO] [stdout] 84102e4256770ec961c3d12eaad75de49a867a9a62f9f82a913b38f3587e453c