[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] building 4b1dden/forklift against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4b1dden%2Fforklift" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/4b1dden/forklift on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "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-3-tc1/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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0c1034af9c63dbeb0f1c0c6e9a842c4156554038e3aa14808810a18bbd829ae0 [INFO] running `Command { std: "docker" "start" "-a" "0c1034af9c63dbeb0f1c0c6e9a842c4156554038e3aa14808810a18bbd829ae0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0c1034af9c63dbeb0f1c0c6e9a842c4156554038e3aa14808810a18bbd829ae0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0c1034af9c63dbeb0f1c0c6e9a842c4156554038e3aa14808810a18bbd829ae0", kill_on_drop: false }` [INFO] [stdout] 0c1034af9c63dbeb0f1c0c6e9a842c4156554038e3aa14808810a18bbd829ae0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 370ed838686d2a77d8eadb5c1065756ab6116ddb0570c51dda57ac71608b6157 [INFO] running `Command { std: "docker" "start" "-a" "370ed838686d2a77d8eadb5c1065756ab6116ddb0570c51dda57ac71608b6157", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling ordered-float v3.0.0 [INFO] [stderr] Compiling forklift v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufWriter` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::BufWriter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Identifier`, `LiteralExpr`, `either_polymorphic`, and `either` [INFO] [stdout] --> src/grammar.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | any_of_monomorphic, either, either_polymorphic, end_with_semicolon, parse_binary_expression, [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 6 | triplet, zero_or_more, BoxedParser, Expr, FnDef, ForLoop, Identifier, IfBlock, LetBinding, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 7 | LiteralExpr, ParseResult, Parser, Reassignment, WhileLoop, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RefMut` [INFO] [stdout] --> src/interpreter/declaration.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::{RefCell, RefMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ensure_is_identifier` [INFO] [stdout] --> src/interpreter/declaration.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::parser::{ensure_is_identifier, Expr, LetBinding, LiteralExpr, Reassignment}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/interpreter/expr.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, and `Sub` [INFO] [stdout] --> src/interpreter/expr.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::ops::{Add, Deref, Div, Mul, Sub}; [INFO] [stdout] | ^^^ ^^^ ^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LetBinding` [INFO] [stdout] --> src/interpreter/expr.rs:15:84 [INFO] [stdout] | [INFO] [stdout] 15 | BinaryExpr, BinaryOperator, Expr, FnCall, FnDef, ForLoop, Identifier, IfBlock, LetBinding, [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:332:10 [INFO] [stdout] | [INFO] [stdout] 332 | 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:379:10 [INFO] [stdout] | [INFO] [stdout] 379 | 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:389:12 [INFO] [stdout] | [INFO] [stdout] 389 | 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:405:10 [INFO] [stdout] | [INFO] [stdout] 405 | 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:407:5 [INFO] [stdout] | [INFO] [stdout] 407 | 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:411:10 [INFO] [stdout] | [INFO] [stdout] 411 | 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:449:10 [INFO] [stdout] | [INFO] [stdout] 449 | pub enum FL_T_Bool { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `FlTBool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/interpreter/expr.test.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FL_T_Primitive`, `FL_T`, and `desugar_for_loop_to_while_block` [INFO] [stdout] --> src/interpreter/expr.test.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | use super::{desugar_for_loop_to_while_block, FL_T_Primitive, FL_T}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Declaration` and `Statement` [INFO] [stdout] --> src/interpreter/expr.test.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::grammar::{Declaration, Statement}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `InterpreterResult` and `Interpreter` [INFO] [stdout] --> src/interpreter/expr.test.rs:7:39 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::interpreter::{Environment, Interpreter, InterpreterResult}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BinaryExpr`, `BinaryOperator`, `Expr`, `ForLoop`, `Identifier`, `LetBinding`, `LiteralExpr`, `Number`, `Reassignment`, `StringLiteral`, `UnaryExpr`, and `UnaryOperator` [INFO] [stdout] --> src/interpreter/expr.test.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | BinaryExpr, BinaryOperator, Expr, ForLoop, Identifier, LetBinding, LiteralExpr, Number, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] 10 | Reassignment, StringLiteral, UnaryExpr, UnaryOperator, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/interpreter/main.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::{RefCell, Ref}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Identifier` [INFO] [stdout] --> src/interpreter/main.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::parser::{Expr, Identifier}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Declaration` and `FL_T_Callable` [INFO] [stdout] --> src/interpreter/main.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | grammar::{Declaration, Program}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 10 | interpreter::{FL_T_Callable, InterpreterResult, FL_T}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Callable_Native` and `FL_T_Callable_Body` [INFO] [stdout] --> src/interpreter/main.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use super::{Callable_Native, FL_T_Callable_Body}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `resolver::*` [INFO] [stdout] --> src/interpreter/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use resolver::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ParseResult` [INFO] [stdout] --> src/parser/combinators.rs:3:39 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::{map, BoxedParser, ParseResult, Parser}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/parser/combinators.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | if let (Ok(_)) = result { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 92 - if let (Ok(_)) = result { [INFO] [stdout] 92 + if let Ok(_) = result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `either`, `left`, `parse_identifier`, `parse_number`, `right`, and `sequence_of_monomorphic` [INFO] [stdout] --> src/parser/parser.rs:4:25 [INFO] [stdout] | [INFO] [stdout] 4 | any_of_monomorphic, either, left, one_or_more, optional, pair, parse_expr, [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] 5 | parse_grouping_expr_2, parse_identifier, parse_literal, parse_number, parse_string_literal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] 6 | right, sequence_of_monomorphic, triplet, zero_or_more, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/parser/parser.rs:225:34 [INFO] [stdout] | [INFO] [stdout] 223 | impl<'a, F, Output> Parser<'a, Output> for F [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 224 | where [INFO] [stdout] 225 | 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: unused import: `wrapped_scope` [INFO] [stdout] --> src/parser/primitives.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | wrapped_scope, Declaration, Statement, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `and_then`, `either`, `optional_whitespace`, and `parse_function_call` [INFO] [stdout] --> src/parser/primitives.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | and_then, at_least_one_whitespace, either, optional_whitespace, parse_binary_expression, [INFO] [stdout] | ^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | parse_expr_literal, parse_function_call, parse_unary_expression, sequence_of_monomorphic, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `map` [INFO] [stdout] --> src/parser/primitives.rs:13:25 [INFO] [stdout] | [INFO] [stdout] 13 | any_of_monomorphic, map, optional, pair, parse_function_call_for_expr, triplet, ParseResult, [INFO] [stdout] | ^^^ [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 imports: `LexerError` and `tokenize` [INFO] [stdout] --> src/vm/compiler.rs:1:26 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::vm::scanner::{tokenize, LexedToken, Lexer, LexerError, TokenKind}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OP_ADD`, `OP_DIVIDE`, `OP_NEGATE`, and `OP_SUBTRACT` [INFO] [stdout] --> src/vm/compiler.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | Chunk, OpCode, Value, OP_ADD, OP_CONSTANT, OP_DIVIDE, OP_NEGATE, OP_RETURN, OP_SUBTRACT, [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::grammar::parse_declaration` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::grammar::parse_declaration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BoxedParser` and `Expr` [INFO] [stdout] --> src/main.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | use crate::parser::{BoxedParser, Expr, Parser}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [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:17 [INFO] [stdout] | [INFO] [stdout] 87 | let mut 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:17 [INFO] [stdout] | [INFO] [stdout] 88 | let mut rest = input; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/combinators.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | let mut results = Vec::::new(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/combinators.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | let mut rest = input; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `matched` [INFO] [stdout] --> src/parser/primitives.rs:363:20 [INFO] [stdout] | [INFO] [stdout] 363 | 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] [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: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/expr.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let mut local_env = Rc::new(RefCell::new(Environment::new(Some(env.clone())))); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/interpreter/expr.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | 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:270:21 [INFO] [stdout] | [INFO] [stdout] 270 | 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:567:5 [INFO] [stdout] | [INFO] [stdout] 567 | 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:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | 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:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | 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:310:12 [INFO] [stdout] | [INFO] [stdout] 310 | |((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:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | 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: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | let mut repl_env = Rc::new(RefCell::new(Environment::new(None))); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Bool` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:381:5 [INFO] [stdout] | [INFO] [stdout] 379 | pub enum FL_T_Primitive { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] 380 | Str(String), [INFO] [stdout] 381 | 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:406:5 [INFO] [stdout] | [INFO] [stdout] 405 | pub enum FL_T_Callable_Body { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 406 | 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:412:5 [INFO] [stdout] | [INFO] [stdout] 411 | pub enum Callable_Native { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 412 | 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:450:5 [INFO] [stdout] | [INFO] [stdout] 449 | pub enum FL_T_Bool { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 450 | True, [INFO] [stdout] | ^^^^ [INFO] [stdout] 451 | 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:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | 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:60:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl Environment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn get_at( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `environment` is never read [INFO] [stdout] --> src/interpreter/main.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 116 | pub struct Interpreter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 120 | 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:168:12 [INFO] [stdout] | [INFO] [stdout] 124 | impl Interpreter { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn preload_with(&mut self, m: HashMap>) -> InterpreterResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | 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:26:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait Parser<'a, Output> { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 26 | 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:250:4 [INFO] [stdout] | [INFO] [stdout] 250 | 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:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | 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:338:8 [INFO] [stdout] | [INFO] [stdout] 338 | 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:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | 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] 95 | 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:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | 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] 135 | 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:259:47 [INFO] [stdout] | [INFO] [stdout] 259 | .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:269:47 [INFO] [stdout] | [INFO] [stdout] 269 | .map(|op_str| parse_literal(op_str.clone())) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.28s [INFO] running `Command { std: "docker" "inspect" "370ed838686d2a77d8eadb5c1065756ab6116ddb0570c51dda57ac71608b6157", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "370ed838686d2a77d8eadb5c1065756ab6116ddb0570c51dda57ac71608b6157", kill_on_drop: false }` [INFO] [stdout] 370ed838686d2a77d8eadb5c1065756ab6116ddb0570c51dda57ac71608b6157 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2621759abae804f77ed9651469e8f25d6ba9ac7b0622b9f87c7d71117117b250 [INFO] running `Command { std: "docker" "start" "-a" "2621759abae804f77ed9651469e8f25d6ba9ac7b0622b9f87c7d71117117b250", kill_on_drop: false }` [INFO] [stderr] Compiling forklift v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufWriter` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::BufWriter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Identifier`, `LiteralExpr`, `either_polymorphic`, and `either` [INFO] [stdout] --> src/grammar.rs:2:25 [INFO] [stdout] | [INFO] [stdout] 2 | any_of_monomorphic, either, either_polymorphic, end_with_semicolon, parse_binary_expression, [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 6 | triplet, zero_or_more, BoxedParser, Expr, FnDef, ForLoop, Identifier, IfBlock, LetBinding, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 7 | LiteralExpr, ParseResult, Parser, Reassignment, WhileLoop, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RefMut` [INFO] [stdout] --> src/interpreter/declaration.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::{RefCell, RefMut}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ensure_is_identifier` [INFO] [stdout] --> src/interpreter/declaration.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::parser::{ensure_is_identifier, Expr, LetBinding, LiteralExpr, Reassignment}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/interpreter/expr.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, and `Sub` [INFO] [stdout] --> src/interpreter/expr.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::ops::{Add, Deref, Div, Mul, Sub}; [INFO] [stdout] | ^^^ ^^^ ^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LetBinding` [INFO] [stdout] --> src/interpreter/expr.rs:15:84 [INFO] [stdout] | [INFO] [stdout] 15 | BinaryExpr, BinaryOperator, Expr, FnCall, FnDef, ForLoop, Identifier, IfBlock, LetBinding, [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:332:10 [INFO] [stdout] | [INFO] [stdout] 332 | 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:379:10 [INFO] [stdout] | [INFO] [stdout] 379 | 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:389:12 [INFO] [stdout] | [INFO] [stdout] 389 | 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:405:10 [INFO] [stdout] | [INFO] [stdout] 405 | 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:407:5 [INFO] [stdout] | [INFO] [stdout] 407 | 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:411:10 [INFO] [stdout] | [INFO] [stdout] 411 | 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:449:10 [INFO] [stdout] | [INFO] [stdout] 449 | pub enum FL_T_Bool { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `FlTBool` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/interpreter/expr.test.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `InterpreterResult` [INFO] [stdout] --> src/interpreter/expr.test.rs:7:52 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::interpreter::{Environment, Interpreter, InterpreterResult}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StringLiteral` [INFO] [stdout] --> src/interpreter/expr.test.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | Reassignment, StringLiteral, UnaryExpr, UnaryOperator, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/interpreter/main.rs:2:26 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::{RefCell, Ref}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Identifier` [INFO] [stdout] --> src/interpreter/main.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::parser::{Expr, Identifier}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Declaration` and `FL_T_Callable` [INFO] [stdout] --> src/interpreter/main.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | grammar::{Declaration, Program}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 10 | interpreter::{FL_T_Callable, InterpreterResult, FL_T}, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Callable_Native` and `FL_T_Callable_Body` [INFO] [stdout] --> src/interpreter/main.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use super::{Callable_Native, FL_T_Callable_Body}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ParseResult` [INFO] [stdout] --> src/parser/combinators.rs:3:39 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::{map, BoxedParser, ParseResult, Parser}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/parser/combinators.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | if let (Ok(_)) = result { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 92 - if let (Ok(_)) = result { [INFO] [stdout] 92 + if let Ok(_) = result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `either`, `left`, `parse_identifier`, `parse_number`, `right`, and `sequence_of_monomorphic` [INFO] [stdout] --> src/parser/parser.rs:4:25 [INFO] [stdout] | [INFO] [stdout] 4 | any_of_monomorphic, either, left, one_or_more, optional, pair, parse_expr, [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] 5 | parse_grouping_expr_2, parse_identifier, parse_literal, parse_number, parse_string_literal, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] 6 | right, sequence_of_monomorphic, triplet, zero_or_more, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/parser/parser.rs:225:34 [INFO] [stdout] | [INFO] [stdout] 223 | impl<'a, F, Output> Parser<'a, Output> for F [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] 224 | where [INFO] [stdout] 225 | 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: unused imports: `Statement`, `StringLiteral`, `fold_infix_binary_to_single_expr`, `parse_expr`, `parse_function_call`, and `parse_let_binding` [INFO] [stdout] --> src/parser/parser.test.rs:2:46 [INFO] [stdout] | [INFO] [stdout] 2 | grammar::{decl_let_binding, Declaration, Statement}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 3 | parser::{ [INFO] [stdout] 4 | any_of_monomorphic, at_least_one_whitespace, fold_infix_binary_to_single_expr, map, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 5 | parse_binary_expression, parse_expr, parse_expr_literal, parse_function_call, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | parse_let_binding, parse_literal, parse_number, parse_unary_expression, predicate, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | BinaryExpr, BinaryOperator, Expr, FnCall, Identifier, LetBinding, LiteralExpr, Number, [INFO] [stdout] 8 | Parser, StringLiteral, UnaryExpr, UnaryOperator, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `wrapped_scope` [INFO] [stdout] --> src/parser/primitives.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | wrapped_scope, Declaration, Statement, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `and_then`, `either`, `optional_whitespace`, and `parse_function_call` [INFO] [stdout] --> src/parser/primitives.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | and_then, at_least_one_whitespace, either, optional_whitespace, parse_binary_expression, [INFO] [stdout] | ^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | parse_expr_literal, parse_function_call, parse_unary_expression, sequence_of_monomorphic, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `map` [INFO] [stdout] --> src/parser/primitives.rs:13:25 [INFO] [stdout] | [INFO] [stdout] 13 | any_of_monomorphic, map, optional, pair, parse_function_call_for_expr, triplet, ParseResult, [INFO] [stdout] | ^^^ [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 imports: `LexerError` and `tokenize` [INFO] [stdout] --> src/vm/compiler.rs:1:26 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::vm::scanner::{tokenize, LexedToken, Lexer, LexerError, TokenKind}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OP_ADD`, `OP_DIVIDE`, `OP_NEGATE`, and `OP_SUBTRACT` [INFO] [stdout] --> src/vm/compiler.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | Chunk, OpCode, Value, OP_ADD, OP_CONSTANT, OP_DIVIDE, OP_NEGATE, OP_RETURN, OP_SUBTRACT, [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LexerError` [INFO] [stdout] --> src/vm/scanner.test.rs:3:40 [INFO] [stdout] | [INFO] [stdout] 3 | tokenize_single_token, LexedToken, LexerError, TokenKind, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::grammar::parse_declaration` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::grammar::parse_declaration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BoxedParser` and `Expr` [INFO] [stdout] --> src/main.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | use crate::parser::{BoxedParser, Expr, Parser}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^ [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:17 [INFO] [stdout] | [INFO] [stdout] 87 | let mut 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:17 [INFO] [stdout] | [INFO] [stdout] 88 | let mut rest = input; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rest` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/combinators.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | let mut results = Vec::::new(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/parser/combinators.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | let mut rest = input; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `matched` [INFO] [stdout] --> src/parser/primitives.rs:363:20 [INFO] [stdout] | [INFO] [stdout] 363 | 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] [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: variable does not need to be mutable [INFO] [stdout] --> src/interpreter/expr.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let mut local_env = Rc::new(RefCell::new(Environment::new(Some(env.clone())))); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `res` [INFO] [stdout] --> src/interpreter/expr.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | 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:270:21 [INFO] [stdout] | [INFO] [stdout] 270 | 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:567:5 [INFO] [stdout] | [INFO] [stdout] 567 | 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:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | 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:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | 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:310:12 [INFO] [stdout] | [INFO] [stdout] 310 | |((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:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | 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: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | let mut repl_env = Rc::new(RefCell::new(Environment::new(None))); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Bool` is never constructed [INFO] [stdout] --> src/interpreter/expr.rs:381:5 [INFO] [stdout] | [INFO] [stdout] 379 | pub enum FL_T_Primitive { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] 380 | Str(String), [INFO] [stdout] 381 | 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:406:5 [INFO] [stdout] | [INFO] [stdout] 405 | pub enum FL_T_Callable_Body { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 406 | 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:412:5 [INFO] [stdout] | [INFO] [stdout] 411 | pub enum Callable_Native { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 412 | 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:450:5 [INFO] [stdout] | [INFO] [stdout] 449 | pub enum FL_T_Bool { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 450 | True, [INFO] [stdout] | ^^^^ [INFO] [stdout] 451 | 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:60:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl Environment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn get_at( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `environment` is never read [INFO] [stdout] --> src/interpreter/main.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 116 | pub struct Interpreter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 120 | 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:168:12 [INFO] [stdout] | [INFO] [stdout] 124 | impl Interpreter { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn preload_with(&mut self, m: HashMap>) -> InterpreterResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | 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:26:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait Parser<'a, Output> { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 26 | 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:250:4 [INFO] [stdout] | [INFO] [stdout] 250 | 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:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | 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:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | 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:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | 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] 95 | 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:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | 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] 135 | 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:259:47 [INFO] [stdout] | [INFO] [stdout] 259 | .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:269:47 [INFO] [stdout] | [INFO] [stdout] 269 | .map(|op_str| parse_literal(op_str.clone())) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.09s [INFO] running `Command { std: "docker" "inspect" "2621759abae804f77ed9651469e8f25d6ba9ac7b0622b9f87c7d71117117b250", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2621759abae804f77ed9651469e8f25d6ba9ac7b0622b9f87c7d71117117b250", kill_on_drop: false }` [INFO] [stdout] 2621759abae804f77ed9651469e8f25d6ba9ac7b0622b9f87c7d71117117b250