[INFO] cloning repository https://github.com/smacpher/rusty_monkey
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/smacpher/rusty_monkey" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsmacpher%2Frusty_monkey", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsmacpher%2Frusty_monkey'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c1b181e9e00918e4ca1662eaf5ee2b6725981e64
[INFO] testing smacpher/rusty_monkey against 1.83.0 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsmacpher%2Frusty_monkey" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/smacpher/rusty_monkey on toolchain 1.83.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.83.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/smacpher/rusty_monkey
[INFO] finished tweaking git repo https://github.com/smacpher/rusty_monkey
[INFO] tweaked toml for git repo https://github.com/smacpher/rusty_monkey written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/smacpher/rusty_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.83.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 74e3a42670501bbcc795b753e9e48925ffb1090fbac299867726f51853a7ccb5
[INFO] running `Command { std: "docker" "start" "-a" "74e3a42670501bbcc795b753e9e48925ffb1090fbac299867726f51853a7ccb5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "74e3a42670501bbcc795b753e9e48925ffb1090fbac299867726f51853a7ccb5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "74e3a42670501bbcc795b753e9e48925ffb1090fbac299867726f51853a7ccb5", kill_on_drop: false }`
[INFO] [stdout] 74e3a42670501bbcc795b753e9e48925ffb1090fbac299867726f51853a7ccb5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b95b2bc0b1cf73a63b365e18e591987169a410926ce61c97920675140ef18499
[INFO] running `Command { std: "docker" "start" "-a" "b95b2bc0b1cf73a63b365e18e591987169a410926ce61c97920675140ef18499", kill_on_drop: false }`
[INFO] [stderr]    Compiling rusty_monkey v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `NOT_EQ` should have an upper camel case name
[INFO] [stdout]   --> src/lexer.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     NOT_EQ,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `NotEq`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Program`, `Statement`, and `Expression` are never constructed
[INFO] [stdout]   --> src/ast.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum Node {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 9  |     Program(Program),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 10 |     Statement(Statement),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 11 |     Expression(Expression),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]   --> src/ast.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Node {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 15 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `token_literal`, and `string` are never used
[INFO] [stdout]   --> src/ast.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Program {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 44 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BlockStatement`, `LetStatement`, `ReturnStatement`, and `ExpressionStatement` are never constructed
[INFO] [stdout]   --> src/ast.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub enum Statement {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 70 |     BlockStatement(BlockStatement),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 71 |     LetStatement(LetStatement),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 72 |     ReturnStatement(ReturnStatement),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 73 |     ExpressionStatement(ExpressionStatement),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]   --> src/ast.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl Statement {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 77 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl BlockStatement {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 103 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | impl LetStatement {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 126 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl ReturnStatement {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 153 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl ExpressionStatement {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] 179 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/ast.rs:191:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub enum Expression {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] 191 |     Empty,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 192 |     Identifier(Identifier),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 193 |     IntegerLiteral(IntegerLiteral),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 194 |     BooleanLiteral(BooleanLiteral),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 195 |     PrefixExpression(PrefixExpression),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 196 |     InfixExpression(InfixExpression),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 197 |     IfExpression(IfExpression),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 198 |     FunctionLiteral(FunctionLiteral),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 199 |     CallExpression(CallExpression),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 202 | impl Expression {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 203 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout] 241 | impl Identifier {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 242 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:260:12
[INFO] [stdout]     |
[INFO] [stdout] 259 | impl IntegerLiteral {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 260 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 277 | impl BooleanLiteral {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 278 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:301:12
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl PrefixExpression {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 301 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:336:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl InfixExpression {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 336 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:379:12
[INFO] [stdout]     |
[INFO] [stdout] 378 | impl IfExpression {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 379 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:416:12
[INFO] [stdout]     |
[INFO] [stdout] 415 | impl FunctionLiteral {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 416 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]    --> src/ast.rs:453:12
[INFO] [stdout]     |
[INFO] [stdout] 452 | impl CallExpression {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 453 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 457 |     pub fn string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PrefixParseFn` is never used
[INFO] [stdout]  --> src/parser.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type PrefixParseFn = fn(&mut Parser<'_>) -> Option<ast::Expression>;
[INFO] [stdout]   |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InfixParseFn` is never used
[INFO] [stdout]  --> src/parser.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type InfixParseFn = fn(&mut Parser<'_>, Option<ast::Expression>) -> Option<ast::Expression>;
[INFO] [stdout]   |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOWEST` is never used
[INFO] [stdout]   --> src/parser.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const LOWEST: u8 = 1;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUALS` is never used
[INFO] [stdout]   --> src/parser.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const EQUALS: u8 = 2; // ==
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LESSGREATER` is never used
[INFO] [stdout]   --> src/parser.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const LESSGREATER: u8 = 3; // > or <
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUM` is never used
[INFO] [stdout]   --> src/parser.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const SUM: u8 = 4; // +
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRODUCT` is never used
[INFO] [stdout]   --> src/parser.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const PRODUCT: u8 = 5; // *
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PREFIX` is never used
[INFO] [stdout]   --> src/parser.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const PREFIX: u8 = 6; // -x or !x
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CALL` is never used
[INFO] [stdout]   --> src/parser.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const CALL: u8 = 7; // foo(x)
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_precedence` is never used
[INFO] [stdout]   --> src/parser.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn token_precedence(token_type: lexer::TokenType) -> u8 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/parser.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct Parser<'a> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout] 48  | impl<'a> Parser<'a> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 49  |     pub fn new(lexer: &'a mut lexer::Lexer) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn next_token(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn expect_peek(&mut self, token_type: lexer::TokenType) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn peek_precedence(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn current_precedence(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn parse_integer_literal(&mut self) -> Option<ast::Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn parse_boolean_literal(&mut self) -> Option<ast::Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     fn parse_identifier(&mut self) -> Option<ast::Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     fn parse_grouped_expression(&mut self) -> Option<ast::Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn parse_if_expression(&mut self) -> Option<ast::Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn parse_function_literal(&mut self) -> Option<ast::Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     fn parse_function_parameters(&mut self) -> Option<Vec<ast::Identifier>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn parse_prefix_expression(&mut self) -> Option<ast::Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     fn parse_infix_expression(&mut self, left: Option<ast::Expression>) -> Option<ast::Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     fn parse_expression(&mut self, precedence: u8) -> Option<ast::Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     fn parse_let_statement(&mut self) -> Option<ast::LetStatement> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     fn parse_return_statement(&mut self) -> Option<ast::ReturnStatement> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 449 |     fn parse_expression_statement(&mut self) -> Option<ast::ExpressionStatement> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 470 |     fn parse_block_statement(&mut self) -> ast::BlockStatement {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     fn parse_statement(&mut self) -> Option<ast::Statement> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     pub fn parse_program(&mut self) -> ast::Program {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.59s
[INFO] running `Command { std: "docker" "inspect" "b95b2bc0b1cf73a63b365e18e591987169a410926ce61c97920675140ef18499", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b95b2bc0b1cf73a63b365e18e591987169a410926ce61c97920675140ef18499", kill_on_drop: false }`
[INFO] [stdout] b95b2bc0b1cf73a63b365e18e591987169a410926ce61c97920675140ef18499
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2a8a04664acdd811da7cc76f48e042663fe3dee100b3c508ac0a88066e8a0c25
[INFO] running `Command { std: "docker" "start" "-a" "2a8a04664acdd811da7cc76f48e042663fe3dee100b3c508ac0a88066e8a0c25", kill_on_drop: false }`
[INFO] [stderr]    Compiling rusty_monkey v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `NOT_EQ` should have an upper camel case name
[INFO] [stdout]   --> src/lexer.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     NOT_EQ,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `NotEq`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Program`, `Statement`, and `Expression` are never constructed
[INFO] [stdout]   --> src/ast.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum Node {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] 9  |     Program(Program),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 10 |     Statement(Statement),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 11 |     Expression(Expression),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]   --> src/ast.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Node {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 15 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]   --> src/ast.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Program {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BlockStatement` is never constructed
[INFO] [stdout]   --> src/ast.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub enum Statement {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] 70 |     BlockStatement(BlockStatement),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]   --> src/ast.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl Statement {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 77 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl BlockStatement {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 103 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl ExpressionStatement {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 179 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CallExpression` is never constructed
[INFO] [stdout]    --> src/ast.rs:199:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub enum Expression {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 199 |     CallExpression(CallExpression),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 202 | impl Expression {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 203 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout] 241 | impl Identifier {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 242 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:260:12
[INFO] [stdout]     |
[INFO] [stdout] 259 | impl IntegerLiteral {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 260 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 277 | impl BooleanLiteral {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 278 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:301:12
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl PrefixExpression {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 301 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:336:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl InfixExpression {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 336 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:379:12
[INFO] [stdout]     |
[INFO] [stdout] 378 | impl IfExpression {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 379 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:416:12
[INFO] [stdout]     |
[INFO] [stdout] 415 | impl FunctionLiteral {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 416 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]    --> src/ast.rs:453:12
[INFO] [stdout]     |
[INFO] [stdout] 452 | impl CallExpression {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 453 |     pub fn token_literal(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CALL` is never used
[INFO] [stdout]   --> src/parser.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const CALL: u8 = 7; // foo(x)
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Boolean` is never constructed
[INFO] [stdout]   --> src/parser/tests.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 8  |     enum Operand {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] 9  |         Integer(i64),
[INFO] [stdout] 10 |         Boolean(bool),
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.04s
[INFO] running `Command { std: "docker" "inspect" "2a8a04664acdd811da7cc76f48e042663fe3dee100b3c508ac0a88066e8a0c25", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2a8a04664acdd811da7cc76f48e042663fe3dee100b3c508ac0a88066e8a0c25", kill_on_drop: false }`
[INFO] [stdout] 2a8a04664acdd811da7cc76f48e042663fe3dee100b3c508ac0a88066e8a0c25
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fadcf6544e5e36602302054864db4f2d9b4dec7af99e86e6bf8b209c50dfd230
[INFO] running `Command { std: "docker" "start" "-a" "fadcf6544e5e36602302054864db4f2d9b4dec7af99e86e6bf8b209c50dfd230", kill_on_drop: false }`
[INFO] [stderr] warning: variant `NOT_EQ` should have an upper camel case name
[INFO] [stderr]   --> src/lexer.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 |     NOT_EQ,
[INFO] [stderr]    |     ^^^^^^ help: convert the identifier to upper camel case: `NotEq`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Program`, `Statement`, and `Expression` are never constructed
[INFO] [stderr]   --> src/ast.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr] 8  | pub enum Node {
[INFO] [stderr]    |          ---- variants in this enum
[INFO] [stderr] 9  |     Program(Program),
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 10 |     Statement(Statement),
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 11 |     Expression(Expression),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `token_literal` and `string` are never used
[INFO] [stderr]   --> src/ast.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl Node {
[INFO] [stderr]    | --------- methods in this implementation
[INFO] [stderr] 15 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub fn string(&self) -> String {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]   --> src/ast.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 43 | impl Program {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `BlockStatement` is never constructed
[INFO] [stderr]   --> src/ast.rs:70:5
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub enum Statement {
[INFO] [stderr]    |          --------- variant in this enum
[INFO] [stderr] 70 |     BlockStatement(BlockStatement),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]   --> src/ast.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 76 | impl Statement {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] 77 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:103:12
[INFO] [stderr]     |
[INFO] [stderr] 102 | impl BlockStatement {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] 103 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:179:12
[INFO] [stderr]     |
[INFO] [stderr] 178 | impl ExpressionStatement {
[INFO] [stderr]     | ------------------------ method in this implementation
[INFO] [stderr] 179 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CallExpression` is never constructed
[INFO] [stderr]    --> src/ast.rs:199:5
[INFO] [stderr]     |
[INFO] [stderr] 190 | pub enum Expression {
[INFO] [stderr]     |          ---------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 199 |     CallExpression(CallExpression),
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:203:12
[INFO] [stderr]     |
[INFO] [stderr] 202 | impl Expression {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] 203 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:242:12
[INFO] [stderr]     |
[INFO] [stderr] 241 | impl Identifier {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] 242 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:260:12
[INFO] [stderr]     |
[INFO] [stderr] 259 | impl IntegerLiteral {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] 260 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:278:12
[INFO] [stderr]     |
[INFO] [stderr] 277 | impl BooleanLiteral {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] 278 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:301:12
[INFO] [stderr]     |
[INFO] [stderr] 300 | impl PrefixExpression {
[INFO] [stderr]     | --------------------- method in this implementation
[INFO] [stderr] 301 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:336:12
[INFO] [stderr]     |
[INFO] [stderr] 335 | impl InfixExpression {
[INFO] [stderr]     | -------------------- method in this implementation
[INFO] [stderr] 336 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:379:12
[INFO] [stderr]     |
[INFO] [stderr] 378 | impl IfExpression {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] 379 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:416:12
[INFO] [stderr]     |
[INFO] [stderr] 415 | impl FunctionLiteral {
[INFO] [stderr]     | -------------------- method in this implementation
[INFO] [stderr] 416 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]    --> src/ast.rs:453:12
[INFO] [stderr]     |
[INFO] [stderr] 452 | impl CallExpression {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] 453 |     pub fn token_literal(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CALL` is never used
[INFO] [stderr]   --> src/parser.rs:18:7
[INFO] [stderr]    |
[INFO] [stderr] 18 | const CALL: u8 = 7; // foo(x)
[INFO] [stderr]    |       ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Boolean` is never constructed
[INFO] [stderr]   --> src/parser/tests.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 8  |     enum Operand {
[INFO] [stderr]    |          ------- variant in this enum
[INFO] [stderr] 9  |         Integer(i64),
[INFO] [stderr] 10 |         Boolean(bool),
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Operand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `rusty_monkey` (bin "rusty_monkey" test) generated 20 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rusty_monkey-8baec019ac6f9391)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test lexer::tests::tests::test_next_token ... ok
[INFO] [stdout] test lexer::tests::tests::sanity ... ok
[INFO] [stdout] test ast::tests::tests::test_string ... ok
[INFO] [stdout] test parser::tests::tests::test_identifier_expression ... ok
[INFO] [stdout] test parser::tests::tests::test_if_else_expression ... ok
[INFO] [stdout] test parser::tests::tests::test_function_literal ... ok
[INFO] [stdout] test parser::tests::tests::test_if_expression ... ok
[INFO] [stdout] test parser::tests::tests::test_infix_expressions ... ok
[INFO] [stdout] test parser::tests::tests::test_operator_precedence ... ok
[INFO] [stdout] test parser::tests::tests::test_integer_expression ... ok
[INFO] [stdout] test parser::tests::tests::test_invalid_let_statements ... ok
[INFO] [stdout] test parser::tests::tests::test_let_statements ... ok
[INFO] [stdout] test parser::tests::tests::test_prefix_expressions ... ok
[INFO] [stdout] test parser::tests::tests::test_return_statements ... ok
[INFO] [stdout] test parser::tests::tests::test_call_expression ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- parser::tests::tests::test_call_expression stdout ----
[INFO] [stdout] thread 'parser::tests::tests::test_call_expression' panicked at src/parser/tests.rs:108:9:
[INFO] [stdout] ["expected next token to be RPAREN, got COMMA instead", "no prefix parse function for COMMA found", "no prefix parse function for COMMA found", "no prefix parse function for RPAREN found", "no prefix parse function for SEMICOLON found"]
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64d3bd27cd0a - std::backtrace_rs::backtrace::libunwind::trace::h5a5b8284f2d0c266
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x64d3bd27cd0a - std::backtrace_rs::backtrace::trace_unsynchronized::h76d4f1c9b0b875e3
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x64d3bd27cd0a - std::sys::backtrace::_print_fmt::hc4546b8364a537c6
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x64d3bd27cd0a - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h5b6bd5631a6d1f6b
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x64d3bd2a2153 - core::fmt::rt::Argument::fmt::h270f6602a2b96f62
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x64d3bd2a2153 - core::fmt::write::h7550c97b06c86515
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/fmt/mod.rs:1186:21
[INFO] [stdout]    6:     0x64d3bd279ed3 - std::io::Write::write_fmt::h509ff860e5956e5e
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/io/mod.rs:1839:15
[INFO] [stdout]    7:     0x64d3bd27cb52 - std::sys::backtrace::BacktraceLock::print::h2395ccd2c84ba3aa
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x64d3bd27e16a - std::panicking::default_hook::{{closure}}::he19d4c7230e07961
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x64d3bd27df74 - std::panicking::default_hook::hf614597d3c67bbdb
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x64d3bd249859 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h39b51ce4599c23d1
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/boxed.rs:2468:9
[INFO] [stdout]   11:     0x64d3bd249859 - test::test_main::{{closure}}::he977ae839a582784
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:133:21
[INFO] [stdout]   12:     0x64d3bd27e808 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h9455091b6b06f9fb
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/boxed.rs:2468:9
[INFO] [stdout]   13:     0x64d3bd27e808 - std::panicking::rust_panic_with_hook::h8942133a8b252070
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x64d3bd27e5ca - std::panicking::begin_panic_handler::{{closure}}::hb5f5963570096b29
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x64d3bd27d1e9 - std::sys::backtrace::__rust_end_short_backtrace::h6208cedc1922feda
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x64d3bd27e25c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x64d3bd1e8a60 - core::panicking::panic_fmt::h0c3082644d1bf418
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/panicking.rs:74:14
[INFO] [stdout]   18:     0x64d3bd204872 - rusty_monkey::parser::tests::tests::check_parser_errors::hcbd7d3f2b37f6282
[INFO] [stdout]                                at /opt/rustwide/workdir/src/parser/tests.rs:108:9
[INFO] [stdout]   19:     0x64d3bd20b39f - rusty_monkey::parser::tests::tests::test_call_expression::h930a6839dd569935
[INFO] [stdout]                                at /opt/rustwide/workdir/src/parser/tests.rs:757:9
[INFO] [stdout]   20:     0x64d3bd20b2b7 - rusty_monkey::parser::tests::tests::test_call_expression::{{closure}}::hadaf34908bfa77b0
[INFO] [stdout]                                at /opt/rustwide/workdir/src/parser/tests.rs:750:30
[INFO] [stdout]   21:     0x64d3bd1f69c6 - core::ops::function::FnOnce::call_once::h0243451df2048408
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x64d3bd24e21b - core::ops::function::FnOnce::call_once::h109cf8051a59b34e
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x64d3bd24e21b - test::__rust_begin_short_backtrace::hf4fff89d377446ba
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:621:18
[INFO] [stdout]   24:     0x64d3bd24da57 - test::run_test_in_process::{{closure}}::h0e39181dd7ee5a43
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:644:60
[INFO] [stdout]   25:     0x64d3bd24da57 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hc5a66a30f0bdfd1f
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   26:     0x64d3bd24da57 - std::panicking::try::do_call::h873b7cf639554a5e
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:557:40
[INFO] [stdout]   27:     0x64d3bd24da57 - std::panicking::try::hdb19862fad9c8bd1
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:520:19
[INFO] [stdout]   28:     0x64d3bd24da57 - std::panic::catch_unwind::h281fe732d236d260
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panic.rs:358:14
[INFO] [stdout]   29:     0x64d3bd24da57 - test::run_test_in_process::h949b6df8457ed338
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:644:27
[INFO] [stdout]   30:     0x64d3bd24da57 - test::run_test::{{closure}}::h52c556a6d4740e10
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:565:43
[INFO] [stdout]   31:     0x64d3bd212d34 - test::run_test::{{closure}}::h4237f6381c45ccb9
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/test/src/lib.rs:595:41
[INFO] [stdout]   32:     0x64d3bd212d34 - std::sys::backtrace::__rust_begin_short_backtrace::h505c97a579eca628
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   33:     0x64d3bd2163fe - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h9e86b2e2bc107ea3
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/thread/mod.rs:538:17
[INFO] [stdout]   34:     0x64d3bd2163fe - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h8b06ddb275ff4a25
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   35:     0x64d3bd2163fe - std::panicking::try::do_call::hb26ecd7cd9a9355d
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:557:40
[INFO] [stdout]   36:     0x64d3bd2163fe - std::panicking::try::h8ddeca9d705f9069
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panicking.rs:520:19
[INFO] [stderr] error: test failed, to rerun pass `--bin rusty_monkey`
[INFO] [stdout]   37:     0x64d3bd2163fe - std::panic::catch_unwind::h49e1c33078844c46
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/panic.rs:358:14
[INFO] [stdout]   38:     0x64d3bd2163fe - std::thread::Builder::spawn_unchecked_::{{closure}}::h6073db6ff56ad35d
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/thread/mod.rs:537:30
[INFO] [stdout]   39:     0x64d3bd2163fe - core::ops::function::FnOnce::call_once{{vtable.shim}}::h2c5a5f3779c774f1
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x64d3bd28255b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf75717d9f28faebf
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/boxed.rs:2454:9
[INFO] [stdout]   41:     0x64d3bd28255b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7bd883a5f3c5f3c1
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/alloc/src/boxed.rs:2454:9
[INFO] [stdout]   42:     0x64d3bd28255b - std::sys::pal::unix::thread::Thread::new::thread_start::hcc78f3943333fa94
[INFO] [stdout]                                at /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   43:     0x705dac258ac3 - <unknown>
[INFO] [stdout]   44:     0x705dac2e9a04 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     parser::tests::tests::test_call_expression
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 14 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fadcf6544e5e36602302054864db4f2d9b4dec7af99e86e6bf8b209c50dfd230", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fadcf6544e5e36602302054864db4f2d9b4dec7af99e86e6bf8b209c50dfd230", kill_on_drop: false }`
[INFO] [stdout] fadcf6544e5e36602302054864db4f2d9b4dec7af99e86e6bf8b209c50dfd230
