[INFO] cloning repository https://github.com/4b1dden/forklift [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/4b1dden/forklift" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4b1dden%2Fforklift", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4b1dden%2Fforklift'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9ff59a8d910776aefb5d8eacc91c51d538ffc115 [INFO] checking 4b1dden/forklift/9ff59a8d910776aefb5d8eacc91c51d538ffc115 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4b1dden%2Fforklift" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/4b1dden/forklift on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/4b1dden/forklift [INFO] finished tweaking git repo https://github.com/4b1dden/forklift [INFO] tweaked toml for git repo https://github.com/4b1dden/forklift written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/4b1dden/forklift 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" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3a14c1a50dd321cad53194e5d5f40dbc6efbd1331dbd93dd0515a304fc9831bf [INFO] running `Command { std: "docker" "start" "-a" "3a14c1a50dd321cad53194e5d5f40dbc6efbd1331dbd93dd0515a304fc9831bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3a14c1a50dd321cad53194e5d5f40dbc6efbd1331dbd93dd0515a304fc9831bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3a14c1a50dd321cad53194e5d5f40dbc6efbd1331dbd93dd0515a304fc9831bf", kill_on_drop: false }` [INFO] [stdout] 3a14c1a50dd321cad53194e5d5f40dbc6efbd1331dbd93dd0515a304fc9831bf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 62f4dfea692783b1f158ad1014516e6ce0ccc2044e2d6aaf60f121f79e869f20 [INFO] running `Command { std: "docker" "start" "-a" "62f4dfea692783b1f158ad1014516e6ce0ccc2044e2d6aaf60f121f79e869f20", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Checking ordered-float v3.0.0 [INFO] [stderr] Checking forklift v0.1.0 (/tmp/fixit) [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] Fixed src/interpreter/expr.test.rs (3 fixes) [INFO] [stderr] Fixed src/interpreter/main.rs (5 fixes) [INFO] [stderr] Fixed src/grammar.rs (1 fix) [INFO] [stderr] Fixed src/interpreter/declaration.rs (2 fixes) [INFO] [stderr] Fixed src/parser/parser.rs (1 fix) [INFO] [stderr] Fixed src/vm/scanner.test.rs (1 fix) [INFO] [stderr] Fixed src/main.rs (5 fixes) [INFO] [stderr] Fixed src/interpreter/expr.rs (4 fixes) [INFO] [stderr] Fixed src/parser/combinators.rs (5 fixes) [INFO] [stderr] Fixed src/parser/parser.test.rs (1 fix) [INFO] [stderr] Fixed src/vm/compiler.rs (2 fixes) [INFO] [stderr] Fixed src/parser/primitives.rs (3 fixes) [INFO] [stderr] Fixed src/interpreter/resolver.rs (1 fix) [INFO] [stdout] warning: type `FL_T` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:331:10 [INFO] [stdout] | [INFO] [stdout] 331 | pub enum FL_T { [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `FlT` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Primitive` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:378:10 [INFO] [stdout] | [INFO] [stdout] 378 | pub enum FL_T_Primitive { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTPrimitive` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Callable` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:388:12 [INFO] [stdout] | [INFO] [stdout] 388 | pub struct FL_T_Callable { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTCallable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Callable_Body` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:404:10 [INFO] [stdout] | [INFO] [stdout] 404 | pub enum FL_T_Callable_Body { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTCallableBody` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `FL_T` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | FL_T(Statement), // FL_T [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `FlT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Callable_Native` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:410:10 [INFO] [stdout] | [INFO] [stdout] 410 | pub enum Callable_Native { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CallableNative` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Bool` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:448:10 [INFO] [stdout] | [INFO] [stdout] 448 | pub enum FL_T_Bool { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `FlTBool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/parser/parser.rs:224:34 [INFO] [stdout] | [INFO] [stdout] 222 | impl<'a, F, Output> Parser<'a, Output> for F [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 223 | where [INFO] [stdout] 224 | F: Fn(&'a str) -> ParseResult, [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `INTERPRETER_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum INTERPRETER_ERROR { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpreterError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INTERPRET_COMPILE_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | INTERPRET_COMPILE_ERROR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretCompileError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INTERPRET_RUNTIME_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | INTERPRET_RUNTIME_ERROR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretRuntimeError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err1` [INFO] [stdout] --> src/parser/combinators.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | Err(err1) => match parser2.parse(input) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_err1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `results` [INFO] [stdout] --> src/parser/combinators.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | let results = Vec::::new(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rest` [INFO] [stdout] --> src/parser/combinators.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | let rest = input; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `matched` [INFO] [stdout] --> src/parser/primitives.rs:362:20 [INFO] [stdout] | [INFO] [stdout] 362 | let (rest, matched) = p.parse(input)?; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matched` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/declaration.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/expr.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reconstructed` [INFO] [stdout] --> src/interpreter/declaration.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let reconstructed = Expr::Literal(LiteralExpr::Identifier(binding.identifier.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reconstructed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/interpreter/expr.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let res = RefCell::borrow_mut(&env).put( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `depth` [INFO] [stdout] --> src/interpreter/expr.rs:269:21 [INFO] [stdout] | [INFO] [stdout] 269 | if let Some(depth) = maybe_depth { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `env` [INFO] [stdout] --> src/interpreter/expr.rs:566:5 [INFO] [stdout] | [INFO] [stdout] 566 | env: Rc>, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_env` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interpreter/main.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interpreter/main.rs:98:17 [INFO] [stdout] | [INFO] [stdout] 98 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry_pair` [INFO] [stdout] --> src/parser/primitives.rs:309:12 [INFO] [stdout] | [INFO] [stdout] 309 | |((entry_pair, decl, (mid_pair, last_pair)), body)| ForLoop { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entry_pair` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contents` [INFO] [stdout] --> src/vm/common.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | let contents = fs::read_to_string(path).expect("Filepath has to be valid"); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokenizer` [INFO] [stdout] --> src/vm/compiler.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | fn expression(tokenizer: &mut Lexer) {} [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokenizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokenizer` [INFO] [stdout] --> src/vm/compiler.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | fn number(tokenizer: &mut Lexer) { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokenizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/vm/scanner.rs:111:17 [INFO] [stdout] | [INFO] [stdout] 111 | let end = start + bytes_skipped; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `snippet_err_offset` [INFO] [stdout] --> src/vm/scanner.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let snippet_err_offset = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snippet_err_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/vm/scanner.rs:193:28 [INFO] [stdout] | [INFO] [stdout] 193 | fn tokenize_string_literal(src: &str) -> LexerResult<(TokenKind, usize)> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_src` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parser` [INFO] [stdout] --> src/main.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | let parser = grammar::parse_program(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Bool` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:380:5 [INFO] [stdout] | [INFO] [stdout] 378 | pub enum FL_T_Primitive { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] 379 | Str(String), [INFO] [stdout] 380 | Bool(bool), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FL_T_Primitive` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Native` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:405:5 [INFO] [stdout] | [INFO] [stdout] 404 | pub enum FL_T_Callable_Body { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 405 | Native(Callable_Native), // Rust [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FL_T_Callable_Body` 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: variant `Clock` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:411:5 [INFO] [stdout] | [INFO] [stdout] 410 | pub enum Callable_Native { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 411 | Clock, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Callable_Native` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `True` and `False` are never constructed [INFO] [stdout] --> src/interpreter/expr.rs:449:5 [INFO] [stdout] | [INFO] [stdout] 448 | pub enum FL_T_Bool { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 449 | True, [INFO] [stdout] | ^^^^ [INFO] [stdout] 450 | False, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FL_T_Bool` 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 `get_at` is never used [INFO] [stdout] --> src/interpreter/main.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl Environment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn get_at( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `environment` is never read [INFO] [stdout] --> src/interpreter/main.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct Interpreter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 119 | pub environment: Rc>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Interpreter` 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: methods `preload_with` and `inject_into_global_env` are never used [INFO] [stdout] --> src/interpreter/main.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 123 | impl Interpreter { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn preload_with(&mut self, m: HashMap>) -> InterpreterResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn inject_into_global_env( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `either_polymorphic` is never used [INFO] [stdout] --> src/parser/combinators.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn either_polymorphic<'a, R1, R2>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `predicate` is never used [INFO] [stdout] --> src/parser/parser.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait Parser<'a, Output> { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 25 | fn predicate(self, pred_fn: F) -> BoxedParser<'a, Output> [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sequence_of` is never used [INFO] [stdout] --> src/parser/parser.rs:249:4 [INFO] [stdout] | [INFO] [stdout] 249 | fn sequence_of() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mock_number_literal_expr` is never used [INFO] [stdout] --> src/parser/parser.test.rs:11:4 [INFO] [stdout] | [INFO] [stdout] 11 | fn mock_number_literal_expr(num: i32) -> Expr { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_identifier_as_identifier` is never used [INFO] [stdout] --> src/parser/primitives.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn parse_identifier_as_identifier<'a>() -> impl Parser<'a, Identifier> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OpCode` is never used [INFO] [stdout] --> src/vm/common.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub type OpCode = u8; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_RETURN` is never used [INFO] [stdout] --> src/vm/common.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const OP_RETURN: OpCode = 0x0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_CONSTANT` is never used [INFO] [stdout] --> src/vm/common.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const OP_CONSTANT: OpCode = 0x1; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_NEGATE` is never used [INFO] [stdout] --> src/vm/common.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const OP_NEGATE: OpCode = 0x2; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_ADD` is never used [INFO] [stdout] --> src/vm/common.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const OP_ADD: OpCode = 0x3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_SUBTRACT` is never used [INFO] [stdout] --> src/vm/common.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const OP_SUBTRACT: OpCode = 0x4; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_MULTIPLY` is never used [INFO] [stdout] --> src/vm/common.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const OP_MULTIPLY: OpCode = 0x5; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_DIVIDE` is never used [INFO] [stdout] --> src/vm/common.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const OP_DIVIDE: OpCode = 0x6; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `primitive_instruction` is never used [INFO] [stdout] --> src/vm/common.rs:20:4 [INFO] [stdout] | [INFO] [stdout] 20 | fn primitive_instruction(name: &str, offset: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `constant_instruction` is never used [INFO] [stdout] --> src/vm/common.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn constant_instruction(name: &str, chunk: &Chunk, offset: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Value` is never used [INFO] [stdout] --> src/vm/common.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | pub type Value = f64; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_value` is never used [INFO] [stdout] --> src/vm/common.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn print_value(val: Value) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValueArray` is never constructed [INFO] [stdout] --> src/vm/common.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct ValueArray { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CAPACITY_LOW_THRESHOLD` is never used [INFO] [stdout] --> src/vm/common.rs:49:7 [INFO] [stdout] | [INFO] [stdout] 49 | const CAPACITY_LOW_THRESHOLD: usize = 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CAPACITY_INCREMENT_MULTIPLIER` is never used [INFO] [stdout] --> src/vm/common.rs:50:7 [INFO] [stdout] | [INFO] [stdout] 50 | const CAPACITY_INCREMENT_MULTIPLIER: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STACK_CAPACITY` is never used [INFO] [stdout] --> src/vm/common.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const STACK_CAPACITY: usize = 256; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `INTERPRETER_ERROR` is never used [INFO] [stdout] --> src/vm/common.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum INTERPRETER_ERROR { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `INTERPRETER_ERROR` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `VmResult` is never used [INFO] [stdout] --> src/vm/common.rs:59:10 [INFO] [stdout] | [INFO] [stdout] 59 | pub type VmResult = Result; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEBUG_TRACE_EXECUTION` is never used [INFO] [stdout] --> src/vm/common.rs:61:7 [INFO] [stdout] | [INFO] [stdout] 61 | const DEBUG_TRACE_EXECUTION: bool = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VM` is never constructed [INFO] [stdout] --> src/vm/common.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct VM { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `interpret`, `with_chunk`, `push`, `pop`, and `run` are never used [INFO] [stdout] --> src/vm/common.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl VM { [INFO] [stdout] | ------- associated items in this implementation [INFO] [stdout] 70 | pub fn interpret(chunk: Chunk) -> VmResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn with_chunk(chunk: Chunk) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn push(&mut self, val: Value) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn pop(&mut self) -> Value { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | fn run(&mut self) -> VmResult<()> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_byte` is never used [INFO] [stdout] --> src/vm/common.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | fn read_byte(vm: &mut VM) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_const` is never used [INFO] [stdout] --> src/vm/common.rs:153:4 [INFO] [stdout] | [INFO] [stdout] 153 | fn read_const(vm: &mut VM) -> Value { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upgrade_capacity`, and `write` are never used [INFO] [stdout] --> src/vm/common.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 159 | impl ValueArray { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 160 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | fn upgrade_capacity(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn write(&mut self, val: Value) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Chunk` is never constructed [INFO] [stdout] --> src/vm/common.rs:188:12 [INFO] [stdout] | [INFO] [stdout] 188 | pub struct Chunk { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_constant`, `write`, `upgrade_capacity`, and `disassemble` are never used [INFO] [stdout] --> src/vm/common.rs:197:12 [INFO] [stdout] | [INFO] [stdout] 196 | impl Chunk { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 197 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn add_constant(&mut self, val: Value) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub fn write(&mut self, byte: OpCode, line: u32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | fn upgrade_capacity(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn disassemble(&self, name: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_instruction` is never used [INFO] [stdout] --> src/vm/common.rs:247:8 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn disassemble_instruction(chunk: &Chunk, offset: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `interpret` is never used [INFO] [stdout] --> src/vm/common.rs:282:4 [INFO] [stdout] | [INFO] [stdout] 282 | fn interpret(source: &str) -> VmResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `CompilerResult` is never used [INFO] [stdout] --> src/vm/compiler.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub type CompilerResult = Result; // Change Err type later [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Compiler` is never constructed [INFO] [stdout] --> src/vm/compiler.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Compiler<'a> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile` is never used [INFO] [stdout] --> src/vm/compiler.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn compile(source: &str) -> CompilerResult { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `make_error_at_lexeme` is never used [INFO] [stdout] --> src/vm/compiler.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 38 | impl<'a> Compiler<'a> { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 39 | fn make_error_at_lexeme(&self, tok: LexedToken, msg: &str) -> CompilerResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expression` is never used [INFO] [stdout] --> src/vm/compiler.rs:51:4 [INFO] [stdout] | [INFO] [stdout] 51 | fn expression(tokenizer: &mut Lexer) {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `number` is never used [INFO] [stdout] --> src/vm/compiler.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn number(tokenizer: &mut Lexer) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `emit_return` is never used [INFO] [stdout] --> src/vm/compiler.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn emit_return(chunk: &mut Chunk) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_chunk` is never used [INFO] [stdout] --> src/vm/compiler.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn write_chunk(chunk: &mut Chunk, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_constant` is never used [INFO] [stdout] --> src/vm/compiler.rs:65:4 [INFO] [stdout] | [INFO] [stdout] 65 | fn make_constant(chunk: &mut Chunk, val: Value) -> CompilerResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_constant` is never used [INFO] [stdout] --> src/vm/compiler.rs:75:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn write_constant(chunk: &mut Chunk, val: Value) -> CompilerResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_chunk_byte_tuple` is never used [INFO] [stdout] --> src/vm/compiler.rs:83:4 [INFO] [stdout] | [INFO] [stdout] 83 | fn write_chunk_byte_tuple(chunk: &mut Chunk, byte1: u8, byte2: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `consume` is never used [INFO] [stdout] --> src/vm/compiler.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | fn consume(tokenizer: &mut Lexer, kind: TokenKind) -> CompilerResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Comma`, `Dot`, `AND`, `OR`, and `Root` are never constructed [INFO] [stdout] --> src/vm/scanner.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum TokenKind { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 18 | Comma, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | Dot, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | AND, [INFO] [stdout] | ^^^ [INFO] [stdout] 39 | OR, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 57 | Root, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `had_error` and `panic_mode` are never read [INFO] [stdout] --> src/vm/scanner.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct Lexer<'a> { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | pub had_error: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 64 | pub panic_mode: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `consume` and `panic_mode_on` are never used [INFO] [stdout] --> src/vm/scanner.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 73 | impl<'a> Lexer<'a> { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn consume(&mut self, token_kind: TokenKind) -> LexerResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn panic_mode_on(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/vm/scanner.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 144 | pub enum LexerError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 145 | IdentStartsWithANumber, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 146 | UnexpectedEOF, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 147 | NoCharMatch, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 148 | MultipleDotsInNumber, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 149 | UnsupportedChar(char), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 150 | CouldNotTokenize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | CouldNotParseType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LexerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tokenize_string_literal` is never used [INFO] [stdout] --> src/vm/scanner.rs:193:4 [INFO] [stdout] | [INFO] [stdout] 193 | fn tokenize_string_literal(src: &str) -> LexerResult<(TokenKind, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/main.rs:94:17 [INFO] [stdout] | [INFO] [stdout] 94 | RefCell::borrow_mut(&relevant_ancestor).put(key, val.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = RefCell::borrow_mut(&relevant_ancestor).put(key, val.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/main.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | me.load_defaults(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 134 | let _ = me.load_defaults(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/interpreter/resolver.rs:191:15 [INFO] [stdout] | [INFO] [stdout] 191 | while i >= 0 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/combinators.rs:73:15 [INFO] [stdout] | [INFO] [stdout] 73 | while let Ok((rest, item)) = parser.parse(input) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser/combinators.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/combinators.rs:157:15 [INFO] [stdout] | [INFO] [stdout] 157 | while let Ok((rest, item)) = parser.parse(input) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser/combinators.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/parser/parser.rs:258:47 [INFO] [stdout] | [INFO] [stdout] 258 | .map(|op_str| parse_literal(op_str.clone())) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/parser/parser.rs:268:47 [INFO] [stdout] | [INFO] [stdout] 268 | .map(|op_str| parse_literal(op_str.clone())) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 96 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Fixed src/interpreter/mod.rs (1 fix) [INFO] [stderr] Fixed src/interpreter/expr.test.rs (5 fixes) [INFO] [stdout] warning: type `FL_T` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:331:10 [INFO] [stdout] | [INFO] [stdout] 331 | pub enum FL_T { [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `FlT` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Primitive` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:378:10 [INFO] [stdout] | [INFO] [stdout] 378 | pub enum FL_T_Primitive { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTPrimitive` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Callable` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:388:12 [INFO] [stdout] | [INFO] [stdout] 388 | pub struct FL_T_Callable { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTCallable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Callable_Body` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:404:10 [INFO] [stdout] | [INFO] [stdout] 404 | pub enum FL_T_Callable_Body { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTCallableBody` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `FL_T` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | FL_T(Statement), // FL_T [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `FlT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Callable_Native` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:410:10 [INFO] [stdout] | [INFO] [stdout] 410 | pub enum Callable_Native { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CallableNative` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Bool` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:448:10 [INFO] [stdout] | [INFO] [stdout] 448 | pub enum FL_T_Bool { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `FlTBool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/parser/parser.rs:224:34 [INFO] [stdout] | [INFO] [stdout] 222 | impl<'a, F, Output> Parser<'a, Output> for F [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 223 | where [INFO] [stdout] 224 | F: Fn(&'a str) -> ParseResult, [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `INTERPRETER_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum INTERPRETER_ERROR { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpreterError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INTERPRET_COMPILE_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | INTERPRET_COMPILE_ERROR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretCompileError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INTERPRET_RUNTIME_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | INTERPRET_RUNTIME_ERROR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretRuntimeError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err1` [INFO] [stdout] --> src/parser/combinators.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | Err(err1) => match parser2.parse(input) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_err1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `results` [INFO] [stdout] --> src/parser/combinators.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | let results = Vec::::new(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rest` [INFO] [stdout] --> src/parser/combinators.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | let rest = input; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `matched` [INFO] [stdout] --> src/parser/primitives.rs:362:20 [INFO] [stdout] | [INFO] [stdout] 362 | let (rest, matched) = p.parse(input)?; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matched` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/declaration.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/expr.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reconstructed` [INFO] [stdout] --> src/interpreter/declaration.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let reconstructed = Expr::Literal(LiteralExpr::Identifier(binding.identifier.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reconstructed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/interpreter/expr.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let res = RefCell::borrow_mut(&env).put( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `depth` [INFO] [stdout] --> src/interpreter/expr.rs:269:21 [INFO] [stdout] | [INFO] [stdout] 269 | if let Some(depth) = maybe_depth { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `env` [INFO] [stdout] --> src/interpreter/expr.rs:566:5 [INFO] [stdout] | [INFO] [stdout] 566 | env: Rc>, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_env` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interpreter/main.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interpreter/main.rs:98:17 [INFO] [stdout] | [INFO] [stdout] 98 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry_pair` [INFO] [stdout] --> src/parser/primitives.rs:309:12 [INFO] [stdout] | [INFO] [stdout] 309 | |((entry_pair, decl, (mid_pair, last_pair)), body)| ForLoop { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entry_pair` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contents` [INFO] [stdout] --> src/vm/common.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | let contents = fs::read_to_string(path).expect("Filepath has to be valid"); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokenizer` [INFO] [stdout] --> src/vm/compiler.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | fn expression(tokenizer: &mut Lexer) {} [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokenizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokenizer` [INFO] [stdout] --> src/vm/compiler.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | fn number(tokenizer: &mut Lexer) { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokenizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/vm/scanner.rs:111:17 [INFO] [stdout] | [INFO] [stdout] 111 | let end = start + bytes_skipped; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `snippet_err_offset` [INFO] [stdout] --> src/vm/scanner.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let snippet_err_offset = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snippet_err_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/vm/scanner.rs:193:28 [INFO] [stdout] | [INFO] [stdout] 193 | fn tokenize_string_literal(src: &str) -> LexerResult<(TokenKind, usize)> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_src` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parser` [INFO] [stdout] --> src/main.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | let parser = grammar::parse_program(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Bool` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:380:5 [INFO] [stdout] | [INFO] [stdout] 378 | pub enum FL_T_Primitive { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] 379 | Str(String), [INFO] [stdout] 380 | Bool(bool), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FL_T_Primitive` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Native` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:405:5 [INFO] [stdout] | [INFO] [stdout] 404 | pub enum FL_T_Callable_Body { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 405 | Native(Callable_Native), // Rust [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FL_T_Callable_Body` 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: variant `Clock` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:411:5 [INFO] [stdout] | [INFO] [stdout] 410 | pub enum Callable_Native { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 411 | Clock, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Callable_Native` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `True` and `False` are never constructed [INFO] [stdout] --> src/interpreter/expr.rs:449:5 [INFO] [stdout] | [INFO] [stdout] 448 | pub enum FL_T_Bool { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 449 | True, [INFO] [stdout] | ^^^^ [INFO] [stdout] 450 | False, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FL_T_Bool` 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: function `empty_env` is never used [INFO] [stdout] --> src/interpreter/expr.test.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn empty_env() -> Rc> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_at` is never used [INFO] [stdout] --> src/interpreter/main.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl Environment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn get_at( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `environment` is never read [INFO] [stdout] --> src/interpreter/main.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct Interpreter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 119 | pub environment: Rc>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Interpreter` 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: methods `preload_with` and `inject_into_global_env` are never used [INFO] [stdout] --> src/interpreter/main.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 123 | impl Interpreter { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn preload_with(&mut self, m: HashMap>) -> InterpreterResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn inject_into_global_env( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `either` is never used [INFO] [stdout] --> src/parser/combinators.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn either<'a, P1, P2, A>(parser1: P1, parser2: P2) -> impl Parser<'a, A> [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `either_polymorphic` is never used [INFO] [stdout] --> src/parser/combinators.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn either_polymorphic<'a, R1, R2>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `left` is never used [INFO] [stdout] --> src/parser/combinators.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn left<'a, P1, P2, R1, R2>(parser1: P1, parser2: P2) -> impl Parser<'a, R1> [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `right` is never used [INFO] [stdout] --> src/parser/combinators.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn right<'a, P1, P2, R1, R2>(parser1: P1, parser2: P2) -> impl Parser<'a, R2> [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `predicate` is never used [INFO] [stdout] --> src/parser/parser.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait Parser<'a, Output> { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 25 | fn predicate(self, pred_fn: F) -> BoxedParser<'a, Output> [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sequence_of` is never used [INFO] [stdout] --> src/parser/parser.rs:249:4 [INFO] [stdout] | [INFO] [stdout] 249 | fn sequence_of() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_identifier_as_identifier` is never used [INFO] [stdout] --> src/parser/primitives.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn parse_identifier_as_identifier<'a>() -> impl Parser<'a, Identifier> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_grouping_expr` is never used [INFO] [stdout] --> src/parser/primitives.rs:337:8 [INFO] [stdout] | [INFO] [stdout] 337 | pub fn parse_grouping_expr<'a>() -> impl Parser<'a, Expr> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OpCode` is never used [INFO] [stdout] --> src/vm/common.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub type OpCode = u8; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_RETURN` is never used [INFO] [stdout] --> src/vm/common.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const OP_RETURN: OpCode = 0x0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_CONSTANT` is never used [INFO] [stdout] --> src/vm/common.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const OP_CONSTANT: OpCode = 0x1; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_NEGATE` is never used [INFO] [stdout] --> src/vm/common.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const OP_NEGATE: OpCode = 0x2; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_ADD` is never used [INFO] [stdout] --> src/vm/common.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const OP_ADD: OpCode = 0x3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_SUBTRACT` is never used [INFO] [stdout] --> src/vm/common.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const OP_SUBTRACT: OpCode = 0x4; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_MULTIPLY` is never used [INFO] [stdout] --> src/vm/common.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const OP_MULTIPLY: OpCode = 0x5; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_DIVIDE` is never used [INFO] [stdout] --> src/vm/common.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const OP_DIVIDE: OpCode = 0x6; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `primitive_instruction` is never used [INFO] [stdout] --> src/vm/common.rs:20:4 [INFO] [stdout] | [INFO] [stdout] 20 | fn primitive_instruction(name: &str, offset: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `constant_instruction` is never used [INFO] [stdout] --> src/vm/common.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn constant_instruction(name: &str, chunk: &Chunk, offset: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Value` is never used [INFO] [stdout] --> src/vm/common.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | pub type Value = f64; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_value` is never used [INFO] [stdout] --> src/vm/common.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn print_value(val: Value) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValueArray` is never constructed [INFO] [stdout] --> src/vm/common.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct ValueArray { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CAPACITY_LOW_THRESHOLD` is never used [INFO] [stdout] --> src/vm/common.rs:49:7 [INFO] [stdout] | [INFO] [stdout] 49 | const CAPACITY_LOW_THRESHOLD: usize = 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CAPACITY_INCREMENT_MULTIPLIER` is never used [INFO] [stdout] --> src/vm/common.rs:50:7 [INFO] [stdout] | [INFO] [stdout] 50 | const CAPACITY_INCREMENT_MULTIPLIER: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STACK_CAPACITY` is never used [INFO] [stdout] --> src/vm/common.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const STACK_CAPACITY: usize = 256; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `INTERPRETER_ERROR` is never used [INFO] [stdout] --> src/vm/common.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum INTERPRETER_ERROR { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `INTERPRETER_ERROR` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `VmResult` is never used [INFO] [stdout] --> src/vm/common.rs:59:10 [INFO] [stdout] | [INFO] [stdout] 59 | pub type VmResult = Result; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEBUG_TRACE_EXECUTION` is never used [INFO] [stdout] --> src/vm/common.rs:61:7 [INFO] [stdout] | [INFO] [stdout] 61 | const DEBUG_TRACE_EXECUTION: bool = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VM` is never constructed [INFO] [stdout] --> src/vm/common.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct VM { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `interpret`, `with_chunk`, `push`, `pop`, and `run` are never used [INFO] [stdout] --> src/vm/common.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl VM { [INFO] [stdout] | ------- associated items in this implementation [INFO] [stdout] 70 | pub fn interpret(chunk: Chunk) -> VmResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn with_chunk(chunk: Chunk) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn push(&mut self, val: Value) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn pop(&mut self) -> Value { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | fn run(&mut self) -> VmResult<()> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_byte` is never used [INFO] [stdout] --> src/vm/common.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | fn read_byte(vm: &mut VM) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_const` is never used [INFO] [stdout] --> src/vm/common.rs:153:4 [INFO] [stdout] | [INFO] [stdout] 153 | fn read_const(vm: &mut VM) -> Value { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upgrade_capacity`, and `write` are never used [INFO] [stdout] --> src/vm/common.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 159 | impl ValueArray { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 160 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | fn upgrade_capacity(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn write(&mut self, val: Value) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Chunk` is never constructed [INFO] [stdout] --> src/vm/common.rs:188:12 [INFO] [stdout] | [INFO] [stdout] 188 | pub struct Chunk { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_constant`, `write`, `upgrade_capacity`, and `disassemble` are never used [INFO] [stdout] --> src/vm/common.rs:197:12 [INFO] [stdout] | [INFO] [stdout] 196 | impl Chunk { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 197 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn add_constant(&mut self, val: Value) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub fn write(&mut self, byte: OpCode, line: u32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | fn upgrade_capacity(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn disassemble(&self, name: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_instruction` is never used [INFO] [stdout] --> src/vm/common.rs:247:8 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn disassemble_instruction(chunk: &Chunk, offset: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `interpret` is never used [INFO] [stdout] --> src/vm/common.rs:282:4 [INFO] [stdout] | [INFO] [stdout] 282 | fn interpret(source: &str) -> VmResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `CompilerResult` is never used [INFO] [stdout] --> src/vm/compiler.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub type CompilerResult = Result; // Change Err type later [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Compiler` is never constructed [INFO] [stdout] --> src/vm/compiler.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Compiler<'a> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile` is never used [INFO] [stdout] --> src/vm/compiler.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn compile(source: &str) -> CompilerResult { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `make_error_at_lexeme` is never used [INFO] [stdout] --> src/vm/compiler.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 38 | impl<'a> Compiler<'a> { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 39 | fn make_error_at_lexeme(&self, tok: LexedToken, msg: &str) -> CompilerResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expression` is never used [INFO] [stdout] --> src/vm/compiler.rs:51:4 [INFO] [stdout] | [INFO] [stdout] 51 | fn expression(tokenizer: &mut Lexer) {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `number` is never used [INFO] [stdout] --> src/vm/compiler.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn number(tokenizer: &mut Lexer) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `emit_return` is never used [INFO] [stdout] --> src/vm/compiler.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn emit_return(chunk: &mut Chunk) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_chunk` is never used [INFO] [stdout] --> src/vm/compiler.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn write_chunk(chunk: &mut Chunk, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_constant` is never used [INFO] [stdout] --> src/vm/compiler.rs:65:4 [INFO] [stdout] | [INFO] [stdout] 65 | fn make_constant(chunk: &mut Chunk, val: Value) -> CompilerResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_constant` is never used [INFO] [stdout] --> src/vm/compiler.rs:75:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn write_constant(chunk: &mut Chunk, val: Value) -> CompilerResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_chunk_byte_tuple` is never used [INFO] [stdout] --> src/vm/compiler.rs:83:4 [INFO] [stdout] | [INFO] [stdout] 83 | fn write_chunk_byte_tuple(chunk: &mut Chunk, byte1: u8, byte2: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `consume` is never used [INFO] [stdout] --> src/vm/compiler.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | fn consume(tokenizer: &mut Lexer, kind: TokenKind) -> CompilerResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Comma`, `Dot`, `AND`, `OR`, and `Root` are never constructed [INFO] [stdout] --> src/vm/scanner.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum TokenKind { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 18 | Comma, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | Dot, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | AND, [INFO] [stdout] | ^^^ [INFO] [stdout] 39 | OR, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 57 | Root, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `had_error` and `panic_mode` are never read [INFO] [stdout] --> src/vm/scanner.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct Lexer<'a> { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | pub had_error: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 64 | pub panic_mode: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `consume` and `panic_mode_on` are never used [INFO] [stdout] --> src/vm/scanner.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 73 | impl<'a> Lexer<'a> { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn consume(&mut self, token_kind: TokenKind) -> LexerResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn panic_mode_on(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/vm/scanner.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 144 | pub enum LexerError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 145 | IdentStartsWithANumber, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 146 | UnexpectedEOF, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 147 | NoCharMatch, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 148 | MultipleDotsInNumber, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 149 | UnsupportedChar(char), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 150 | CouldNotTokenize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | CouldNotParseType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LexerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tokenize_string_literal` is never used [INFO] [stdout] --> src/vm/scanner.rs:193:4 [INFO] [stdout] | [INFO] [stdout] 193 | fn tokenize_string_literal(src: &str) -> LexerResult<(TokenKind, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/main.rs:94:17 [INFO] [stdout] | [INFO] [stdout] 94 | RefCell::borrow_mut(&relevant_ancestor).put(key, val.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = RefCell::borrow_mut(&relevant_ancestor).put(key, val.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/main.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | me.load_defaults(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 134 | let _ = me.load_defaults(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/interpreter/resolver.rs:191:15 [INFO] [stdout] | [INFO] [stdout] 191 | while i >= 0 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/combinators.rs:73:15 [INFO] [stdout] | [INFO] [stdout] 73 | while let Ok((rest, item)) = parser.parse(input) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser/combinators.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/combinators.rs:157:15 [INFO] [stdout] | [INFO] [stdout] 157 | while let Ok((rest, item)) = parser.parse(input) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser/combinators.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/parser/parser.rs:258:47 [INFO] [stdout] | [INFO] [stdout] 258 | .map(|op_str| parse_literal(op_str.clone())) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/parser/parser.rs:268:47 [INFO] [stdout] | [INFO] [stdout] 268 | .map(|op_str| parse_literal(op_str.clone())) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 100 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.27s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking forklift v0.1.0 (/tmp/fixit) [INFO] [stdout] warning: type `FL_T` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:331:10 [INFO] [stdout] | [INFO] [stdout] 331 | pub enum FL_T { [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `FlT` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Primitive` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:378:10 [INFO] [stdout] | [INFO] [stdout] 378 | pub enum FL_T_Primitive { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTPrimitive` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Callable` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:388:12 [INFO] [stdout] | [INFO] [stdout] 388 | pub struct FL_T_Callable { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTCallable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Callable_Body` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:404:10 [INFO] [stdout] | [INFO] [stdout] 404 | pub enum FL_T_Callable_Body { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTCallableBody` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `FL_T` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | FL_T(Statement), // FL_T [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `FlT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Callable_Native` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:410:10 [INFO] [stdout] | [INFO] [stdout] 410 | pub enum Callable_Native { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CallableNative` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Bool` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:448:10 [INFO] [stdout] | [INFO] [stdout] 448 | pub enum FL_T_Bool { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `FlTBool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/parser/parser.rs:224:34 [INFO] [stdout] | [INFO] [stdout] 222 | impl<'a, F, Output> Parser<'a, Output> for F [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 223 | where [INFO] [stdout] 224 | F: Fn(&'a str) -> ParseResult, [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `INTERPRETER_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum INTERPRETER_ERROR { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpreterError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INTERPRET_COMPILE_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | INTERPRET_COMPILE_ERROR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretCompileError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INTERPRET_RUNTIME_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | INTERPRET_RUNTIME_ERROR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretRuntimeError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `crate::interpreter::Resolver` [INFO] [stdout] --> src/../test/mod.rs:4:39 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::interpreter::{Interpreter, Resolver}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | no `Resolver` in `interpreter` [INFO] [stdout] | help: a similar name exists in the module: `resolver` [INFO] [stdout] | [INFO] [stdout] = help: consider importing this struct through its public re-export instead: [INFO] [stdout] crate::Resolver [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err1` [INFO] [stdout] --> src/parser/combinators.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | Err(err1) => match parser2.parse(input) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_err1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `results` [INFO] [stdout] --> src/parser/combinators.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | let results = Vec::::new(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rest` [INFO] [stdout] --> src/parser/combinators.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | let rest = input; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:12:23 [INFO] [stdout] | [INFO] [stdout] 12 | let to_intepret = Expr::Literal(LiteralExpr::NumberLiteral(Number::Integer32(3))); [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:12:37 [INFO] [stdout] | [INFO] [stdout] 12 | let to_intepret = Expr::Literal(LiteralExpr::NumberLiteral(Number::Integer32(3))); [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Number` [INFO] [stdout] --> src/interpreter/expr.test.rs:12:64 [INFO] [stdout] | [INFO] [stdout] 12 | let to_intepret = Expr::Literal(LiteralExpr::NumberLiteral(Number::Integer32(3))); [INFO] [stdout] | ^^^^^^ use of undeclared type `Number` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Number; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Interpreter` [INFO] [stdout] --> src/interpreter/expr.test.rs:13:23 [INFO] [stdout] | [INFO] [stdout] 13 | let interpreter = Interpreter::new(vec![], io::stdout()); [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `Interpreter` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::Interpreter; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `io` [INFO] [stdout] --> src/interpreter/expr.test.rs:13:48 [INFO] [stdout] | [INFO] [stdout] 13 | let interpreter = Interpreter::new(vec![], io::stdout()); [INFO] [stdout] | ^^ use of undeclared crate or module `io` [INFO] [stdout] | [INFO] [stdout] help: a builtin type with a similar name exists [INFO] [stdout] | [INFO] [stdout] 13 | let interpreter = Interpreter::new(vec![], i8::stdout()); [INFO] [stdout] | ~~ [INFO] [stdout] help: consider importing one of these modules [INFO] [stdout] | [INFO] [stdout] 1 + use crate::io; [INFO] [stdout] | [INFO] [stdout] 1 + use std::io; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T` [INFO] [stdout] --> src/interpreter/expr.test.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(3))) [INFO] [stdout] | ^^^^ use of undeclared type `FL_T` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T_Primitive` [INFO] [stdout] --> src/interpreter/expr.test.rs:17:28 [INFO] [stdout] | [INFO] [stdout] 17 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(3))) [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `FL_T_Primitive` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T_Primitive; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Interpreter` [INFO] [stdout] --> src/interpreter/expr.test.rs:23:23 [INFO] [stdout] | [INFO] [stdout] 23 | let interpreter = Interpreter::new(vec![], io::stdout()); [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `Interpreter` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::Interpreter; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `io` [INFO] [stdout] --> src/interpreter/expr.test.rs:23:48 [INFO] [stdout] | [INFO] [stdout] 23 | let interpreter = Interpreter::new(vec![], io::stdout()); [INFO] [stdout] | ^^ use of undeclared crate or module `io` [INFO] [stdout] | [INFO] [stdout] help: a builtin type with a similar name exists [INFO] [stdout] | [INFO] [stdout] 23 | let interpreter = Interpreter::new(vec![], i8::stdout()); [INFO] [stdout] | ~~ [INFO] [stdout] help: consider importing one of these modules [INFO] [stdout] | [INFO] [stdout] 1 + use crate::io; [INFO] [stdout] | [INFO] [stdout] 1 + use std::io; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:25:17 [INFO] [stdout] | [INFO] [stdout] 25 | let inner = Expr::Unary(UnaryExpr { [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `UnaryExpr` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:25:29 [INFO] [stdout] | [INFO] [stdout] 25 | let inner = Expr::Unary(UnaryExpr { [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::UnaryExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `UnaryOperator` [INFO] [stdout] --> src/interpreter/expr.test.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | op: UnaryOperator::Minus, [INFO] [stdout] | ^^^^^^^^^^^^^ use of undeclared type `UnaryOperator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::UnaryOperator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:27:24 [INFO] [stdout] | [INFO] [stdout] 27 | expr: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:27:38 [INFO] [stdout] | [INFO] [stdout] 27 | expr: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Number` [INFO] [stdout] --> src/interpreter/expr.test.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | Number::Integer32(5), [INFO] [stdout] | ^^^^^^ use of undeclared type `Number` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Number; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:33:18 [INFO] [stdout] | [INFO] [stdout] 33 | let nested = Expr::Unary(UnaryExpr { [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `UnaryExpr` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:33:30 [INFO] [stdout] | [INFO] [stdout] 33 | let nested = Expr::Unary(UnaryExpr { [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::UnaryExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `UnaryOperator` [INFO] [stdout] --> src/interpreter/expr.test.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | op: UnaryOperator::Minus, [INFO] [stdout] | ^^^^^^^^^^^^^ use of undeclared type `UnaryOperator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::UnaryOperator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T` [INFO] [stdout] --> src/interpreter/expr.test.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(-5))) [INFO] [stdout] | ^^^^ use of undeclared type `FL_T` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T_Primitive` [INFO] [stdout] --> src/interpreter/expr.test.rs:40:28 [INFO] [stdout] | [INFO] [stdout] 40 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(-5))) [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `FL_T_Primitive` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T_Primitive; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `matched` [INFO] [stdout] --> src/parser/primitives.rs:362:20 [INFO] [stdout] | [INFO] [stdout] 362 | let (rest, matched) = p.parse(input)?; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matched` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T` [INFO] [stdout] --> src/interpreter/expr.test.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(5))) [INFO] [stdout] | ^^^^ use of undeclared type `FL_T` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T_Primitive` [INFO] [stdout] --> src/interpreter/expr.test.rs:45:28 [INFO] [stdout] | [INFO] [stdout] 45 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(5))) [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `FL_T_Primitive` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T_Primitive; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Interpreter` [INFO] [stdout] --> src/interpreter/expr.test.rs:51:23 [INFO] [stdout] | [INFO] [stdout] 51 | let interpreter = Interpreter::new(vec![], io::stdout()); [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `Interpreter` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::Interpreter; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `io` [INFO] [stdout] --> src/interpreter/expr.test.rs:51:48 [INFO] [stdout] | [INFO] [stdout] 51 | let interpreter = Interpreter::new(vec![], io::stdout()); [INFO] [stdout] | ^^ use of undeclared crate or module `io` [INFO] [stdout] | [INFO] [stdout] help: a builtin type with a similar name exists [INFO] [stdout] | [INFO] [stdout] 51 | let interpreter = Interpreter::new(vec![], i8::stdout()); [INFO] [stdout] | ~~ [INFO] [stdout] help: consider importing one of these modules [INFO] [stdout] | [INFO] [stdout] 1 + use crate::io; [INFO] [stdout] | [INFO] [stdout] 1 + use std::io; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:54:17 [INFO] [stdout] | [INFO] [stdout] 54 | let inner = Expr::Binary(BinaryExpr { [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `BinaryExpr` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:54:30 [INFO] [stdout] | [INFO] [stdout] 54 | let inner = Expr::Binary(BinaryExpr { [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::BinaryExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:55:23 [INFO] [stdout] | [INFO] [stdout] 55 | lhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:55:37 [INFO] [stdout] | [INFO] [stdout] 55 | lhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Number` [INFO] [stdout] --> src/interpreter/expr.test.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | Number::Integer32(5), [INFO] [stdout] | ^^^^^^ use of undeclared type `Number` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Number; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:58:23 [INFO] [stdout] | [INFO] [stdout] 58 | rhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:58:37 [INFO] [stdout] | [INFO] [stdout] 58 | rhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Number` [INFO] [stdout] --> src/interpreter/expr.test.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | Number::Integer32(10), [INFO] [stdout] | ^^^^^^ use of undeclared type `Number` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Number; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `BinaryOperator` [INFO] [stdout] --> src/interpreter/expr.test.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | op: BinaryOperator::Mul, [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `BinaryOperator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::BinaryOperator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:64:18 [INFO] [stdout] | [INFO] [stdout] 64 | let nested = Expr::Binary(BinaryExpr { [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `BinaryExpr` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:64:31 [INFO] [stdout] | [INFO] [stdout] 64 | let nested = Expr::Binary(BinaryExpr { [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::BinaryExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:66:23 [INFO] [stdout] | [INFO] [stdout] 66 | rhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:66:37 [INFO] [stdout] | [INFO] [stdout] 66 | rhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Number` [INFO] [stdout] --> src/interpreter/expr.test.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | Number::Integer32(3), [INFO] [stdout] | ^^^^^^ use of undeclared type `Number` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Number; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `BinaryOperator` [INFO] [stdout] --> src/interpreter/expr.test.rs:69:13 [INFO] [stdout] | [INFO] [stdout] 69 | op: BinaryOperator::Plus, [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `BinaryOperator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::BinaryOperator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T` [INFO] [stdout] --> src/interpreter/expr.test.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(50))) [INFO] [stdout] | ^^^^ use of undeclared type `FL_T` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T_Primitive` [INFO] [stdout] --> src/interpreter/expr.test.rs:74:28 [INFO] [stdout] | [INFO] [stdout] 74 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(50))) [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `FL_T_Primitive` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T_Primitive; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T` [INFO] [stdout] --> src/interpreter/expr.test.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(53))) [INFO] [stdout] | ^^^^ use of undeclared type `FL_T` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FL_T_Primitive` [INFO] [stdout] --> src/interpreter/expr.test.rs:79:28 [INFO] [stdout] | [INFO] [stdout] 79 | Ok(FL_T::Primitive(FL_T_Primitive::Integer32(53))) [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `FL_T_Primitive` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::FL_T_Primitive; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `ForLoop` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:86:20 [INFO] [stdout] | [INFO] [stdout] 86 | let for_loop = ForLoop { [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::expr::Statement::ForLoop; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::ForLoop; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Declaration` [INFO] [stdout] --> src/interpreter/expr.test.rs:87:27 [INFO] [stdout] | [INFO] [stdout] 87 | init_declaration: Declaration::Let(LetBinding { [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `Declaration` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::expr::Declaration; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `LetBinding` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:87:44 [INFO] [stdout] | [INFO] [stdout] 87 | init_declaration: Declaration::Let(LetBinding { [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LetBinding; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `Identifier` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:88:25 [INFO] [stdout] | [INFO] [stdout] 88 | identifier: Identifier(String::from("k")), [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::vm::TokenKind::Identifier; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:89:18 [INFO] [stdout] | [INFO] [stdout] 89 | rhs: Expr::Literal(LiteralExpr::NumberLiteral(Number::Integer32(0))), [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:89:32 [INFO] [stdout] | [INFO] [stdout] 89 | rhs: Expr::Literal(LiteralExpr::NumberLiteral(Number::Integer32(0))), [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Number` [INFO] [stdout] --> src/interpreter/expr.test.rs:89:59 [INFO] [stdout] | [INFO] [stdout] 89 | rhs: Expr::Literal(LiteralExpr::NumberLiteral(Number::Integer32(0))), [INFO] [stdout] | ^^^^^^ use of undeclared type `Number` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Number; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:91:20 [INFO] [stdout] | [INFO] [stdout] 91 | condition: Expr::Binary(BinaryExpr { [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `BinaryExpr` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:91:33 [INFO] [stdout] | [INFO] [stdout] 91 | condition: Expr::Binary(BinaryExpr { [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::BinaryExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:92:27 [INFO] [stdout] | [INFO] [stdout] 92 | lhs: Box::new(Expr::Literal(LiteralExpr::Identifier(Identifier( [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:92:41 [INFO] [stdout] | [INFO] [stdout] 92 | lhs: Box::new(Expr::Literal(LiteralExpr::Identifier(Identifier( [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `Identifier` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:92:65 [INFO] [stdout] | [INFO] [stdout] 92 | lhs: Box::new(Expr::Literal(LiteralExpr::Identifier(Identifier( [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::vm::TokenKind::Identifier; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `BinaryOperator` [INFO] [stdout] --> src/interpreter/expr.test.rs:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | op: BinaryOperator::Less, [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `BinaryOperator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::BinaryOperator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:96:27 [INFO] [stdout] | [INFO] [stdout] 96 | rhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:96:41 [INFO] [stdout] | [INFO] [stdout] 96 | rhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Number` [INFO] [stdout] --> src/interpreter/expr.test.rs:97:17 [INFO] [stdout] | [INFO] [stdout] 97 | Number::Integer32(10), [INFO] [stdout] | ^^^^^^ use of undeclared type `Number` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Number; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Declaration` [INFO] [stdout] --> src/interpreter/expr.test.rs:100:25 [INFO] [stdout] | [INFO] [stdout] 100 | post_iteration: Declaration::Reassignment(Reassignment { [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `Declaration` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::expr::Declaration; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Reassignment` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:100:51 [INFO] [stdout] | [INFO] [stdout] 100 | post_iteration: Declaration::Reassignment(Reassignment { [INFO] [stdout] | ^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::expr::Declaration::Reassignment; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Reassignment; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `Identifier` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:101:25 [INFO] [stdout] | [INFO] [stdout] 101 | identifier: Identifier(String::from("k")), [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::vm::TokenKind::Identifier; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:102:18 [INFO] [stdout] | [INFO] [stdout] 102 | rhs: Expr::Binary(BinaryExpr { [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0422]: cannot find struct, variant or union type `BinaryExpr` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:102:31 [INFO] [stdout] | [INFO] [stdout] 102 | rhs: Expr::Binary(BinaryExpr { [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::BinaryExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:103:31 [INFO] [stdout] | [INFO] [stdout] 103 | lhs: Box::new(Expr::Literal(LiteralExpr::Identifier(Identifier( [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:103:45 [INFO] [stdout] | [INFO] [stdout] 103 | lhs: Box::new(Expr::Literal(LiteralExpr::Identifier(Identifier( [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `Identifier` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:103:69 [INFO] [stdout] | [INFO] [stdout] 103 | lhs: Box::new(Expr::Literal(LiteralExpr::Identifier(Identifier( [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::vm::TokenKind::Identifier; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `BinaryOperator` [INFO] [stdout] --> src/interpreter/expr.test.rs:106:21 [INFO] [stdout] | [INFO] [stdout] 106 | op: BinaryOperator::Plus, [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `BinaryOperator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::BinaryOperator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:107:31 [INFO] [stdout] | [INFO] [stdout] 107 | rhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:107:45 [INFO] [stdout] | [INFO] [stdout] 107 | rhs: Box::new(Expr::Literal(LiteralExpr::NumberLiteral( [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Number` [INFO] [stdout] --> src/interpreter/expr.test.rs:108:21 [INFO] [stdout] | [INFO] [stdout] 108 | Number::Integer32(1), [INFO] [stdout] | ^^^^^^ use of undeclared type `Number` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Number; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Statement` [INFO] [stdout] --> src/interpreter/expr.test.rs:112:15 [INFO] [stdout] | [INFO] [stdout] 112 | body: Statement::Block(vec![Declaration::Statement(Statement::Print( [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `Statement` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::expr::Statement; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Declaration` [INFO] [stdout] --> src/interpreter/expr.test.rs:112:37 [INFO] [stdout] | [INFO] [stdout] 112 | body: Statement::Block(vec![Declaration::Statement(Statement::Print( [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `Declaration` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::expr::Declaration; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Statement` [INFO] [stdout] --> src/interpreter/expr.test.rs:112:60 [INFO] [stdout] | [INFO] [stdout] 112 | body: Statement::Block(vec![Declaration::Statement(Statement::Print( [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `Statement` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::expr::Statement; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Expr` [INFO] [stdout] --> src/interpreter/expr.test.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | Expr::Literal(LiteralExpr::Identifier(Identifier(String::from("a")))), [INFO] [stdout] | ^^^^ use of undeclared type `Expr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Expr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `LiteralExpr` [INFO] [stdout] --> src/interpreter/expr.test.rs:113:27 [INFO] [stdout] | [INFO] [stdout] 113 | Expr::Literal(LiteralExpr::Identifier(Identifier(String::from("a")))), [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `LiteralExpr` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `Identifier` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:113:51 [INFO] [stdout] | [INFO] [stdout] 113 | Expr::Literal(LiteralExpr::Identifier(Identifier(String::from("a")))), [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::parser::LiteralExpr::Identifier; [INFO] [stdout] | [INFO] [stdout] 1 + use crate::vm::TokenKind::Identifier; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `desugar_for_loop_to_while_block` in this scope [INFO] [stdout] --> src/interpreter/expr.test.rs:117:21 [INFO] [stdout] | [INFO] [stdout] 117 | let desugared = desugar_for_loop_to_while_block(&for_loop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function through its public re-export [INFO] [stdout] | [INFO] [stdout] 1 + use crate::interpreter::desugar_for_loop_to_while_block; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:331:10 [INFO] [stdout] | [INFO] [stdout] 331 | pub enum FL_T { [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `FlT` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Primitive` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:378:10 [INFO] [stdout] | [INFO] [stdout] 378 | pub enum FL_T_Primitive { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTPrimitive` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Callable` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:388:12 [INFO] [stdout] | [INFO] [stdout] 388 | pub struct FL_T_Callable { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTCallable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Callable_Body` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:404:10 [INFO] [stdout] | [INFO] [stdout] 404 | pub enum FL_T_Callable_Body { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FlTCallableBody` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `FL_T` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | FL_T(Statement), // FL_T [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `FlT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Callable_Native` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:410:10 [INFO] [stdout] | [INFO] [stdout] 410 | pub enum Callable_Native { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CallableNative` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `FL_T_Bool` should have an upper camel case name [INFO] [stdout] --> src/interpreter/expr.rs:448:10 [INFO] [stdout] | [INFO] [stdout] 448 | pub enum FL_T_Bool { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `FlTBool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/parser/parser.rs:224:34 [INFO] [stdout] | [INFO] [stdout] 222 | impl<'a, F, Output> Parser<'a, Output> for F [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 223 | where [INFO] [stdout] 224 | F: Fn(&'a str) -> ParseResult, [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `INTERPRETER_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum INTERPRETER_ERROR { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpreterError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INTERPRET_COMPILE_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | INTERPRET_COMPILE_ERROR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretCompileError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INTERPRET_RUNTIME_ERROR` should have an upper camel case name [INFO] [stdout] --> src/vm/common.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | INTERPRET_RUNTIME_ERROR, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `InterpretRuntimeError` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err1` [INFO] [stdout] --> src/parser/combinators.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | Err(err1) => match parser2.parse(input) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_err1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `results` [INFO] [stdout] --> src/parser/combinators.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | let results = Vec::::new(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rest` [INFO] [stdout] --> src/parser/combinators.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | let rest = input; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/declaration.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/expr.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reconstructed` [INFO] [stdout] --> src/interpreter/declaration.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let reconstructed = Expr::Literal(LiteralExpr::Identifier(binding.identifier.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reconstructed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/interpreter/expr.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let res = RefCell::borrow_mut(&env).put( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `depth` [INFO] [stdout] --> src/interpreter/expr.rs:269:21 [INFO] [stdout] | [INFO] [stdout] 269 | if let Some(depth) = maybe_depth { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `env` [INFO] [stdout] --> src/interpreter/expr.rs:566:5 [INFO] [stdout] | [INFO] [stdout] 566 | env: Rc>, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_env` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interpreter/main.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interpreter/main.rs:98:17 [INFO] [stdout] | [INFO] [stdout] 98 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `matched` [INFO] [stdout] --> src/parser/primitives.rs:362:20 [INFO] [stdout] | [INFO] [stdout] 362 | let (rest, matched) = p.parse(input)?; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matched` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry_pair` [INFO] [stdout] --> src/parser/primitives.rs:309:12 [INFO] [stdout] | [INFO] [stdout] 309 | |((entry_pair, decl, (mid_pair, last_pair)), body)| ForLoop { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entry_pair` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contents` [INFO] [stdout] --> src/vm/common.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | let contents = fs::read_to_string(path).expect("Filepath has to be valid"); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokenizer` [INFO] [stdout] --> src/vm/compiler.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | fn expression(tokenizer: &mut Lexer) {} [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokenizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokenizer` [INFO] [stdout] --> src/vm/compiler.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | fn number(tokenizer: &mut Lexer) { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokenizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/vm/scanner.rs:111:17 [INFO] [stdout] | [INFO] [stdout] 111 | let end = start + bytes_skipped; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `snippet_err_offset` [INFO] [stdout] --> src/vm/scanner.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let snippet_err_offset = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snippet_err_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/vm/scanner.rs:193:28 [INFO] [stdout] | [INFO] [stdout] 193 | fn tokenize_string_literal(src: &str) -> LexerResult<(TokenKind, usize)> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_src` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parser` [INFO] [stdout] --> src/main.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | let parser = grammar::parse_program(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Bool` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:380:5 [INFO] [stdout] | [INFO] [stdout] 378 | pub enum FL_T_Primitive { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] 379 | Str(String), [INFO] [stdout] 380 | Bool(bool), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FL_T_Primitive` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Native` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:405:5 [INFO] [stdout] | [INFO] [stdout] 404 | pub enum FL_T_Callable_Body { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 405 | Native(Callable_Native), // Rust [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FL_T_Callable_Body` 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: variant `Clock` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:411:5 [INFO] [stdout] | [INFO] [stdout] 410 | pub enum Callable_Native { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 411 | Clock, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Callable_Native` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `True` and `False` are never constructed [INFO] [stdout] --> src/interpreter/expr.rs:449:5 [INFO] [stdout] | [INFO] [stdout] 448 | pub enum FL_T_Bool { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 449 | True, [INFO] [stdout] | ^^^^ [INFO] [stdout] 450 | False, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FL_T_Bool` 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: function `empty_env` is never used [INFO] [stdout] --> src/interpreter/expr.test.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn empty_env() -> Rc> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_at` is never used [INFO] [stdout] --> src/interpreter/main.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl Environment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn get_at( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `environment` is never read [INFO] [stdout] --> src/interpreter/main.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct Interpreter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 119 | pub environment: Rc>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Interpreter` 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: methods `preload_with` and `inject_into_global_env` are never used [INFO] [stdout] --> src/interpreter/main.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 123 | impl Interpreter { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn preload_with(&mut self, m: HashMap>) -> InterpreterResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn inject_into_global_env( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `either` is never used [INFO] [stdout] --> src/parser/combinators.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn either<'a, P1, P2, A>(parser1: P1, parser2: P2) -> impl Parser<'a, A> [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `either_polymorphic` is never used [INFO] [stdout] --> src/parser/combinators.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn either_polymorphic<'a, R1, R2>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `left` is never used [INFO] [stdout] --> src/parser/combinators.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn left<'a, P1, P2, R1, R2>(parser1: P1, parser2: P2) -> impl Parser<'a, R1> [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `right` is never used [INFO] [stdout] --> src/parser/combinators.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn right<'a, P1, P2, R1, R2>(parser1: P1, parser2: P2) -> impl Parser<'a, R2> [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `predicate` is never used [INFO] [stdout] --> src/parser/parser.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait Parser<'a, Output> { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 25 | fn predicate(self, pred_fn: F) -> BoxedParser<'a, Output> [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sequence_of` is never used [INFO] [stdout] --> src/parser/parser.rs:249:4 [INFO] [stdout] | [INFO] [stdout] 249 | fn sequence_of() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_identifier_as_identifier` is never used [INFO] [stdout] --> src/parser/primitives.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn parse_identifier_as_identifier<'a>() -> impl Parser<'a, Identifier> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_grouping_expr` is never used [INFO] [stdout] --> src/parser/primitives.rs:337:8 [INFO] [stdout] | [INFO] [stdout] 337 | pub fn parse_grouping_expr<'a>() -> impl Parser<'a, Expr> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OpCode` is never used [INFO] [stdout] --> src/vm/common.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub type OpCode = u8; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_RETURN` is never used [INFO] [stdout] --> src/vm/common.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const OP_RETURN: OpCode = 0x0; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_CONSTANT` is never used [INFO] [stdout] --> src/vm/common.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const OP_CONSTANT: OpCode = 0x1; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_NEGATE` is never used [INFO] [stdout] --> src/vm/common.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const OP_NEGATE: OpCode = 0x2; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_ADD` is never used [INFO] [stdout] --> src/vm/common.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const OP_ADD: OpCode = 0x3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_SUBTRACT` is never used [INFO] [stdout] --> src/vm/common.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const OP_SUBTRACT: OpCode = 0x4; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_MULTIPLY` is never used [INFO] [stdout] --> src/vm/common.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const OP_MULTIPLY: OpCode = 0x5; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OP_DIVIDE` is never used [INFO] [stdout] --> src/vm/common.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const OP_DIVIDE: OpCode = 0x6; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `primitive_instruction` is never used [INFO] [stdout] --> src/vm/common.rs:20:4 [INFO] [stdout] | [INFO] [stdout] 20 | fn primitive_instruction(name: &str, offset: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `constant_instruction` is never used [INFO] [stdout] --> src/vm/common.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn constant_instruction(name: &str, chunk: &Chunk, offset: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Value` is never used [INFO] [stdout] --> src/vm/common.rs:37:10 [INFO] [stdout] | [INFO] [stdout] 37 | pub type Value = f64; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_value` is never used [INFO] [stdout] --> src/vm/common.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn print_value(val: Value) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValueArray` is never constructed [INFO] [stdout] --> src/vm/common.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct ValueArray { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CAPACITY_LOW_THRESHOLD` is never used [INFO] [stdout] --> src/vm/common.rs:49:7 [INFO] [stdout] | [INFO] [stdout] 49 | const CAPACITY_LOW_THRESHOLD: usize = 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CAPACITY_INCREMENT_MULTIPLIER` is never used [INFO] [stdout] --> src/vm/common.rs:50:7 [INFO] [stdout] | [INFO] [stdout] 50 | const CAPACITY_INCREMENT_MULTIPLIER: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STACK_CAPACITY` is never used [INFO] [stdout] --> src/vm/common.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const STACK_CAPACITY: usize = 256; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `INTERPRETER_ERROR` is never used [INFO] [stdout] --> src/vm/common.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum INTERPRETER_ERROR { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `INTERPRETER_ERROR` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `VmResult` is never used [INFO] [stdout] --> src/vm/common.rs:59:10 [INFO] [stdout] | [INFO] [stdout] 59 | pub type VmResult = Result; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEBUG_TRACE_EXECUTION` is never used [INFO] [stdout] --> src/vm/common.rs:61:7 [INFO] [stdout] | [INFO] [stdout] 61 | const DEBUG_TRACE_EXECUTION: bool = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VM` is never constructed [INFO] [stdout] --> src/vm/common.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct VM { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `interpret`, `with_chunk`, `push`, `pop`, and `run` are never used [INFO] [stdout] --> src/vm/common.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl VM { [INFO] [stdout] | ------- associated items in this implementation [INFO] [stdout] 70 | pub fn interpret(chunk: Chunk) -> VmResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn with_chunk(chunk: Chunk) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn push(&mut self, val: Value) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn pop(&mut self) -> Value { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | fn run(&mut self) -> VmResult<()> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_byte` is never used [INFO] [stdout] --> src/vm/common.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | fn read_byte(vm: &mut VM) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_const` is never used [INFO] [stdout] --> src/vm/common.rs:153:4 [INFO] [stdout] | [INFO] [stdout] 153 | fn read_const(vm: &mut VM) -> Value { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upgrade_capacity`, and `write` are never used [INFO] [stdout] --> src/vm/common.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 159 | impl ValueArray { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 160 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | fn upgrade_capacity(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn write(&mut self, val: Value) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Chunk` is never constructed [INFO] [stdout] --> src/vm/common.rs:188:12 [INFO] [stdout] | [INFO] [stdout] 188 | pub struct Chunk { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_constant`, `write`, `upgrade_capacity`, and `disassemble` are never used [INFO] [stdout] --> src/vm/common.rs:197:12 [INFO] [stdout] | [INFO] [stdout] 196 | impl Chunk { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 197 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn add_constant(&mut self, val: Value) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub fn write(&mut self, byte: OpCode, line: u32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | fn upgrade_capacity(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub fn disassemble(&self, name: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_instruction` is never used [INFO] [stdout] --> src/vm/common.rs:247:8 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn disassemble_instruction(chunk: &Chunk, offset: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `interpret` is never used [INFO] [stdout] --> src/vm/common.rs:282:4 [INFO] [stdout] | [INFO] [stdout] 282 | fn interpret(source: &str) -> VmResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `CompilerResult` is never used [INFO] [stdout] --> src/vm/compiler.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub type CompilerResult = Result; // Change Err type later [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Compiler` is never constructed [INFO] [stdout] --> src/vm/compiler.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Compiler<'a> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile` is never used [INFO] [stdout] --> src/vm/compiler.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn compile(source: &str) -> CompilerResult { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `make_error_at_lexeme` is never used [INFO] [stdout] --> src/vm/compiler.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 38 | impl<'a> Compiler<'a> { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 39 | fn make_error_at_lexeme(&self, tok: LexedToken, msg: &str) -> CompilerResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expression` is never used [INFO] [stdout] --> src/vm/compiler.rs:51:4 [INFO] [stdout] | [INFO] [stdout] 51 | fn expression(tokenizer: &mut Lexer) {} [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `number` is never used [INFO] [stdout] --> src/vm/compiler.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn number(tokenizer: &mut Lexer) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `emit_return` is never used [INFO] [stdout] --> src/vm/compiler.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn emit_return(chunk: &mut Chunk) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_chunk` is never used [INFO] [stdout] --> src/vm/compiler.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn write_chunk(chunk: &mut Chunk, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_constant` is never used [INFO] [stdout] --> src/vm/compiler.rs:65:4 [INFO] [stdout] | [INFO] [stdout] 65 | fn make_constant(chunk: &mut Chunk, val: Value) -> CompilerResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_constant` is never used [INFO] [stdout] --> src/vm/compiler.rs:75:4 [INFO] [stdout] | [INFO] [stdout] 75 | fn write_constant(chunk: &mut Chunk, val: Value) -> CompilerResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_chunk_byte_tuple` is never used [INFO] [stdout] --> src/vm/compiler.rs:83:4 [INFO] [stdout] | [INFO] [stdout] 83 | fn write_chunk_byte_tuple(chunk: &mut Chunk, byte1: u8, byte2: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `consume` is never used [INFO] [stdout] --> src/vm/compiler.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | fn consume(tokenizer: &mut Lexer, kind: TokenKind) -> CompilerResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Comma`, `Dot`, `AND`, `OR`, and `Root` are never constructed [INFO] [stdout] --> src/vm/scanner.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum TokenKind { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 18 | Comma, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | Dot, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | AND, [INFO] [stdout] | ^^^ [INFO] [stdout] 39 | OR, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 57 | Root, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `had_error` and `panic_mode` are never read [INFO] [stdout] --> src/vm/scanner.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct Lexer<'a> { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | pub had_error: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 64 | pub panic_mode: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `consume` and `panic_mode_on` are never used [INFO] [stdout] --> src/vm/scanner.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 73 | impl<'a> Lexer<'a> { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn consume(&mut self, token_kind: TokenKind) -> LexerResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn panic_mode_on(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/vm/scanner.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 144 | pub enum LexerError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 145 | IdentStartsWithANumber, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 146 | UnexpectedEOF, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 147 | NoCharMatch, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 148 | MultipleDotsInNumber, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 149 | UnsupportedChar(char), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 150 | CouldNotTokenize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | CouldNotParseType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LexerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tokenize_string_literal` is never used [INFO] [stdout] --> src/vm/scanner.rs:193:4 [INFO] [stdout] | [INFO] [stdout] 193 | fn tokenize_string_literal(src: &str) -> LexerResult<(TokenKind, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/main.rs:94:17 [INFO] [stdout] | [INFO] [stdout] 94 | RefCell::borrow_mut(&relevant_ancestor).put(key, val.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 94 | let _ = RefCell::borrow_mut(&relevant_ancestor).put(key, val.clone()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/interpreter/main.rs:134:9 [INFO] [stdout] | [INFO] [stdout] 134 | me.load_defaults(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 134 | let _ = me.load_defaults(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/interpreter/resolver.rs:191:15 [INFO] [stdout] | [INFO] [stdout] 191 | while i >= 0 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/parser/parser.rs:258:47 [INFO] [stdout] | [INFO] [stdout] 258 | .map(|op_str| parse_literal(op_str.clone())) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/parser/parser.rs:268:47 [INFO] [stdout] | [INFO] [stdout] 268 | .map(|op_str| parse_literal(op_str.clone())) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 98 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/declaration.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/expr.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::BorrowMut` [INFO] [stdout] --> src/interpreter/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::BorrowMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reconstructed` [INFO] [stdout] --> src/interpreter/declaration.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | let reconstructed = Expr::Literal(LiteralExpr::Identifier(binding.identifier.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reconstructed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/interpreter/expr.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let res = RefCell::borrow_mut(&env).put( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_res` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `depth` [INFO] [stdout] --> src/interpreter/expr.rs:269:21 [INFO] [stdout] | [INFO] [stdout] 269 | if let Some(depth) = maybe_depth { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `env` [INFO] [stdout] --> src/interpreter/expr.rs:566:5 [INFO] [stdout] | [INFO] [stdout] 566 | env: Rc>, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_env` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interpreter/main.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/interpreter/main.rs:98:17 [INFO] [stdout] | [INFO] [stdout] 98 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `entry_pair` [INFO] [stdout] --> src/parser/primitives.rs:309:12 [INFO] [stdout] | [INFO] [stdout] 309 | |((entry_pair, decl, (mid_pair, last_pair)), body)| ForLoop { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entry_pair` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contents` [INFO] [stdout] --> src/vm/common.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | let contents = fs::read_to_string(path).expect("Filepath has to be valid"); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokenizer` [INFO] [stdout] --> src/vm/compiler.rs:51:15 [INFO] [stdout] | [INFO] [stdout] 51 | fn expression(tokenizer: &mut Lexer) {} [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokenizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tokenizer` [INFO] [stdout] --> src/vm/compiler.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | fn number(tokenizer: &mut Lexer) { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokenizer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end` [INFO] [stdout] --> src/vm/scanner.rs:111:17 [INFO] [stdout] | [INFO] [stdout] 111 | let end = start + bytes_skipped; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `snippet_err_offset` [INFO] [stdout] --> src/vm/scanner.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let snippet_err_offset = 20; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_snippet_err_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/vm/scanner.rs:193:28 [INFO] [stdout] | [INFO] [stdout] 193 | fn tokenize_string_literal(src: &str) -> LexerResult<(TokenKind, usize)> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_src` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parser` [INFO] [stdout] --> src/main.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | let parser = grammar::parse_program(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 79 previous errors; 32 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0422, E0425, E0432, E0433. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0422`. [INFO] [stdout] [INFO] [stderr] error: could not compile `forklift` (bin "forklift" test) due to 80 previous errors; 32 warnings 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" "62f4dfea692783b1f158ad1014516e6ce0ccc2044e2d6aaf60f121f79e869f20", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "62f4dfea692783b1f158ad1014516e6ce0ccc2044e2d6aaf60f121f79e869f20", kill_on_drop: false }` [INFO] [stdout] 62f4dfea692783b1f158ad1014516e6ce0ccc2044e2d6aaf60f121f79e869f20