[INFO] cloning repository https://github.com/lucasmolinari/interpreter [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lucasmolinari/interpreter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucasmolinari%2Finterpreter", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucasmolinari%2Finterpreter'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 66cd6124c12adcaad66d531e65e9626a0037d860 [INFO] checking lucasmolinari/interpreter against master#af4a5a13a15fa0c60e06321077ef452f769b42fd for pr-122960-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucasmolinari%2Finterpreter" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/lucasmolinari/interpreter on toolchain af4a5a13a15fa0c60e06321077ef452f769b42fd [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/lucasmolinari/interpreter [INFO] finished tweaking git repo https://github.com/lucasmolinari/interpreter [INFO] tweaked toml for git repo https://github.com/lucasmolinari/interpreter written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/lucasmolinari/interpreter 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" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3c08df952b17cb1276088f8b6f85c427e8ff5a7d3b0c5cbe536cb5df75149449 [INFO] running `Command { std: "docker" "start" "-a" "3c08df952b17cb1276088f8b6f85c427e8ff5a7d3b0c5cbe536cb5df75149449", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3c08df952b17cb1276088f8b6f85c427e8ff5a7d3b0c5cbe536cb5df75149449", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3c08df952b17cb1276088f8b6f85c427e8ff5a7d3b0c5cbe536cb5df75149449", kill_on_drop: false }` [INFO] [stdout] 3c08df952b17cb1276088f8b6f85c427e8ff5a7d3b0c5cbe536cb5df75149449 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bc5b4a3a22366993e302231cc7e1d954c9121bbbdc522ae58dcbae256ebe859b [INFO] running `Command { std: "docker" "start" "-a" "bc5b4a3a22366993e302231cc7e1d954c9121bbbdc522ae58dcbae256ebe859b", kill_on_drop: false }` [INFO] [stderr] Checking interpreter v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `ExpressionStatement`, `Node`, `Statement` [INFO] [stdout] --> src/tests.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser_utils::{ast::{ExpressionStatement, Node, Statement}, parser::Parser}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer_utils::lexer::Lexer` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use lexer_utils::lexer::Lexer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `parser_utils::parser::Parser` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use parser_utils::parser::Parser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer_utils::repl` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use lexer_utils::repl; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `lexer::Lexer`, `token::TokenType` [INFO] [stdout] --> src/tests.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::lexer_utils::{lexer::Lexer, token::TokenType}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> src/main.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | mod tests; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ExpressionStatement`, `Node`, `Statement`, `parser::Parser` [INFO] [stdout] --> src/tests.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser_utils::{ast::{ExpressionStatement, Node, Statement}, parser::Parser}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module [INFO] [stdout] --> src/main.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | mod tests; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer_utils::lexer::Lexer` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use lexer_utils::lexer::Lexer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `parser_utils::parser::Parser` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use parser_utils::parser::Parser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lexer_utils::repl` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use lexer_utils::repl; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lexer_utils/lexer.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | let mut tok: Token; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lexer_utils/lexer.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | let mut tok: Token; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `precedence` [INFO] [stdout] --> src/parser_utils/parser.rs:137:36 [INFO] [stdout] | [INFO] [stdout] 137 | fn parse_expression(&mut self, precedence: Precedence) -> Result { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precedence` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/lexer_utils/repl.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn start(){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Expression` is never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Node { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 5 | Statement(Statement), [INFO] [stdout] 6 | Expression(Expression), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/parser_utils/ast.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Node { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 9 | pub fn get_node(&self) -> &Node { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn is_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn is_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn is_return_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn is_let_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_identifier(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn is_integer_literal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn is_prefix_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `PrefixExpression` and `InfixExpression` are never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub enum Expression { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 88 | PrefixExpression(PrefixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 89 | InfixExpression(InfixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `precedence` [INFO] [stdout] --> src/parser_utils/parser.rs:137:36 [INFO] [stdout] | [INFO] [stdout] 137 | fn parse_expression(&mut self, precedence: Precedence) -> Result { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precedence` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `infix_parse` is never read [INFO] [stdout] --> src/parser_utils/parser.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Parser { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 23 | infix_parse: HashMap, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `register_infix` and `errors` are never used [INFO] [stdout] --> src/parser_utils/parser.rs:171:8 [INFO] [stdout] | [INFO] [stdout] 25 | impl Parser { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 171 | fn register_infix(&mut self, t: TokenType, fn_ptr: InfixParse) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn errors(&self) -> &Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EQUALS`, `LESSGREATER`, `SUM`, `PRODUCT`, `PREFIX`, and `CALL` are never constructed [INFO] [stdout] --> src/parser_utils/parser.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 204 | enum Precedence { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 205 | LOWEST = 0, [INFO] [stdout] 206 | EQUALS, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 207 | LESSGREATER, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 208 | SUM, [INFO] [stdout] | ^^^ [INFO] [stdout] 209 | PRODUCT, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 210 | PREFIX, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 211 | CALL, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lexer` is never constructed [INFO] [stdout] --> src/lexer_utils/lexer.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Lexer { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Lexer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/lexer_utils/lexer.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Lexer { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 13 | pub fn new(input: String) -> Lexer { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn read_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn next_token(&mut self) -> Token { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn read_identifier(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn read_int(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn is_letter(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn peek_char(&mut self) -> char { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn skip_space(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/lexer_utils/repl.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn start(){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lexer_utils/token.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum TokenType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 4 | ILLEGAL, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 5 | EOF, [INFO] [stdout] | ^^^ [INFO] [stdout] 6 | IDENT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | INT, [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | ASSIGN, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | EQ, [INFO] [stdout] | ^^ [INFO] [stdout] 10 | NOTEQ, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | PLUS, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | MINUS, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | BANG, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | ASTERISK, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 15 | SLASH, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 16 | COMMA, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | SEMICOLON, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 18 | LPAREN, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | RPAREN, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | LBRACE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | RBRACE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 22 | LT, [INFO] [stdout] | ^^ [INFO] [stdout] 23 | GT, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new_token` is never used [INFO] [stdout] --> src/lexer_utils/token.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl Token { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 39 | pub fn new_token(token_type: TokenType, literal: String) -> Token { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `map` is never read [INFO] [stdout] --> src/lexer_utils/token.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct Keywords { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 48 | pub map: HashMap<&'static str, TokenType>, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Keywords` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_ident` is never used [INFO] [stdout] --> src/lexer_utils/token.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl Keywords { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 51 | pub fn check_ident(&self, keyword: &str) -> TokenType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Node` is never used [INFO] [stdout] --> src/parser_utils/ast.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/parser_utils/ast.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Node { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 9 | pub fn get_node(&self) -> &Node { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn get_token(&self) -> &Token { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn is_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn is_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn is_return_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn is_let_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_identifier(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn is_integer_literal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn is_prefix_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `LetStatement`, `ReturnStatement`, and `ExpressionStatement` are never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 70 | pub enum Statement { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 71 | LetStatement(LetStatement), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 72 | ReturnStatement(ReturnStatement), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 73 | ExpressionStatement(ExpressionStatement), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `token` is never used [INFO] [stdout] --> src/parser_utils/ast.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 75 | impl Statement { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 76 | fn token(&self) -> &Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Identifier`, `IntegerLiteral`, `PrefixExpression`, and `InfixExpression` are never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub enum Expression { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 86 | Identifier(Identifier), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 87 | IntegerLiteral(IntegerLiteral), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 88 | PrefixExpression(PrefixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 89 | InfixExpression(InfixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `token` is never used [INFO] [stdout] --> src/parser_utils/ast.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 91 | impl Expression { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 92 | fn token(&self) -> &Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `PrefixParse` is never used [INFO] [stdout] --> src/parser_utils/parser.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | type PrefixParse = fn(&mut Parser) -> Result; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `InfixParse` is never used [INFO] [stdout] --> src/parser_utils/parser.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | type InfixParse = fn(&mut Parser, Node) -> Result; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Parser` is never constructed [INFO] [stdout] --> src/parser_utils/parser.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 13 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/parser_utils/parser.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Parser { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 26 | pub fn new(mut l: Lexer) -> Parser { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | fn register_parsers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | fn next_token(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn parse_program(&mut self) -> Program { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | fn parse_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn parse_let_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn parse_return_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn parse_expression_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn parse_expression(&mut self, precedence: Precedence) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn parse_identifier(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn parse_integer_literal(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | fn register_prefix(&mut self, t: TokenType, fn_ptr: PrefixParse) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | fn register_infix(&mut self, t: TokenType, fn_ptr: InfixParse) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | fn cur_token_is(&self, t: TokenType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | fn peek_token_is(&self, t: TokenType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn expect_peek(&mut self, t: TokenType) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | fn peek_error(&mut self, t: TokenType) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn errors(&self) -> &Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Precedence` is never used [INFO] [stdout] --> src/parser_utils/parser.rs:204:6 [INFO] [stdout] | [INFO] [stdout] 204 | enum Precedence { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 26 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.12s [INFO] running `Command { std: "docker" "inspect" "bc5b4a3a22366993e302231cc7e1d954c9121bbbdc522ae58dcbae256ebe859b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bc5b4a3a22366993e302231cc7e1d954c9121bbbdc522ae58dcbae256ebe859b", kill_on_drop: false }` [INFO] [stdout] bc5b4a3a22366993e302231cc7e1d954c9121bbbdc522ae58dcbae256ebe859b [INFO] checking lucasmolinari/interpreter against try#36dbcaee1a55543dfc181be52a69d99ff46ff62f for pr-122960-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucasmolinari%2Finterpreter" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/lucasmolinari/interpreter on toolchain 36dbcaee1a55543dfc181be52a69d99ff46ff62f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/lucasmolinari/interpreter [INFO] finished tweaking git repo https://github.com/lucasmolinari/interpreter [INFO] tweaked toml for git repo https://github.com/lucasmolinari/interpreter written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/lucasmolinari/interpreter 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" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7d380275823f62b75b18ea3b4669d26f5c3fd4cee06c35965f27b53b06ab7007 [INFO] running `Command { std: "docker" "start" "-a" "7d380275823f62b75b18ea3b4669d26f5c3fd4cee06c35965f27b53b06ab7007", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7d380275823f62b75b18ea3b4669d26f5c3fd4cee06c35965f27b53b06ab7007", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7d380275823f62b75b18ea3b4669d26f5c3fd4cee06c35965f27b53b06ab7007", kill_on_drop: false }` [INFO] [stdout] 7d380275823f62b75b18ea3b4669d26f5c3fd4cee06c35965f27b53b06ab7007 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fab5cbb363728d9d606816fa61a3d28e7c6987a19061796d7ee9fe3bd9077765 [INFO] running `Command { std: "docker" "start" "-a" "fab5cbb363728d9d606816fa61a3d28e7c6987a19061796d7ee9fe3bd9077765", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Checking interpreter v0.1.0 (/tmp/fixit) [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] Fixed src/main.rs (3 fixes) [INFO] [stderr] Fixed src/tests.rs (1 fix) [INFO] [stderr] Fixed src/lexer_utils/lexer.rs (1 fix) [INFO] [stdout] warning: unused variable: `precedence` [INFO] [stdout] --> src/parser_utils/parser.rs:137:36 [INFO] [stdout] | [INFO] [stdout] 137 | fn parse_expression(&mut self, precedence: Precedence) -> Result { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precedence` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/lexer_utils/repl.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn start(){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Expression` is never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Node { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 5 | Statement(Statement), [INFO] [stdout] 6 | Expression(Expression), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/parser_utils/ast.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Node { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 9 | pub fn get_node(&self) -> &Node { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn is_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn is_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn is_return_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn is_let_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_identifier(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn is_integer_literal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn is_prefix_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `PrefixExpression` and `InfixExpression` are never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub enum Expression { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 88 | PrefixExpression(PrefixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 89 | InfixExpression(InfixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `infix_parse` is never read [INFO] [stdout] --> src/parser_utils/parser.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Parser { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 23 | infix_parse: HashMap, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `register_infix` and `errors` are never used [INFO] [stdout] --> src/parser_utils/parser.rs:171:8 [INFO] [stdout] | [INFO] [stdout] 25 | impl Parser { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 171 | fn register_infix(&mut self, t: TokenType, fn_ptr: InfixParse) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn errors(&self) -> &Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EQUALS`, `LESSGREATER`, `SUM`, `PRODUCT`, `PREFIX`, and `CALL` are never constructed [INFO] [stdout] --> src/parser_utils/parser.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 204 | enum Precedence { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 205 | LOWEST = 0, [INFO] [stdout] 206 | EQUALS, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 207 | LESSGREATER, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 208 | SUM, [INFO] [stdout] | ^^^ [INFO] [stdout] 209 | PRODUCT, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 210 | PREFIX, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 211 | CALL, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Fixed src/tests.rs (2 fixes) [INFO] [stdout] warning: unused variable: `precedence` [INFO] [stdout] --> src/parser_utils/parser.rs:137:36 [INFO] [stdout] | [INFO] [stdout] 137 | fn parse_expression(&mut self, precedence: Precedence) -> Result { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precedence` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lexer` is never constructed [INFO] [stdout] --> src/lexer_utils/lexer.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Lexer { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Lexer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/lexer_utils/lexer.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Lexer { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 13 | pub fn new(input: String) -> Lexer { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn read_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn next_token(&mut self) -> Token { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn read_identifier(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn read_int(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn is_letter(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn peek_char(&mut self) -> char { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn skip_space(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/lexer_utils/repl.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn start(){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lexer_utils/token.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum TokenType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 4 | ILLEGAL, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 5 | EOF, [INFO] [stdout] | ^^^ [INFO] [stdout] 6 | IDENT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | INT, [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | ASSIGN, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | EQ, [INFO] [stdout] | ^^ [INFO] [stdout] 10 | NOTEQ, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | PLUS, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | MINUS, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | BANG, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | ASTERISK, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 15 | SLASH, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 16 | COMMA, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | SEMICOLON, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 18 | LPAREN, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | RPAREN, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | LBRACE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | RBRACE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 22 | LT, [INFO] [stdout] | ^^ [INFO] [stdout] 23 | GT, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new_token` is never used [INFO] [stdout] --> src/lexer_utils/token.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl Token { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 39 | pub fn new_token(token_type: TokenType, literal: String) -> Token { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `map` is never read [INFO] [stdout] --> src/lexer_utils/token.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct Keywords { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 48 | pub map: HashMap<&'static str, TokenType>, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Keywords` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_ident` is never used [INFO] [stdout] --> src/lexer_utils/token.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl Keywords { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 51 | pub fn check_ident(&self, keyword: &str) -> TokenType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Node` is never used [INFO] [stdout] --> src/parser_utils/ast.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/parser_utils/ast.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Node { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 9 | pub fn get_node(&self) -> &Node { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn get_token(&self) -> &Token { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn is_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn is_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn is_return_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn is_let_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_identifier(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn is_integer_literal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn is_prefix_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `LetStatement`, `ReturnStatement`, and `ExpressionStatement` are never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 70 | pub enum Statement { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 71 | LetStatement(LetStatement), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 72 | ReturnStatement(ReturnStatement), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 73 | ExpressionStatement(ExpressionStatement), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `token` is never used [INFO] [stdout] --> src/parser_utils/ast.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 75 | impl Statement { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 76 | fn token(&self) -> &Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Identifier`, `IntegerLiteral`, `PrefixExpression`, and `InfixExpression` are never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub enum Expression { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 86 | Identifier(Identifier), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 87 | IntegerLiteral(IntegerLiteral), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 88 | PrefixExpression(PrefixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 89 | InfixExpression(InfixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `token` is never used [INFO] [stdout] --> src/parser_utils/ast.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 91 | impl Expression { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 92 | fn token(&self) -> &Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `PrefixParse` is never used [INFO] [stdout] --> src/parser_utils/parser.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | type PrefixParse = fn(&mut Parser) -> Result; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `InfixParse` is never used [INFO] [stdout] --> src/parser_utils/parser.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | type InfixParse = fn(&mut Parser, Node) -> Result; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Parser` is never constructed [INFO] [stdout] --> src/parser_utils/parser.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/parser_utils/parser.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Parser { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 26 | pub fn new(mut l: Lexer) -> Parser { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | fn register_parsers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | fn next_token(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn parse_program(&mut self) -> Program { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | fn parse_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn parse_let_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn parse_return_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn parse_expression_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn parse_expression(&mut self, precedence: Precedence) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn parse_identifier(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn parse_integer_literal(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | fn register_prefix(&mut self, t: TokenType, fn_ptr: PrefixParse) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | fn register_infix(&mut self, t: TokenType, fn_ptr: InfixParse) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | fn cur_token_is(&self, t: TokenType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | fn peek_token_is(&self, t: TokenType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn expect_peek(&mut self, t: TokenType) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | fn peek_error(&mut self, t: TokenType) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn errors(&self) -> &Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Precedence` is never used [INFO] [stdout] --> src/parser_utils/parser.rs:204:6 [INFO] [stdout] | [INFO] [stdout] 204 | enum Precedence { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 20 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.36s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking interpreter v0.1.0 (/tmp/fixit) [INFO] [stdout] warning: unused variable: `precedence` [INFO] [stdout] --> src/parser_utils/parser.rs:137:36 [INFO] [stdout] | [INFO] [stdout] 137 | fn parse_expression(&mut self, precedence: Precedence) -> Result { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precedence` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Lexer` [INFO] [stdout] --> src/tests.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | let mut l = Lexer::new(input); [INFO] [stdout] | ^^^^^ use of undeclared type `Lexer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::lexer::Lexer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | ("let", TokenType::LET), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | ("x", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | ("=", TokenType::ASSIGN), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | ("5", TokenType::INT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | (";", TokenType::SEMICOLON), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | ("let", TokenType::LET), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | ("add", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | ("=", TokenType::ASSIGN), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lexer` is never constructed [INFO] [stdout] --> src/lexer_utils/lexer.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Lexer { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Lexer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | ("fn", TokenType::FUNCTION), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:17:15 [INFO] [stdout] | [INFO] [stdout] 17 | ("(", TokenType::LPAREN), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | ("x", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/lexer_utils/lexer.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Lexer { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 13 | pub fn new(input: String) -> Lexer { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn read_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn next_token(&mut self) -> Token { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn read_identifier(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn read_int(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn is_letter(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn peek_char(&mut self) -> char { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn skip_space(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | (",", TokenType::COMMA), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/lexer_utils/repl.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn start(){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:20:15 [INFO] [stdout] | [INFO] [stdout] 20 | ("y", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:21:15 [INFO] [stdout] | [INFO] [stdout] 21 | (")", TokenType::RPAREN), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:22:15 [INFO] [stdout] | [INFO] [stdout] 22 | ("{", TokenType::LBRACE), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:23:15 [INFO] [stdout] | [INFO] [stdout] 23 | ("x", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:24:15 [INFO] [stdout] | [INFO] [stdout] 24 | ("+", TokenType::PLUS), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lexer_utils/token.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum TokenType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 4 | ILLEGAL, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 5 | EOF, [INFO] [stdout] | ^^^ [INFO] [stdout] 6 | IDENT, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | INT, [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | ASSIGN, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | EQ, [INFO] [stdout] | ^^ [INFO] [stdout] 10 | NOTEQ, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | PLUS, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | MINUS, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | BANG, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | ASTERISK, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 15 | SLASH, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 16 | COMMA, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 17 | SEMICOLON, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 18 | LPAREN, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | RPAREN, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | LBRACE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | RBRACE, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 22 | LT, [INFO] [stdout] | ^^ [INFO] [stdout] 23 | GT, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:25:15 [INFO] [stdout] | [INFO] [stdout] 25 | ("y", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:26:15 [INFO] [stdout] | [INFO] [stdout] 26 | ("}", TokenType::RBRACE), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new_token` is never used [INFO] [stdout] --> src/lexer_utils/token.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl Token { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 39 | pub fn new_token(token_type: TokenType, literal: String) -> Token { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:27:15 [INFO] [stdout] | [INFO] [stdout] 27 | (";", TokenType::SEMICOLON), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `map` is never read [INFO] [stdout] --> src/lexer_utils/token.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 47 | pub struct Keywords { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 48 | pub map: HashMap<&'static str, TokenType>, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Keywords` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_ident` is never used [INFO] [stdout] --> src/lexer_utils/token.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl Keywords { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 51 | pub fn check_ident(&self, keyword: &str) -> TokenType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | ("let", TokenType::LET), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Node` is never used [INFO] [stdout] --> src/parser_utils/ast.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:29:20 [INFO] [stdout] | [INFO] [stdout] 29 | ("result", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | ("=", TokenType::ASSIGN), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/parser_utils/ast.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Node { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] 9 | pub fn get_node(&self) -> &Node { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn get_token(&self) -> &Token { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn is_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn is_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn is_return_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn is_let_stmt(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn is_identifier(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn is_integer_literal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn is_prefix_expr(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:31:17 [INFO] [stdout] | [INFO] [stdout] 31 | ("add", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `LetStatement`, `ReturnStatement`, and `ExpressionStatement` are never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 70 | pub enum Statement { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 71 | LetStatement(LetStatement), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 72 | ReturnStatement(ReturnStatement), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 73 | ExpressionStatement(ExpressionStatement), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:32:15 [INFO] [stdout] | [INFO] [stdout] 32 | ("(", TokenType::LPAREN), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `token` is never used [INFO] [stdout] --> src/parser_utils/ast.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 75 | impl Statement { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 76 | fn token(&self) -> &Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | ("5", TokenType::INT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Identifier`, `IntegerLiteral`, `PrefixExpression`, and `InfixExpression` are never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub enum Expression { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 86 | Identifier(Identifier), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 87 | IntegerLiteral(IntegerLiteral), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 88 | PrefixExpression(PrefixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 89 | InfixExpression(InfixExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:34:15 [INFO] [stdout] | [INFO] [stdout] 34 | (",", TokenType::COMMA), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `token` is never used [INFO] [stdout] --> src/parser_utils/ast.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 91 | impl Expression { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 92 | fn token(&self) -> &Token { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:35:15 [INFO] [stdout] | [INFO] [stdout] 35 | ("5", TokenType::INT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Program` is never constructed [INFO] [stdout] --> src/parser_utils/ast.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | pub struct Program { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:36:15 [INFO] [stdout] | [INFO] [stdout] 36 | (")", TokenType::RPAREN), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `PrefixParse` is never used [INFO] [stdout] --> src/parser_utils/parser.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | type PrefixParse = fn(&mut Parser) -> Result; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `InfixParse` is never used [INFO] [stdout] --> src/parser_utils/parser.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | type InfixParse = fn(&mut Parser, Node) -> Result; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 37 | (";", TokenType::SEMICOLON), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Parser` is never constructed [INFO] [stdout] --> src/parser_utils/parser.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Parser { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:38:16 [INFO] [stdout] | [INFO] [stdout] 38 | ("\0", TokenType::EOF), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Lexer` [INFO] [stdout] --> src/tests.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 56 | let l = Lexer::new(input); [INFO] [stdout] | ^^^^^ use of undeclared type `Lexer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::lexer::Lexer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/tests.rs:57:21 [INFO] [stdout] | [INFO] [stdout] 57 | let mut p = Parser::new(l); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser_utils::parser::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:64:49 [INFO] [stdout] | [INFO] [stdout] 64 | assert_eq!(stmt.get_token().token_type, TokenType::LET); [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/parser_utils/parser.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Parser { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 26 | pub fn new(mut l: Lexer) -> Parser { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | fn register_parsers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | fn next_token(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn parse_program(&mut self) -> Program { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | fn parse_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn parse_let_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn parse_return_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn parse_expression_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn parse_expression(&mut self, precedence: Precedence) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn parse_identifier(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn parse_integer_literal(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | fn register_prefix(&mut self, t: TokenType, fn_ptr: PrefixParse) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | fn register_infix(&mut self, t: TokenType, fn_ptr: InfixParse) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | fn cur_token_is(&self, t: TokenType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | fn peek_token_is(&self, t: TokenType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn expect_peek(&mut self, t: TokenType) -> Result<(), ()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | fn peek_error(&mut self, t: TokenType) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn errors(&self) -> &Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Precedence` is never used [INFO] [stdout] --> src/parser_utils/parser.rs:204:6 [INFO] [stdout] | [INFO] [stdout] 204 | enum Precedence { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Lexer` [INFO] [stdout] --> src/tests.rs:75:17 [INFO] [stdout] | [INFO] [stdout] 75 | let l = Lexer::new(input); [INFO] [stdout] | ^^^^^ use of undeclared type `Lexer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::lexer::Lexer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/tests.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | let mut p = Parser::new(l); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser_utils::parser::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:83:49 [INFO] [stdout] | [INFO] [stdout] 83 | assert_eq!(stmt.get_token().token_type, TokenType::RETURN); [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Lexer` [INFO] [stdout] --> src/tests.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let l = Lexer::new(input); [INFO] [stdout] | ^^^^^ use of undeclared type `Lexer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::lexer::Lexer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/tests.rs:92:17 [INFO] [stdout] | [INFO] [stdout] 92 | let mut p = Parser::new(l); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser_utils::parser::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:99:45 [INFO] [stdout] | [INFO] [stdout] 99 | assert_eq!(stmt.get_token().token_type, TokenType::IDENT); [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Lexer` [INFO] [stdout] --> src/tests.rs:106:13 [INFO] [stdout] | [INFO] [stdout] 106 | let l = Lexer::new(input); [INFO] [stdout] | ^^^^^ use of undeclared type `Lexer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::lexer::Lexer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/tests.rs:107:17 [INFO] [stdout] | [INFO] [stdout] 107 | let mut p = Parser::new(l); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser_utils::parser::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:114:45 [INFO] [stdout] | [INFO] [stdout] 114 | assert_eq!(stmt.get_token().token_type, TokenType::INT); [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:121:27 [INFO] [stdout] | [INFO] [stdout] 121 | ("!5;", "!", "5", TokenType::INT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:122:29 [INFO] [stdout] | [INFO] [stdout] 122 | ("-15;", "-", "15", TokenType::INT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:123:37 [INFO] [stdout] | [INFO] [stdout] 123 | ("!foobar;", "!", "foobar", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `TokenType` [INFO] [stdout] --> src/tests.rs:124:37 [INFO] [stdout] | [INFO] [stdout] 124 | ("-foobar;", "-", "foobar", TokenType::IDENT), [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `TokenType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::token::TokenType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Lexer` [INFO] [stdout] --> src/tests.rs:128:17 [INFO] [stdout] | [INFO] [stdout] 128 | let l = Lexer::new(tt.0.to_string()); [INFO] [stdout] | ^^^^^ use of undeclared type `Lexer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::lexer_utils::lexer::Lexer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Parser` [INFO] [stdout] --> src/tests.rs:129:21 [INFO] [stdout] | [INFO] [stdout] 129 | let mut p = Parser::new(l); [INFO] [stdout] | ^^^^^^ use of undeclared type `Parser` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 3 + use crate::parser_utils::parser::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 20 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `0` on type `&_` [INFO] [stdout] --> src/tests.rs:42:36 [INFO] [stdout] | [INFO] [stdout] 42 | assert_eq!(tok.literal, tt.0, "Test [{:?}] - Token Literal is wrong", i); [INFO] [stdout] | ^ unknown field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `precedence` [INFO] [stdout] --> src/parser_utils/parser.rs:137:36 [INFO] [stdout] | [INFO] [stdout] 137 | fn parse_expression(&mut self, precedence: Precedence) -> Result { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precedence` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 51 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0433, E0609. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0433`. [INFO] [stdout] [INFO] [stderr] error: could not compile `interpreter` (bin "interpreter" test) due to 52 previous errors; 1 warning emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "fab5cbb363728d9d606816fa61a3d28e7c6987a19061796d7ee9fe3bd9077765", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fab5cbb363728d9d606816fa61a3d28e7c6987a19061796d7ee9fe3bd9077765", kill_on_drop: false }` [INFO] [stdout] fab5cbb363728d9d606816fa61a3d28e7c6987a19061796d7ee9fe3bd9077765