[INFO] cloning repository https://github.com/oberblastmeister/monkey_rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/oberblastmeister/monkey_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foberblastmeister%2Fmonkey_rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foberblastmeister%2Fmonkey_rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6d6890f3345a486a6868b92d45db9b03b13fc3ef
[INFO] documenting oberblastmeister/monkey_rust against beta-2023-04-20 for beta-1.70-rustdoc-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foberblastmeister%2Fmonkey_rust" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/oberblastmeister/monkey_rust on toolchain beta-2023-04-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/oberblastmeister/monkey_rust
[INFO] finished tweaking git repo https://github.com/oberblastmeister/monkey_rust
[INFO] tweaked toml for git repo https://github.com/oberblastmeister/monkey_rust written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/oberblastmeister/monkey_rust 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" "+beta-2023-04-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dissimilar v1.0.2
[INFO] [stderr]   Downloaded trybuild v1.0.35
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3545fa6197b91ec56b9a22fd6d0a87c79e1b2446a251dac87f79bce8757e3782
[INFO] running `Command { std: "docker" "start" "-a" "3545fa6197b91ec56b9a22fd6d0a87c79e1b2446a251dac87f79bce8757e3782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3545fa6197b91ec56b9a22fd6d0a87c79e1b2446a251dac87f79bce8757e3782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3545fa6197b91ec56b9a22fd6d0a87c79e1b2446a251dac87f79bce8757e3782", kill_on_drop: false }`
[INFO] [stdout] 3545fa6197b91ec56b9a22fd6d0a87c79e1b2446a251dac87f79bce8757e3782
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b4a7300b6220b896e282e6b4b1abe8ff35d0531d2f986fab39d9d5d02105be9c
[INFO] running `Command { std: "docker" "start" "-a" "b4a7300b6220b896e282e6b4b1abe8ff35d0531d2f986fab39d9d5d02105be9c", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling libc v0.2.79
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling syn v1.0.48
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]     Checking thread_local v1.0.1
[INFO] [stderr]     Checking regex-syntax v0.6.20
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking termcolor v1.1.0
[INFO] [stderr]     Checking aho-corasick v0.7.14
[INFO] [stderr]    Compiling indexmap v1.6.0
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling unicode-segmentation v1.6.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]     Checking humantime v2.0.1
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]    Compiling heck v0.3.1
[INFO] [stderr]     Checking hashbrown v0.9.1
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking dirs-sys-next v0.1.0
[INFO] [stderr]     Checking textwrap v0.12.1
[INFO] [stderr]     Checking dirs-next v1.0.1
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]     Checking utf8parse v0.2.0
[INFO] [stderr]     Checking os_str_bytes v2.3.2
[INFO] [stderr]     Checking regex v1.4.1
[INFO] [stderr]     Checking env_logger v0.8.1
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking rustyline v6.3.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.22
[INFO] [stderr]    Compiling clap_derive v3.0.0-beta.2
[INFO] [stderr]     Checking thiserror v1.0.22
[INFO] [stderr]     Checking monkey v0.1.0 (/opt/rustwide/workdir/crates/monkey)
[INFO] [stderr]     Checking clap v3.0.0-beta.2
[INFO] [stdout] warning: unused import: `crate::lexer::Token`
[INFO] [stdout]  --> crates/monkey/src/parser/parse_error.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::lexer::Token;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Accept`
[INFO] [stdout]  --> crates/monkey/src/parser/parser.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::common::{Accept, Peekable};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `*`
[INFO] [stdout]  --> crates/monkey/src/parser/parser.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::lexer::Token::{self, *};
[INFO] [stdout]   |                                 ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Accept`
[INFO] [stdout]  --> crates/monkey/src/lexer/advanced_chars.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::common::{Accept, AdvancedIter, Peekable};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Illegal` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ^^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Illegal`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bindings_with_variant_name)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Assign` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Assign => "=",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Plus` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             Plus => "+",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Plus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Minus` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Minus => "-",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Minus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Bang` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |             Bang => "!",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Bang`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Asterisk` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |             Asterisk => "*",
[INFO] [stdout]    |             ^^^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Asterisk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Slash` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Slash => "/",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Slash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Lt` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |             Lt => "<",
[INFO] [stdout]    |             ^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Lt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Gt` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             Gt => ">",
[INFO] [stdout]    |             ^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Gt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `LtEq` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             LtEq => "<=",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::LtEq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `GtEq` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |             GtEq => ">=",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::GtEq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Comma` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Comma => ",",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Semicolon` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Semicolon => ";",
[INFO] [stdout]    |             ^^^^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Semicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Lparen` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |             Lparen => "(",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Lparen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Rparen` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |             Rparen => ")",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Rparen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Lbrace` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             Lbrace => "{",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Lbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Rbrace` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             Rbrace => "}",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Rbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Function` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             Function => "fn",
[INFO] [stdout]    |             ^^^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Let` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Let => "let",
[INFO] [stdout]    |             ^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `True` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |             True => "true",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::True`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `False` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             False => "false",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::False`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `If` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |             If => "if",
[INFO] [stdout]    |             ^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::If`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Else` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |             Else => "else",
[INFO] [stdout]    |             ^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Else`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Return` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |             Return => "return",
[INFO] [stdout]    |             ^^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Return`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `Eq` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Eq => "==",
[INFO] [stdout]    |             ^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::Eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0170]: pattern binding `NotEq` is named the same as one of the variants of the type `lexer::tokens::Token`
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             NotEq => "!=",
[INFO] [stdout]    |             ^^^^^ help: to match on the variant, qualify the path: `lexer::tokens::Token::NotEq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] 68 |
[INFO] [stdout] 69 |             Assign => "=",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 70 |             Plus => "+",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 71 |             Minus => "-",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 72 |             Bang => "!",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 73 |             Asterisk => "*",
[INFO] [stdout]    |             ^^^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 74 |             Slash => "/",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 75 |             Lt => "<",
[INFO] [stdout]    |             ^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 76 |             Gt => ">",
[INFO] [stdout]    |             ^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 77 |             LtEq => "<=",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 78 |             GtEq => ">=",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 80 |             Comma => ",",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 81 |             Semicolon => ";",
[INFO] [stdout]    |             ^^^^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 83 |             Lparen => "(",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 84 |             Rparen => ")",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 85 |             Lbrace => "{",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 86 |             Rbrace => "}",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 89 |             Function => "fn",
[INFO] [stdout]    |             ^^^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 90 |             Let => "let",
[INFO] [stdout]    |             ^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 91 |             True => "true",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 92 |             False => "false",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 93 |             If => "if",
[INFO] [stdout]    |             ^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 94 |             Else => "else",
[INFO] [stdout]    |             ^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 95 |             Return => "return",
[INFO] [stdout]    |             ^^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 97 |             Eq => "==",
[INFO] [stdout]    |             ^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 98 |             NotEq => "!=",
[INFO] [stdout]    |             ^^^^^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/monkey/src/lexer/tokens.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 67  |             Illegal => "ILLEGAL",
[INFO] [stdout]     |             ------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 100 |             _ => return Err(*self),
[INFO] [stdout]     |             ^ unreachable pattern
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> crates/monkey/src/ast/expr.rs:40:85
[INFO] [stdout]    |
[INFO] [stdout] 40 |             Token::Number(n) => Expression::NumberLiteral(n.parse::<i64>().map_err(|e| ParseError::BadNumber)?),
[INFO] [stdout]    |                                                                                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Custom`, `NoSemicolon`, `BadPrefixOperator`, `BadPostfixOperator`, and `ExpectedSemicolon` are never constructed
[INFO] [stdout]   --> crates/monkey/src/parser/parse_error.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum ParseError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 8  |     #[error("{0}")]
[INFO] [stdout] 9  |     Custom(&'static str),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     NoSemicolon,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     BadPrefixOperator {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     BadPostfixOperator {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     ExpectedSemicolon {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> crates/monkey/src/parser/parser.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn parse(s: &str) -> ParseResult<ast::Program<'_>> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `expect_or`, and `curr_token_or_err` are never used
[INFO] [stdout]   --> crates/monkey/src/parser/parser.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<'input> Parser<'input> {
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(input: &'input str) -> Parser<'input> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn expect_or(&mut self, expected: Token<'_>, err: ParseError) -> ParseResult<()> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn curr_token_or_err(&self) -> Result<Token<'input>, ParseError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/monkey/src/lexer/mod.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<'input> Lexer<'input> {
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 28 |     /// crete a new lexer iterator from a string
[INFO] [stdout] 29 |     pub fn new(input: &str) -> Lexer<'_> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LexerSender` is never constructed
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub struct LexerSender<'input> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `send` are never used
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl<'input> LexerSender<'input> {
[INFO] [stdout]     | -------------------------------- associated items in this implementation
[INFO] [stdout] 213 |     fn new(input: &'input str, sender: Sender<Option<Token<'input>>>) -> LexerSender<'input> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     fn send(self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 235 | impl<'input> LexerReceiver<'input> {
[INFO] [stdout]     | ---------------------------------- associated function in this implementation
[INFO] [stdout] 236 |     fn new(receiver: Receiver<Option<Token<'input>>>) -> LexerReceiver<'input> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lexer_channel` is never used
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn lexer_channel(input: &str) -> (LexerSender, LexerReceiver) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `curr_token` are never used
[INFO] [stdout]    --> crates/monkey/src/lexer/mod.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 274 | impl<'input> AdvancedLexer<'input> {
[INFO] [stdout]     | ---------------------------------- associated items in this implementation
[INFO] [stdout] 275 |     pub fn new(input: &str) -> AdvancedLexer<'_> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn curr_token(&self) -> Option<Token<'input>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `peek_pos`, `current_pos`, `current_pos_or_end`, and `len` are never used
[INFO] [stdout]   --> crates/monkey/src/lexer/advanced_chars.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a> AdvancedChars<'a> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 19 |     /// Creates a new advanced char iterator from a string.
[INFO] [stdout] 20 |     pub fn new(input: &str) -> AdvancedChars<'_> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn peek_pos(&self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn current_pos(&self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn current_pos_or_end(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `peek_pos`, `current_pos`, and `peek_item` are never used
[INFO] [stdout]   --> crates/monkey/src/common/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<T: Iterator> AdvancedIter<T> {
[INFO] [stdout]    | --------------------------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(mut iter: T) -> AdvancedIter<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn peek_pos(&self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn current_pos(&self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn peek_item(&self) -> Option<&<Self as Iterator>::Item> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Phantom` is never constructed
[INFO] [stdout]   --> crates/monkey/src/ast/expr.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub enum Expression<'a> {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     Phantom(std::marker::PhantomData<&'a str>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` 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: variants `Let` and `Return` are never constructed
[INFO] [stdout]   --> crates/monkey/src/ast/stmt.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub enum Statement<'a> {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 10 |     Let {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     Return(Expression<'a>),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` 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: variable `Illegal` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Illegal => "ILLEGAL",
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `illegal`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Assign` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Assign => "=",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `assign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Plus` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             Plus => "+",
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `plus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Minus` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Minus => "-",
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case: `minus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Bang` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |             Bang => "!",
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `bang`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Asterisk` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |             Asterisk => "*",
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `asterisk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Slash` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Slash => "/",
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case (notice the capitalization): `slash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Lt` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |             Lt => "<",
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `lt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Gt` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             Gt => ">",
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `gt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `LtEq` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             LtEq => "<=",
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `lt_eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `GtEq` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |             GtEq => ">=",
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `gt_eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Comma` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Comma => ",",
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case (notice the capitalization): `comma`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Semicolon` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Semicolon => ";",
[INFO] [stdout]    |             ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `semicolon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Lparen` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |             Lparen => "(",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `lparen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Rparen` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |             Rparen => ")",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `rparen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Lbrace` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             Lbrace => "{",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `lbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Rbrace` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             Rbrace => "}",
[INFO] [stdout]    |             ^^^^^^ help: convert the identifier to snake case: `rbrace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Function` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |             Function => "fn",
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Let` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Let => "let",
[INFO] [stdout]    |             ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 90 |             r#let => "let",
[INFO] [stdout]    |             ~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `True` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |             True => "true",
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 91 |             r#true => "true",
[INFO] [stdout]    |             ~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `False` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             False => "false",
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 92 |             r#false => "false",
[INFO] [stdout]    |             ~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `If` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |             If => "if",
[INFO] [stdout]    |             ^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 93 |             r#if => "if",
[INFO] [stdout]    |             ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Else` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |             Else => "else",
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 94 |             r#else => "else",
[INFO] [stdout]    |             ~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Return` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |             Return => "return",
[INFO] [stdout]    |             ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]    |
[INFO] [stdout] 95 |             r#return => "return",
[INFO] [stdout]    |             ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Eq` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Eq => "==",
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NotEq` should have a snake case name
[INFO] [stdout]   --> crates/monkey/src/lexer/tokens.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             NotEq => "!=",
[INFO] [stdout]    |             ^^^^^ help: convert the identifier to snake case: `not_eq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 96 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0170`.
[INFO] [stdout] 
[INFO] [stderr]  Documenting monkey_rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0603]: module `lexer` is private
[INFO] [stdout]  --> crates/monkey-cli/main.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use monkey::lexer::Lexer;
[INFO] [stdout]   |             ^^^^^ private module
[INFO] [stdout]   |
[INFO] [stdout] note: the module `lexer` is defined here
[INFO] [stdout]  --> /opt/rustwide/workdir/crates/monkey/src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | mod lexer;
[INFO] [stdout]   | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0603`.
[INFO] [stdout] 
[INFO] [stderr] error: could not document `monkey_rust`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `rustdoc --edition=2018 --crate-type bin --crate-name monkey crates/monkey-cli/main.rs -o /opt/rustwide/target/doc --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --document-private-items '-Arustdoc::private-intra-doc-links' -C metadata=4126d104276565ff -L dependency=/opt/rustwide/target/debug/deps --extern clap=/opt/rustwide/target/debug/deps/libclap-00a5943210d88e00.rmeta --extern crossbeam_utils=/opt/rustwide/target/debug/deps/libcrossbeam_utils-bd588b82eb75dda0.rmeta --extern env_logger=/opt/rustwide/target/debug/deps/libenv_logger-027cdecdf9e44a56.rmeta --extern log=/opt/rustwide/target/debug/deps/liblog-270a33703ac6bbe2.rmeta --extern monkey=/opt/rustwide/target/debug/deps/libmonkey-1eeb27407c7dca61.rmeta --extern rustyline=/opt/rustwide/target/debug/deps/librustyline-c0d4c6faf4602075.rmeta --cap-lints=warn --crate-version 0.1.0` (exit status: 1)
[INFO] running `Command { std: "docker" "inspect" "b4a7300b6220b896e282e6b4b1abe8ff35d0531d2f986fab39d9d5d02105be9c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b4a7300b6220b896e282e6b4b1abe8ff35d0531d2f986fab39d9d5d02105be9c", kill_on_drop: false }`
[INFO] [stdout] b4a7300b6220b896e282e6b4b1abe8ff35d0531d2f986fab39d9d5d02105be9c
