[INFO] cloning repository https://github.com/5unsetpowerln/rmonkey
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/5unsetpowerln/rmonkey" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F5unsetpowerln%2Frmonkey", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F5unsetpowerln%2Frmonkey'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bf8ee7cc0b1d1836f854b996446725d6da5886cb
[INFO] checking 5unsetpowerln/rmonkey against try#54cf65b8d066c082e536455049b95943cf30378f for pr-151920
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F5unsetpowerln%2Frmonkey" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/5unsetpowerln/rmonkey
[INFO] finished tweaking git repo https://github.com/5unsetpowerln/rmonkey
[INFO] tweaked toml for git repo https://github.com/5unsetpowerln/rmonkey written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/5unsetpowerln/rmonkey on toolchain 54cf65b8d066c082e536455049b95943cf30378f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/5unsetpowerln/rmonkey 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" "+54cf65b8d066c082e536455049b95943cf30378f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] da088793e4830efe32d5653345d3b70ef1c9fa72966d15fb023304496cf6ae87
[INFO] running `Command { std: "docker" "start" "-a" "da088793e4830efe32d5653345d3b70ef1c9fa72966d15fb023304496cf6ae87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da088793e4830efe32d5653345d3b70ef1c9fa72966d15fb023304496cf6ae87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da088793e4830efe32d5653345d3b70ef1c9fa72966d15fb023304496cf6ae87", kill_on_drop: false }`
[INFO] [stdout] da088793e4830efe32d5653345d3b70ef1c9fa72966d15fb023304496cf6ae87
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ac596486875772a4b6435569f397091c73f59d6b02ad400127f55e7af9b2268d
[INFO] running `Command { std: "docker" "start" "-a" "ac596486875772a4b6435569f397091c73f59d6b02ad400127f55e7af9b2268d", kill_on_drop: false }`
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking jiff v0.2.18
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking rmonkey v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self::lexer::Lexer`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::lexer::Lexer;
[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: `self::token::TokenKind`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::token::TokenKind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::BarrierWaitResult`
[INFO] [stdout]    --> src/eval.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |     use std::sync::BarrierWaitResult;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]    --> src/eval.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |     use anyhow::{Result, anyhow, bail};
[INFO] [stdout]     |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/lexer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Result`
[INFO] [stdout]  --> src/lexer.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `info`
[INFO] [stdout]    --> src/lexer.rs:192:15
[INFO] [stdout]     |
[INFO] [stdout] 192 |     use log::{error, info};
[INFO] [stdout]     |               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeMap`
[INFO] [stdout]  --> src/object.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::error`
[INFO] [stdout]  --> src/parser.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thiserror::Error`
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use thiserror::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ast::NodeInterface`
[INFO] [stdout]  --> src/repl.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::ast::NodeInterface;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/token.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{Debug, Display};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::lexer::Lexer`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::lexer::Lexer;
[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: `self::token::TokenKind`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::token::TokenKind;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expression`, `Identifier`, `LetStatement`, `NodeInterface`, and `Statement`
[INFO] [stdout]    --> src/ast.rs:621:22
[INFO] [stdout]     |
[INFO] [stdout] 621 |     use crate::ast::{Expression, Identifier, LetStatement, NodeInterface, Statement};
[INFO] [stdout]     |                      ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TokenKind` and `Token`
[INFO] [stdout]    --> src/ast.rs:622:24
[INFO] [stdout]     |
[INFO] [stdout] 622 |     use crate::token::{Token, TokenKind};
[INFO] [stdout]     |                        ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Program`
[INFO] [stdout]    --> src/ast.rs:624:9
[INFO] [stdout]     |
[INFO] [stdout] 624 |     use super::Program;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::BarrierWaitResult`
[INFO] [stdout]    --> src/eval.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |     use std::sync::BarrierWaitResult;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]    --> src/eval.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |     use anyhow::{Result, anyhow, bail};
[INFO] [stdout]     |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/lexer.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Result`
[INFO] [stdout]  --> src/lexer.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeMap`
[INFO] [stdout]  --> src/object.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::error`
[INFO] [stdout]  --> src/parser.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thiserror::Error`
[INFO] [stdout]  --> src/parser.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use thiserror::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Parser`
[INFO] [stdout]    --> src/parser.rs:573:9
[INFO] [stdout]     |
[INFO] [stdout] 573 |     use super::Parser;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lexer::Lexer`
[INFO] [stdout]    --> src/parser.rs:575:9
[INFO] [stdout]     |
[INFO] [stdout] 575 |     use crate::lexer::Lexer;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ast::NodeInterface`
[INFO] [stdout]  --> src/repl.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::ast::NodeInterface;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/token.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{Debug, Display};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NodeInterface`
[INFO] [stdout]  --> src/eval.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::ast::{Node, NodeInterface};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NodeInterface`
[INFO] [stdout]  --> src/eval.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::ast::{Node, NodeInterface};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ast.rs:628:13
[INFO] [stdout]     |
[INFO] [stdout] 628 |         let mut program = Program {
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/eval.rs:407:38
[INFO] [stdout]     |
[INFO] [stdout] 407 |                 object::Object::Null(n) => test_null_object(&obj),
[INFO] [stdout]     |                                      ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 |     FunctionLiteral(&'a FunctionLiteral),
[INFO] [stdout]    |     --------------- ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 14 -     FunctionLiteral(&'a FunctionLiteral),
[INFO] [stdout] 14 +     FunctionLiteral(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |     CallExpression(&'a CallExpression),
[INFO] [stdout]    |     -------------- ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     CallExpression(&'a CallExpression),
[INFO] [stdout] 15 +     CallExpression(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `token_literal` and `string` are never used
[INFO] [stdout]   --> src/ast.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait NodeInterface {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn token_literal(&self) -> Vec<ascii::Char>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 29 |     fn string(&self) -> Vec<ascii::Char>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `token` is never read
[INFO] [stdout]   --> src/ast.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct Identifier {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 86 |     pub token: Token,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Identifier` 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: field `token` is never read
[INFO] [stdout]    --> src/ast.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct IntegerLiteral {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 121 |     pub token: Token,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IntegerLiteral` 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: field `token` is never read
[INFO] [stdout]    --> src/ast.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct BoolLiteral {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 148 |     pub token: Token,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BoolLiteral` 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: field `token` is never read
[INFO] [stdout]    --> src/ast.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct PrefixExpression {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 174 |     pub token: Token,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PrefixExpression` 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: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl PrefixExpression {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `token` is never read
[INFO] [stdout]    --> src/ast.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub struct InfixExpression {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 220 |     pub token: Token,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InfixExpression` 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: field `token` is never read
[INFO] [stdout]    --> src/ast.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub struct IfExpression {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 267 |     pub token: Token,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IfExpression` 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: fields `token`, `params`, and `body` are never read
[INFO] [stdout]    --> src/ast.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub struct FunctionLiteral {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 317 |     pub token: Token,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 318 |     pub params: Vec<Identifier>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 319 |     pub body: BlockStatement,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FunctionLiteral` 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: fields `token`, `func`, and `args` are never read
[INFO] [stdout]    --> src/ast.rs:361:9
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub struct CallExpression {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 361 |     pub token: Token,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 362 |     pub func: Box<Expression>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 363 |     pub args: Vec<Expression>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CallExpression` 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: field `token` is never read
[INFO] [stdout]    --> src/ast.rs:405:9
[INFO] [stdout]     |
[INFO] [stdout] 404 | pub struct BlockStatement {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 405 |     pub token: Token, // {
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlockStatement` 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: field `token` is never read
[INFO] [stdout]    --> src/ast.rs:467:9
[INFO] [stdout]     |
[INFO] [stdout] 466 | pub struct LetStatement {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 467 |     pub token: Token,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LetStatement` 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: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:477:12
[INFO] [stdout]     |
[INFO] [stdout] 472 | impl LetStatement {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `token` is never read
[INFO] [stdout]    --> src/ast.rs:515:9
[INFO] [stdout]     |
[INFO] [stdout] 514 | pub struct ReturnStatement {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 515 |     pub token: Token,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ReturnStatement` 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: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:526:12
[INFO] [stdout]     |
[INFO] [stdout] 525 | impl ReturnStatement {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 526 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval_statements` is never used
[INFO] [stdout]    --> src/eval.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn eval_statements(statements: &[ast::Statement], env: &mut Environment) -> Result<object::Object> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_eval` is never used
[INFO] [stdout]    --> src/eval.rs:487:8
[INFO] [stdout]     |
[INFO] [stdout] 487 |     fn test_eval(input: &[ascii::Char]) -> object::Object {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_integer_object` is never used
[INFO] [stdout]    --> src/eval.rs:502:8
[INFO] [stdout]     |
[INFO] [stdout] 502 |     fn test_integer_object(obj: &Object, expected: i64) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_bool_object` is never used
[INFO] [stdout]    --> src/eval.rs:516:8
[INFO] [stdout]     |
[INFO] [stdout] 516 |     fn test_bool_object(obj: &Object, expected: bool) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_null_object` is never used
[INFO] [stdout]    --> src/eval.rs:530:8
[INFO] [stdout]     |
[INFO] [stdout] 530 |     fn test_null_object(obj: &Object) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `null` is never used
[INFO] [stdout]   --> src/object.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Object {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn null() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LiteralForTest` is never used
[INFO] [stdout]    --> src/parser.rs:578:10
[INFO] [stdout]     |
[INFO] [stdout] 578 |     enum LiteralForTest {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `int`, `ident`, and `bool` are never used
[INFO] [stdout]    --> src/parser.rs:585:12
[INFO] [stdout]     |
[INFO] [stdout] 584 |     impl LiteralForTest {
[INFO] [stdout]     |     ------------------- associated functions in this implementation
[INFO] [stdout] 585 |         fn int(value: i64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 588 |         fn ident(value: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 592 |         fn bool(value: bool) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_let_statement` is never used
[INFO] [stdout]    --> src/parser.rs:649:8
[INFO] [stdout]     |
[INFO] [stdout] 649 |     fn test_let_statement(stmt: &Statement, name: &[ascii::Char]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_infix_expression` is never used
[INFO] [stdout]     --> src/parser.rs:1511:8
[INFO] [stdout]      |
[INFO] [stdout] 1511 |     fn test_infix_expression(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_literal_expression` is never used
[INFO] [stdout]     --> src/parser.rs:1536:8
[INFO] [stdout]      |
[INFO] [stdout] 1536 |     fn test_literal_expression(expr: &Expression, expected: &LiteralForTest) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_integer_literal` is never used
[INFO] [stdout]     --> src/parser.rs:1544:8
[INFO] [stdout]      |
[INFO] [stdout] 1544 |     fn test_integer_literal(expr: &Expression, value: &i64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_boolean_literal` is never used
[INFO] [stdout]     --> src/parser.rs:1567:8
[INFO] [stdout]      |
[INFO] [stdout] 1567 |     fn test_boolean_literal(expr: &Expression, value: bool) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_identifier` is never used
[INFO] [stdout]     --> src/parser.rs:1591:8
[INFO] [stdout]      |
[INFO] [stdout] 1591 |     fn test_identifier(expr: &Expression, value: &[ascii::Char]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn get_node(&self) -> Node;
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn get_node(&self) -> Node<'_>;
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn get_node(&self) -> Node {
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:198:17
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 243 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:333:17
[INFO] [stdout]     |
[INFO] [stdout] 333 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 333 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:377:17
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:419:17
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:443:17
[INFO] [stdout]     |
[INFO] [stdout] 443 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 443 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:487:17
[INFO] [stdout]     |
[INFO] [stdout] 487 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 487 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:535:17
[INFO] [stdout]     |
[INFO] [stdout] 535 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 535 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:571:17
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:598:17
[INFO] [stdout]     |
[INFO] [stdout] 598 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 598 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 |     FunctionLiteral(&'a FunctionLiteral),
[INFO] [stdout]    |     --------------- ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 14 -     FunctionLiteral(&'a FunctionLiteral),
[INFO] [stdout] 14 +     FunctionLiteral(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |     CallExpression(&'a CallExpression),
[INFO] [stdout]    |     -------------- ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     CallExpression(&'a CallExpression),
[INFO] [stdout] 15 +     CallExpression(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl PrefixExpression {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:477:12
[INFO] [stdout]     |
[INFO] [stdout] 472 | impl LetStatement {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/ast.rs:526:12
[INFO] [stdout]     |
[INFO] [stdout] 525 | impl ReturnStatement {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 526 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval_statements` is never used
[INFO] [stdout]    --> src/eval.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn eval_statements(statements: &[ast::Statement], env: &mut Environment) -> Result<object::Object> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn get_node(&self) -> Node;
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn get_node(&self) -> Node<'_>;
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn get_node(&self) -> Node {
[INFO] [stdout]    |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:198:17
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 243 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:333:17
[INFO] [stdout]     |
[INFO] [stdout] 333 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 333 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:377:17
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:419:17
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:443:17
[INFO] [stdout]     |
[INFO] [stdout] 443 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 443 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:487:17
[INFO] [stdout]     |
[INFO] [stdout] 487 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 487 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:535:17
[INFO] [stdout]     |
[INFO] [stdout] 535 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 535 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:571:17
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 571 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ast.rs:598:17
[INFO] [stdout]     |
[INFO] [stdout] 598 |     fn get_node(&self) -> Node {
[INFO] [stdout]     |                 ^^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 598 |     fn get_node(&self) -> Node<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/eval.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |             test_bool_object(&obj, test.expected);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 341 |             let _ = test_bool_object(&obj, test.expected);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/eval.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |             test_bool_object(&obj, test.expected);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 371 |             let _ = test_bool_object(&obj, test.expected);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.85s
[INFO] running `Command { std: "docker" "inspect" "ac596486875772a4b6435569f397091c73f59d6b02ad400127f55e7af9b2268d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ac596486875772a4b6435569f397091c73f59d6b02ad400127f55e7af9b2268d", kill_on_drop: false }`
[INFO] [stdout] ac596486875772a4b6435569f397091c73f59d6b02ad400127f55e7af9b2268d
