[INFO] cloning repository https://github.com/michaelhelvey/monkey
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/michaelhelvey/monkey" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmichaelhelvey%2Fmonkey", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmichaelhelvey%2Fmonkey'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c717491168b559e5f5db8343e671c4ba6f4bb503
[INFO] checking michaelhelvey/monkey against try#0bdee9e879c87b7211d316e9152109cfd46c576b for pr-150097
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmichaelhelvey%2Fmonkey" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/michaelhelvey/monkey
[INFO] finished tweaking git repo https://github.com/michaelhelvey/monkey
[INFO] tweaked toml for git repo https://github.com/michaelhelvey/monkey written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/michaelhelvey/monkey on toolchain 0bdee9e879c87b7211d316e9152109cfd46c576b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/michaelhelvey/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" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking michaelhelvey/monkey against try#0bdee9e879c87b7211d316e9152109cfd46c576b for pr-150097
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmichaelhelvey%2Fmonkey" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/michaelhelvey/monkey
[INFO] finished tweaking git repo https://github.com/michaelhelvey/monkey
[INFO] tweaked toml for git repo https://github.com/michaelhelvey/monkey written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/michaelhelvey/monkey on toolchain 0bdee9e879c87b7211d316e9152109cfd46c576b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/michaelhelvey/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" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded supports-unicode v3.0.0
[INFO] [stderr]   Downloaded is_ci v1.2.0
[INFO] [stderr]   Downloaded owo-colors v4.0.0
[INFO] [stderr]   Downloaded backtrace-ext v0.2.1
[INFO] [stderr]   Downloaded miette-derive v7.1.0
[INFO] [stderr]   Downloaded supports-color v3.0.0
[INFO] [stderr]   Downloaded supports-hyperlinks v3.0.0
[INFO] [stderr]   Downloaded miette v7.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 763e6227f85913c9bdefb348a4be44cd28199b216805293b4ca60cd7c9aaffe1
[INFO] running `Command { std: "docker" "start" "-a" "763e6227f85913c9bdefb348a4be44cd28199b216805293b4ca60cd7c9aaffe1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "763e6227f85913c9bdefb348a4be44cd28199b216805293b4ca60cd7c9aaffe1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "763e6227f85913c9bdefb348a4be44cd28199b216805293b4ca60cd7c9aaffe1", kill_on_drop: false }`
[INFO] [stdout] 763e6227f85913c9bdefb348a4be44cd28199b216805293b4ca60cd7c9aaffe1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 001cfa1a501bb2967d2010bb7a2b19864af88ed2b6d0b984d3bc283bb5161f02
[INFO] running `Command { std: "docker" "start" "-a" "001cfa1a501bb2967d2010bb7a2b19864af88ed2b6d0b984d3bc283bb5161f02", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling cc v1.0.86
[INFO] [stderr]    Compiling rustix v0.38.31
[INFO] [stderr]     Checking memchr v2.7.1
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]     Checking bitflags v2.4.2
[INFO] [stderr]    Compiling thiserror v1.0.57
[INFO] [stderr]     Checking linux-raw-sys v0.4.13
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]     Checking is_ci v1.2.0
[INFO] [stderr]     Checking unicode-linebreak v0.1.5
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking supports-unicode v3.0.0
[INFO] [stderr]     Checking owo-colors v4.0.0
[INFO] [stderr]     Checking supports-hyperlinks v3.0.0
[INFO] [stderr]     Checking supports-color v3.0.0
[INFO] [stderr]     Checking unicode-segmentation v1.11.0
[INFO] [stderr]     Checking textwrap v0.16.1
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling backtrace v0.3.69
[INFO] [stderr]    Compiling syn v2.0.50
[INFO] [stderr]     Checking terminal_size v0.3.0
[INFO] [stderr]     Checking addr2line v0.21.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.57
[INFO] [stderr]    Compiling miette-derive v7.1.0
[INFO] [stderr]     Checking backtrace-ext v0.2.1
[INFO] [stderr]     Checking miette v7.1.0
[INFO] [stderr]     Checking language_practice_2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: value assigned to `location` is never read
[INFO] [stdout]   --> src/parser.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         location: SourceSpan,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `explanation` is never read
[INFO] [stdout]   --> src/parser.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         explanation: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `location` is never read
[INFO] [stdout]   --> src/parser.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         location: SourceSpan,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `explanation` is never read
[INFO] [stdout]   --> src/parser.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         explanation: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `src` is never read
[INFO] [stdout]   --> src/parser.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     src: NamedSource<String>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `errors` is never read
[INFO] [stdout]   --> src/parser.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     errors: Vec<InterpreterError>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/parser.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 116 |         Some(token) => todo!(),
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_token`
[INFO] [stdout]    --> src/parser.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let start_token = expect_token(tokens, TokenType::Let, eof_span)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Program`, `Let`, and `Expression` are never constructed
[INFO] [stdout]   --> src/ast.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum Statement<'ast> {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout]  9 |     Program(Program<'ast>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 10 |     Let(LetStatement<'ast>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     Expression(Expression<'ast>),
[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]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Identifier` and `IntegerLiteral` are never constructed
[INFO] [stdout]   --> src/ast.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Expression<'ast> {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 19 |     Identifier(Identifier<'ast>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 20 |     IntegerLiteral(IntegerLiteral<'ast>),
[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: fields `start_token`, `name`, and `value` are never read
[INFO] [stdout]   --> src/ast.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct LetStatement<'ast> {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 30 |     pub start_token: &'ast Token,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 31 |     pub name: Identifier<'ast>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 32 |     pub value: Expression<'ast>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LetStatement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_token` and `value` are never read
[INFO] [stdout]   --> src/ast.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Identifier<'ast> {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 37 |     pub start_token: &'ast Token,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 38 |     pub value: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Identifier` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_token` and `value` are never read
[INFO] [stdout]   --> src/ast.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct IntegerLiteral<'ast> {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 43 |     pub start_token: &'ast Token,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub value: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IntegerLiteral` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `literal` is never read
[INFO] [stdout]   --> src/lexer.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Token {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 44 |     pub token_type: TokenType,
[INFO] [stdout] 45 |     pub literal: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser.rs:111:28
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn parse_statement(tokens: &[Token], eof_span: SourceSpan) -> ParseResult<Statement> {
[INFO] [stdout]     |                            ^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |                                  |           |
[INFO] [stdout]     |                            |                                  |           the same lifetime is hidden here
[INFO] [stdout]     |                            |                                  the same lifetime is hidden here
[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] 111 | fn parse_statement(tokens: &[Token], eof_span: SourceSpan) -> ParseResult<'_, Statement<'_>> {
[INFO] [stdout]     |                                                                           +++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser.rs:131:32
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn parse_let_statement(tokens: &[Token], eof_span: SourceSpan) -> ParseResult<Statement> {
[INFO] [stdout]     |                                ^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |                                  |           |
[INFO] [stdout]     |                                |                                  |           the same lifetime is hidden here
[INFO] [stdout]     |                                |                                  the same lifetime is hidden here
[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] 131 | fn parse_let_statement(tokens: &[Token], eof_span: SourceSpan) -> ParseResult<'_, Statement<'_>> {
[INFO] [stdout]     |                                                                               +++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/parser.rs:142:6
[INFO] [stdout]     |
[INFO] [stdout] 139 |     tokens: &'ast [Token],
[INFO] [stdout]     |              ---- the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 142 | ) -> ParseResult<&'ast Token> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^----^^^^^^^
[INFO] [stdout]     |      |            |
[INFO] [stdout]     |      |            the same lifetime is named here
[INFO] [stdout]     |      the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'ast`
[INFO] [stdout]     |
[INFO] [stdout] 142 | ) -> ParseResult<'ast, &'ast Token> {
[INFO] [stdout]     |                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `location` is never read
[INFO] [stdout]   --> src/parser.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         location: SourceSpan,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `explanation` is never read
[INFO] [stdout]   --> src/parser.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         explanation: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `location` is never read
[INFO] [stdout]   --> src/parser.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         location: SourceSpan,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `explanation` is never read
[INFO] [stdout]   --> src/parser.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         explanation: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `src` is never read
[INFO] [stdout]   --> src/parser.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     src: NamedSource<String>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `errors` is never read
[INFO] [stdout]   --> src/parser.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     errors: Vec<InterpreterError>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/parser.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 116 |         Some(token) => todo!(),
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_token`
[INFO] [stdout]    --> src/parser.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let start_token = expect_token(tokens, TokenType::Let, eof_span)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]    --> src/parser.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let tokens = tokens_from_code(code);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Program`, `Let`, and `Expression` are never constructed
[INFO] [stdout]   --> src/ast.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum Statement<'ast> {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout]  9 |     Program(Program<'ast>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 10 |     Let(LetStatement<'ast>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     Expression(Expression<'ast>),
[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]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Identifier` and `IntegerLiteral` are never constructed
[INFO] [stdout]   --> src/ast.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum Expression<'ast> {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 19 |     Identifier(Identifier<'ast>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 20 |     IntegerLiteral(IntegerLiteral<'ast>),
[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: fields `start_token`, `name`, and `value` are never read
[INFO] [stdout]   --> src/ast.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct LetStatement<'ast> {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 30 |     pub start_token: &'ast Token,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 31 |     pub name: Identifier<'ast>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 32 |     pub value: Expression<'ast>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LetStatement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_token` and `value` are never read
[INFO] [stdout]   --> src/ast.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Identifier<'ast> {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 37 |     pub start_token: &'ast Token,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 38 |     pub value: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Identifier` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_token` and `value` are never read
[INFO] [stdout]   --> src/ast.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct IntegerLiteral<'ast> {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 43 |     pub start_token: &'ast Token,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub value: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IntegerLiteral` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser.rs:111:28
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn parse_statement(tokens: &[Token], eof_span: SourceSpan) -> ParseResult<Statement> {
[INFO] [stdout]     |                            ^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                            |                                  |           |
[INFO] [stdout]     |                            |                                  |           the same lifetime is hidden here
[INFO] [stdout]     |                            |                                  the same lifetime is hidden here
[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] 111 | fn parse_statement(tokens: &[Token], eof_span: SourceSpan) -> ParseResult<'_, Statement<'_>> {
[INFO] [stdout]     |                                                                           +++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser.rs:131:32
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn parse_let_statement(tokens: &[Token], eof_span: SourceSpan) -> ParseResult<Statement> {
[INFO] [stdout]     |                                ^^^^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |                                  |           |
[INFO] [stdout]     |                                |                                  |           the same lifetime is hidden here
[INFO] [stdout]     |                                |                                  the same lifetime is hidden here
[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] 131 | fn parse_let_statement(tokens: &[Token], eof_span: SourceSpan) -> ParseResult<'_, Statement<'_>> {
[INFO] [stdout]     |                                                                               +++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/parser.rs:142:6
[INFO] [stdout]     |
[INFO] [stdout] 139 |     tokens: &'ast [Token],
[INFO] [stdout]     |              ---- the lifetime is named here
[INFO] [stdout] ...
[INFO] [stdout] 142 | ) -> ParseResult<&'ast Token> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^----^^^^^^^
[INFO] [stdout]     |      |            |
[INFO] [stdout]     |      |            the same lifetime is named here
[INFO] [stdout]     |      the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'ast`
[INFO] [stdout]     |
[INFO] [stdout] 142 | ) -> ParseResult<'ast, &'ast Token> {
[INFO] [stdout]     |                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.91s
[INFO] running `Command { std: "docker" "inspect" "001cfa1a501bb2967d2010bb7a2b19864af88ed2b6d0b984d3bc283bb5161f02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "001cfa1a501bb2967d2010bb7a2b19864af88ed2b6d0b984d3bc283bb5161f02", kill_on_drop: false }`
[INFO] [stdout] 001cfa1a501bb2967d2010bb7a2b19864af88ed2b6d0b984d3bc283bb5161f02
