[INFO] cloning repository https://github.com/huwenchao/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/huwenchao/monkey-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhuwenchao%2Fmonkey-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhuwenchao%2Fmonkey-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fb77c9f547a106661e0ce99777d9d711460951f3 [INFO] checking huwenchao/monkey-rust against try#87f2ecc56b5f6032b075c8934ebc77f28d57183c for pr-148190 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhuwenchao%2Fmonkey-rust" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/huwenchao/monkey-rust [INFO] finished tweaking git repo https://github.com/huwenchao/monkey-rust [INFO] tweaked toml for git repo https://github.com/huwenchao/monkey-rust written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/huwenchao/monkey-rust on toolchain 87f2ecc56b5f6032b075c8934ebc77f28d57183c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+87f2ecc56b5f6032b075c8934ebc77f28d57183c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/huwenchao/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" "+87f2ecc56b5f6032b075c8934ebc77f28d57183c" "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 proc-macro2 v1.0.20 [INFO] [stderr] Downloaded thiserror-impl v1.0.20 [INFO] [stderr] Downloaded thiserror v1.0.20 [INFO] [stderr] Downloaded syn v1.0.40 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+87f2ecc56b5f6032b075c8934ebc77f28d57183c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c938b0af189fd429cbdac91ce6a55d275418138beac7cc69f22cff22518a0e77 [INFO] running `Command { std: "docker" "start" "-a" "c938b0af189fd429cbdac91ce6a55d275418138beac7cc69f22cff22518a0e77", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c938b0af189fd429cbdac91ce6a55d275418138beac7cc69f22cff22518a0e77", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c938b0af189fd429cbdac91ce6a55d275418138beac7cc69f22cff22518a0e77", kill_on_drop: false }` [INFO] [stdout] c938b0af189fd429cbdac91ce6a55d275418138beac7cc69f22cff22518a0e77 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+87f2ecc56b5f6032b075c8934ebc77f28d57183c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0b2b4436bfffdea8f5dca5c719c5871630cee117d07bcb9f56a5faaba59b145b [INFO] running `Command { std: "docker" "start" "-a" "0b2b4436bfffdea8f5dca5c719c5871630cee117d07bcb9f56a5faaba59b145b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.20 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling syn v1.0.40 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling thiserror-impl v1.0.20 [INFO] [stderr] Checking thiserror v1.0.20 [INFO] [stderr] Checking monkey-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::token::Token` [INFO] [stdout] --> src/ast.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::token::Token; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Token` and `Type` [INFO] [stdout] --> src/ast.rs:226:24 [INFO] [stdout] | [INFO] [stdout] 226 | use crate::token::{Token, Type}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Token` and `lookup_ident` [INFO] [stdout] --> src/lexer.rs:234:24 [INFO] [stdout] | [INFO] [stdout] 234 | use crate::token::{lookup_ident, Token, Type}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IfExpression` [INFO] [stdout] --> src/parser.rs:2:68 [INFO] [stdout] | [INFO] [stdout] 2 | ArrayLiteral, CallExpression, Expression, ExpressionStatement, IfExpression, IndexExpression, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ident` [INFO] [stdout] --> src/parser.rs:331:21 [INFO] [stdout] | [INFO] [stdout] 331 | Expression, Ident, LetStatement, PrefixExpression, ReturnStatement, Statement, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser.rs:189:21 [INFO] [stdout] | [INFO] [stdout] 189 | ) -> Option ParseResult>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 189 | ) -> Option ParseResult>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 233 | ) -> Option ParseResult>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 233 | ) -> Option ParseResult>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::token::Token` [INFO] [stdout] --> src/ast.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::token::Token; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `IfExpression` [INFO] [stdout] --> src/parser.rs:2:68 [INFO] [stdout] | [INFO] [stdout] 2 | ArrayLiteral, CallExpression, Expression, ExpressionStatement, IfExpression, IndexExpression, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser.rs:189:21 [INFO] [stdout] | [INFO] [stdout] 189 | ) -> Option ParseResult>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 189 | ) -> Option ParseResult>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parser.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 233 | ) -> Option ParseResult>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 233 | ) -> Option ParseResult>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/ast.rs:126:22 [INFO] [stdout] | [INFO] [stdout] 126 | Self::If(p) => todo!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/ast.rs:126:22 [INFO] [stdout] | [INFO] [stdout] 126 | Self::If(p) => todo!(), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Ident` is never used [INFO] [stdout] --> src/ast.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub type Ident = String; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/ast.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Statement` is never used [INFO] [stdout] --> src/ast.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum Statement { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LetStatement` is never constructed [INFO] [stdout] --> src/ast.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct LetStatement { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ReturnStatement` is never constructed [INFO] [stdout] --> src/ast.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct ReturnStatement { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExpressionStatement` is never constructed [INFO] [stdout] --> src/ast.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct ExpressionStatement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Expression` is never used [INFO] [stdout] --> src/ast.rs:86:10 [INFO] [stdout] | [INFO] [stdout] 86 | pub enum Expression { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CallExpression` is never constructed [INFO] [stdout] --> src/ast.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 152 | pub struct CallExpression { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FunctionExpression` is never constructed [INFO] [stdout] --> src/ast.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 158 | pub struct FunctionExpression { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ArrayLiteral` is never constructed [INFO] [stdout] --> src/ast.rs:170:12 [INFO] [stdout] | [INFO] [stdout] 170 | pub struct ArrayLiteral(pub Vec>); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IndexExpression` is never constructed [INFO] [stdout] --> src/ast.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | pub struct IndexExpression { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BlockStatement` is never constructed [INFO] [stdout] --> src/ast.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct BlockStatement { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IfExpression` is never constructed [INFO] [stdout] --> src/ast.rs:203:12 [INFO] [stdout] | [INFO] [stdout] 203 | pub struct IfExpression { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PrefixExpression` is never constructed [INFO] [stdout] --> src/ast.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | pub struct PrefixExpression { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InfixExpression` is never constructed [INFO] [stdout] --> src/ast.rs:216:12 [INFO] [stdout] | [INFO] [stdout] 216 | pub struct InfixExpression { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ZERO_CHAR` is never used [INFO] [stdout] --> src/lexer.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const ZERO_CHAR: char = '\u{0}'; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lexer` is never constructed [INFO] [stdout] --> src/lexer.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Lexer { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `If`, `Function`, and `String` are never constructed [INFO] [stdout] --> src/ast.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 86 | pub enum Expression { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 90 | If(IfExpression), [INFO] [stdout] | ^^ [INFO] [stdout] 91 | Function(FunctionExpression), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 92 | Call(CallExpression), [INFO] [stdout] 93 | String(String), [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] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `errors` is never read [INFO] [stdout] --> src/parser.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct Parser { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 37 | l: Lexer, [INFO] [stdout] 38 | errors: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/lexer.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Lexer { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 14 | pub fn new(input: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn read_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn skip_whitespace(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn skip_comment(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | fn peek_char(&mut self) -> char { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | fn read(&mut self, check_fn: fn(char) -> bool) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn read_ident(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | fn read_number(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | fn read_number_token(&mut self) -> Token { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn read_string(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn next_token(&mut self) -> Token { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_letter` is never used [INFO] [stdout] --> src/lexer.rs:223:4 [INFO] [stdout] | [INFO] [stdout] 223 | fn is_letter(ch: char) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_digit` is never used [INFO] [stdout] --> src/lexer.rs:227:4 [INFO] [stdout] | [INFO] [stdout] 227 | fn is_digit(ch: char) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ParseError` is never used [INFO] [stdout] --> src/parser.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum ParseError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ParseResult` is never used [INFO] [stdout] --> src/parser.rs:21:10 [INFO] [stdout] | [INFO] [stdout] 21 | pub type ParseResult = Result; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Precedence` is never used [INFO] [stdout] --> src/parser.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum Precedence { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Parser` is never constructed [INFO] [stdout] --> src/parser.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/parser.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Parser { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 44 | pub fn new(mut l: Lexer) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | fn next_token(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn parse_program(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn parse_statement(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | fn parse_return_statement(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn peek_error(&mut self, t: Type) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn expect_peek(&mut self, t: Type) -> ParseResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn parse_let_statement(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | fn cur_token_is(&self, t: Type) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | fn peek_precedence(&self) -> Precedence { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | fn parse_expression(&mut self, precedence: Precedence) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | fn parse_ident(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | fn parse_int(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | fn parse_boolean(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | fn parse_float(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | fn prefix_parse_fns( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | fn parse_array_literal(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | fn parse_grouped_expression(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | fn parse_prefix_expression(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 230 | fn infix_parse_fns( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 250 | fn parse_index_expression(&mut self, left: Expression) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | fn parse_expression_list(&mut self, end: Type) -> ParseResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | fn parse_call_expression(&mut self, function: Expression) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | fn parse_infix_expression(&mut self, left: Expression) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | fn parse_expression_statement(&mut self) -> ParseResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `type_to_predence` is never used [INFO] [stdout] --> src/parser.rs:315:4 [INFO] [stdout] | [INFO] [stdout] 315 | fn type_to_predence(t: &Type) -> Precedence { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Type` is never used [INFO] [stdout] --> src/token.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum Type { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Token` is never constructed [INFO] [stdout] --> src/token.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lookup_ident` is never used [INFO] [stdout] --> src/token.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn lookup_ident(s: &str) -> Type { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `peek_error` is never used [INFO] [stdout] --> src/parser.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 43 | impl Parser { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 94 | fn peek_error(&mut self, t: Type) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.08s [INFO] running `Command { std: "docker" "inspect" "0b2b4436bfffdea8f5dca5c719c5871630cee117d07bcb9f56a5faaba59b145b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0b2b4436bfffdea8f5dca5c719c5871630cee117d07bcb9f56a5faaba59b145b", kill_on_drop: false }` [INFO] [stdout] 0b2b4436bfffdea8f5dca5c719c5871630cee117d07bcb9f56a5faaba59b145b