[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] testing oberblastmeister/monkey_rust against 1.60.0 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foberblastmeister%2Fmonkey_rust" "/workspace/builds/worker-39/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-39/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/oberblastmeister/monkey_rust on toolchain 1.60.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "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-39/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: "/workspace/cargo-home/bin/cargo" "+1.60.0" "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 os_str_bytes v2.3.2 [INFO] [stderr] Downloaded trybuild v1.0.35 [INFO] [stderr] Downloaded env_logger v0.8.1 [INFO] [stderr] Downloaded dirs-next v1.0.1 [INFO] [stderr] Downloaded rustyline v6.3.0 [INFO] [stderr] Downloaded dirs-sys-next v0.1.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-39/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-39/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] eabbec0a935ef513c21c63af204913bc20f8d64f79126a6efa3b421d1756b3c6 [INFO] running `Command { std: "docker" "start" "-a" "eabbec0a935ef513c21c63af204913bc20f8d64f79126a6efa3b421d1756b3c6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "eabbec0a935ef513c21c63af204913bc20f8d64f79126a6efa3b421d1756b3c6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eabbec0a935ef513c21c63af204913bc20f8d64f79126a6efa3b421d1756b3c6", kill_on_drop: false }` [INFO] [stdout] eabbec0a935ef513c21c63af204913bc20f8d64f79126a6efa3b421d1756b3c6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-39/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-39/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 858c84e08aedc741080f86957089f74fb62a6b65cbf0f3ca99b4d35245a93cce [INFO] running `Command { std: "docker" "start" "-a" "858c84e08aedc741080f86957089f74fb62a6b65cbf0f3ca99b4d35245a93cce", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling libc v0.2.79 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling syn v1.0.48 [INFO] [stderr] Compiling version_check v0.9.2 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling regex-syntax v0.6.20 [INFO] [stderr] Compiling termcolor v1.1.0 [INFO] [stderr] Compiling nix v0.18.0 [INFO] [stderr] Compiling unicode-width v0.1.8 [INFO] [stderr] Compiling hashbrown v0.9.1 [INFO] [stderr] Compiling humantime v2.0.1 [INFO] [stderr] Compiling os_str_bytes v2.3.2 [INFO] [stderr] Compiling utf8parse v0.2.0 [INFO] [stderr] Compiling strsim v0.10.0 [INFO] [stderr] Compiling vec_map v0.8.2 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling thread_local v1.0.1 [INFO] [stderr] Compiling heck v0.3.1 [INFO] [stderr] Compiling humantime v1.3.0 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling textwrap v0.12.1 [INFO] [stderr] Compiling aho-corasick v0.7.14 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling regex v1.4.1 [INFO] [stderr] Compiling indexmap v1.6.0 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling dirs-sys-next v0.1.0 [INFO] [stderr] Compiling env_logger v0.8.1 [INFO] [stderr] Compiling env_logger v0.7.1 [INFO] [stderr] Compiling dirs-next v1.0.1 [INFO] [stderr] Compiling rustyline v6.3.0 [INFO] [stderr] Compiling thiserror-impl v1.0.22 [INFO] [stderr] Compiling clap_derive v3.0.0-beta.2 [INFO] [stderr] Compiling thiserror v1.0.22 [INFO] [stderr] Compiling monkey v0.1.0 (/opt/rustwide/workdir/crates/monkey) [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: an associated function with this name may be added to the standard library in the future [INFO] [stdout] --> crates/monkey/src/lexer/advanced_chars.rs:72:59 [INFO] [stdout] | [INFO] [stdout] 72 | let (current_pos, current_ch) = self.chars.next().unzip(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unstable_name_collisions)]` on by default [INFO] [stdout] = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stdout] = note: for more information, see issue #48919 [INFO] [stdout] = help: call with fully qualified syntax `OptionExt::unzip(...)` to keep using the current method [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an associated function with this name may be added to the standard library in the future [INFO] [stdout] --> crates/monkey/src/lexer/advanced_chars.rs:75:71 [INFO] [stdout] | [INFO] [stdout] 75 | let (peek_pos, peek_ch) = self.chars.peek().map(Clone::clone).unzip(); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior! [INFO] [stdout] = note: for more information, see issue #48919 [INFO] [stdout] = help: call with fully qualified syntax `OptionExt::unzip(...)` to keep using the current method [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling clap v3.0.0-beta.2 [INFO] [stdout] warning[E0170]: pattern binding `Illegal` is named the same as one of the variants of the type `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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 `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: `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::().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: associated function is never used: `new` [INFO] [stdout] --> crates/monkey/src/lexer/mod.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn new(input: &str) -> Lexer<'_> { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `LexerSender` [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 function is never used: `new` [INFO] [stdout] --> crates/monkey/src/lexer/mod.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 213 | fn new(input: &'input str, sender: Sender>>) -> LexerSender<'input> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `send` [INFO] [stdout] --> crates/monkey/src/lexer/mod.rs:222:8 [INFO] [stdout] | [INFO] [stdout] 222 | fn send(self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> crates/monkey/src/lexer/mod.rs:236:8 [INFO] [stdout] | [INFO] [stdout] 236 | fn new(receiver: Receiver>>) -> LexerReceiver<'input> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `lexer_channel` [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 function is never used: `new` [INFO] [stdout] --> crates/monkey/src/lexer/mod.rs:275:12 [INFO] [stdout] | [INFO] [stdout] 275 | pub fn new(input: &str) -> AdvancedLexer<'_> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `curr_token` [INFO] [stdout] --> crates/monkey/src/lexer/mod.rs:284:12 [INFO] [stdout] | [INFO] [stdout] 284 | pub fn curr_token(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> crates/monkey/src/common/mod.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new(mut iter: T) -> AdvancedIter { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `peek_pos` [INFO] [stdout] --> crates/monkey/src/common/mod.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn peek_pos(&self) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `current_pos` [INFO] [stdout] --> crates/monkey/src/common/mod.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn current_pos(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `peek_item` [INFO] [stdout] --> crates/monkey/src/common/mod.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn peek_item(&self) -> Option<&::Item> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Custom` [INFO] [stdout] --> crates/monkey/src/parser/parse_error.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | Custom(&'static str), [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] --> crates/monkey/src/parser/parse_error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Error, Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `NoSemicolon` [INFO] [stdout] --> crates/monkey/src/parser/parse_error.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | NoSemicolon, [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] --> crates/monkey/src/parser/parse_error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Error, Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `BadPrefixOperator` [INFO] [stdout] --> crates/monkey/src/parser/parse_error.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / BadPrefixOperator { [INFO] [stdout] 22 | | op: String, [INFO] [stdout] 23 | | }, [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] --> crates/monkey/src/parser/parse_error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Error, Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `BadPostfixOperator` [INFO] [stdout] --> crates/monkey/src/parser/parse_error.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / BadPostfixOperator { [INFO] [stdout] 27 | | op: String [INFO] [stdout] 28 | | }, [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] --> crates/monkey/src/parser/parse_error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Error, Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `ExpectedSemicolon` [INFO] [stdout] --> crates/monkey/src/parser/parse_error.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | / ExpectedSemicolon { [INFO] [stdout] 32 | | got: String, [INFO] [stdout] 33 | | }, [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] --> crates/monkey/src/parser/parse_error.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Error, Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `parse` [INFO] [stdout] --> crates/monkey/src/parser/parser.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn parse(s: &str) -> ParseResult> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> crates/monkey/src/parser/parser.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new(input: &'input str) -> Parser<'input> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `expect_or` [INFO] [stdout] --> crates/monkey/src/parser/parser.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn expect_or(&mut self, expected: Token<'_>, err: ParseError) -> ParseResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `curr_token_or_err` [INFO] [stdout] --> crates/monkey/src/parser/parser.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn curr_token_or_err(&self) -> Result, ParseError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> crates/monkey/src/lexer/advanced_chars.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn new(input: &str) -> AdvancedChars<'_> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `peek_pos` [INFO] [stdout] --> crates/monkey/src/lexer/advanced_chars.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn peek_pos(&self) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `current_pos` [INFO] [stdout] --> crates/monkey/src/lexer/advanced_chars.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn current_pos(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `current_pos_or_end` [INFO] [stdout] --> crates/monkey/src/lexer/advanced_chars.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn current_pos_or_end(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `len` [INFO] [stdout] --> crates/monkey/src/lexer/advanced_chars.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Phantom` [INFO] [stdout] --> crates/monkey/src/ast/expr.rs:19:5 [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] --> crates/monkey/src/ast/expr.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Let` [INFO] [stdout] --> crates/monkey/src/ast/stmt.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / Let { [INFO] [stdout] 11 | | ident: Token<'a>, [INFO] [stdout] 12 | | value: Expression<'a>, [INFO] [stdout] 13 | | }, [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] --> crates/monkey/src/ast/stmt.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Return` [INFO] [stdout] --> crates/monkey/src/ast/stmt.rs:14:5 [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] --> crates/monkey/src/ast/stmt.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Debug, Clone, PartialEq)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [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: 114 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0170`. [INFO] [stdout] [INFO] [stderr] Compiling 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] warning: unused import: `std::sync::mpsc::channel` [INFO] [stdout] --> crates/monkey-cli/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::mpsc::channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crossbeam_utils::thread` [INFO] [stdout] --> crates/monkey-cli/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crossbeam_utils::thread; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to previous error; 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0603`. [INFO] [stdout] [INFO] [stderr] error: could not compile `monkey_rust` due to 2 previous errors; 2 warnings emitted [INFO] running `Command { std: "docker" "inspect" "858c84e08aedc741080f86957089f74fb62a6b65cbf0f3ca99b4d35245a93cce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "858c84e08aedc741080f86957089f74fb62a6b65cbf0f3ca99b4d35245a93cce", kill_on_drop: false }` [INFO] [stdout] 858c84e08aedc741080f86957089f74fb62a6b65cbf0f3ca99b4d35245a93cce