[INFO] cloning repository https://github.com/Peter-L-SVK/CRISP-lang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Peter-L-SVK/CRISP-lang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPeter-L-SVK%2FCRISP-lang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPeter-L-SVK%2FCRISP-lang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1758afa2bbf21b033ec3a48a189897c8ae631585
[INFO] checking Peter-L-SVK/CRISP-lang against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPeter-L-SVK%2FCRISP-lang" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Peter-L-SVK/CRISP-lang
[INFO] finished tweaking git repo https://github.com/Peter-L-SVK/CRISP-lang
[INFO] tweaked toml for git repo https://github.com/Peter-L-SVK/CRISP-lang written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Peter-L-SVK/CRISP-lang on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Peter-L-SVK/CRISP-lang 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded stacksafe v1.0.3
[INFO] [stderr]   Downloaded stacksafe-macro v1.0.3
[INFO] [stderr]   Downloaded ar_archive_writer v0.5.3
[INFO] [stderr]   Downloaded md5 v0.8.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] acce1ed08c9a04cacec8e9a9293811583163760935e18309df4e827a1425f014
[INFO] running `Command { std: "docker" "start" "acce1ed08c9a04cacec8e9a9293811583163760935e18309df4e827a1425f014", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "acce1ed08c9a04cacec8e9a9293811583163760935e18309df4e827a1425f014", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "acce1ed08c9a04cacec8e9a9293811583163760935e18309df4e827a1425f014" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "acce1ed08c9a04cacec8e9a9293811583163760935e18309df4e827a1425f014", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "acce1ed08c9a04cacec8e9a9293811583163760935e18309df4e827a1425f014" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling object v0.39.1
[INFO] [stderr]     Checking hybrid-array v0.4.14
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling cfg_aliases v0.2.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling stacker v0.1.24
[INFO] [stderr]     Checking regex-automata v0.4.16
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking simd-adler32 v0.3.10
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]     Checking http v1.5.0
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking base64 v0.23.1
[INFO] [stderr]     Checking jiff-core v0.1.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking radix_trie v0.3.0
[INFO] [stderr]     Checking clap_builder v4.6.5
[INFO] [stderr]     Checking rand v0.10.2
[INFO] [stderr]     Checking md5 v0.8.1
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking ureq-proto v0.6.1
[INFO] [stderr]     Checking crypto-common v0.2.2
[INFO] [stderr]     Checking block-buffer v0.12.1
[INFO] [stderr]     Checking jiff v0.2.35
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking digest v0.11.3
[INFO] [stderr]     Checking sha1 v0.11.0
[INFO] [stderr]     Checking sha2 v0.11.0
[INFO] [stderr]     Checking rustyline v18.0.1
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking env_filter v2.0.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling stacksafe-macro v1.0.3
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking env_logger v0.11.11
[INFO] [stderr]     Checking thiserror v2.0.19
[INFO] [stderr]     Checking clap v4.6.5
[INFO] [stderr]    Compiling ar_archive_writer v0.5.3
[INFO] [stderr]    Compiling logos-codegen v0.16.1
[INFO] [stderr]    Compiling psm v0.1.31
[INFO] [stderr]     Checking stacksafe v1.0.3
[INFO] [stderr]     Checking ureq v3.4.0
[INFO] [stderr]    Compiling logos-derive v0.16.1
[INFO] [stderr]     Checking logos v0.16.1
[INFO] [stderr]     Checking crisp v0.1.7 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/stdlib/mod.rs:370:9
[INFO] [stdout]     |
[INFO] [stdout] 370 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Builtins` is never constructed
[INFO] [stdout]   --> src/eval/builtins.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Builtins;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `register` is never used
[INFO] [stdout]   --> src/eval/builtins.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Builtins {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn register(_env: &mut Environment) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EvalError` is never used
[INFO] [stdout]   --> src/eval/error.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub type EvalError = RuntimeError;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_number` is never used
[INFO] [stdout]   --> src/lexer/numbers.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn parse_number(input: &str) -> ParseResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_number_prefix` is never used
[INFO] [stdout]    --> src/lexer/numbers.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn has_number_prefix(s: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_number_literal` is never used
[INFO] [stdout]    --> src/lexer/numbers.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub fn is_number_literal(s: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_string` is never used
[INFO] [stdout]    --> src/lexer/string.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn parse_string(input: &str) -> ParseResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unquote` is never used
[INFO] [stdout]    --> src/lexer/string.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn unquote(s: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_escapes` is never used
[INFO] [stdout]    --> src/lexer/string.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn has_escapes(s: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Span` is never used
[INFO] [stdout]    --> src/lexer/token.rs:246:10
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub type Span = std::ops::Range<usize>;
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek_token`, `consume`, and `matches` are never used
[INFO] [stdout]    --> src/parser/mod.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn peek_token(&self) -> &Token {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn consume(&mut self, expected: TokenKind) -> Result<(), ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn matches(&mut self, expected: TokenKind) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Builtins` is never constructed
[INFO] [stdout]   --> src/eval/builtins.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Builtins;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `register` is never used
[INFO] [stdout]   --> src/eval/builtins.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Builtins {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn register(_env: &mut Environment) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EvalError` is never used
[INFO] [stdout]   --> src/eval/error.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub type EvalError = RuntimeError;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_number_prefix` is never used
[INFO] [stdout]    --> src/lexer/numbers.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn has_number_prefix(s: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_string` is never used
[INFO] [stdout]    --> src/lexer/string.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn parse_string(input: &str) -> ParseResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Span` is never used
[INFO] [stdout]    --> src/lexer/token.rs:246:10
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub type Span = std::ops::Range<usize>;
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek_token`, `consume`, and `matches` are never used
[INFO] [stdout]    --> src/parser/mod.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn peek_token(&self) -> &Token {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn consume(&mut self, expected: TokenKind) -> Result<(), ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn matches(&mut self, expected: TokenKind) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/stdlib/mod.rs:370:9
[INFO] [stdout]     |
[INFO] [stdout] 370 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Builtins` is never constructed
[INFO] [stdout]   --> src/eval/builtins.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Builtins;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `register` is never used
[INFO] [stdout]   --> src/eval/builtins.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Builtins {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn register(_env: &mut Environment) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_all` and `has_parent` are never used
[INFO] [stdout]    --> src/eval/environment.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Environment {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn get_all(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn has_parent(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ParseError` and `InvalidPointer` are never constructed
[INFO] [stdout]   --> src/eval/error.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum RuntimeError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     ParseError(String),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     InvalidPointer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RuntimeError` 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: type alias `EvalError` is never used
[INFO] [stdout]   --> src/eval/error.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub type EvalError = RuntimeError;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseResult` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub type ParseResult = Result<TokenKind, String>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source` is never read
[INFO] [stdout]   --> src/lexer/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Lexer {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 33 |     tokens: Vec<Token>,
[INFO] [stdout] 34 |     source: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Lexer` 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: method `source` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Lexer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn source(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_number` is never used
[INFO] [stdout]   --> src/lexer/numbers.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn parse_number(input: &str) -> ParseResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_number_prefix` is never used
[INFO] [stdout]    --> src/lexer/numbers.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn has_number_prefix(s: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_number_literal` is never used
[INFO] [stdout]    --> src/lexer/numbers.rs:115:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub fn is_number_literal(s: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_string` is never used
[INFO] [stdout]    --> src/lexer/string.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn parse_string(input: &str) -> ParseResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unquote` is never used
[INFO] [stdout]    --> src/lexer/string.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn unquote(s: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_escapes` is never used
[INFO] [stdout]    --> src/lexer/string.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn has_escapes(s: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]    --> src/lexer/token.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub struct Token {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 242 |     pub kind: TokenKind,
[INFO] [stdout] 243 |     pub span: std::ops::Range<usize>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Token` 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: type alias `Span` is never used
[INFO] [stdout]    --> src/lexer/token.rs:246:10
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub type Span = std::ops::Range<usize>;
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_binary_op` and `precedence` are never used
[INFO] [stdout]    --> src/lexer/token.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 254 | impl Token {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 255 |     /// Check if the token is a binary operator
[INFO] [stdout] 256 |     pub fn is_binary_op(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn precedence(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ParseError {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 26 |     pub message: String,
[INFO] [stdout] 27 |     pub span: Option<std::ops::Range<usize>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek_token`, `consume`, and `matches` are never used
[INFO] [stdout]    --> src/parser/mod.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn peek_token(&self) -> &Token {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn consume(&mut self, expected: TokenKind) -> Result<(), ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn matches(&mut self, expected: TokenKind) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sigil` and `mutable` are never read
[INFO] [stdout]   --> src/parser/ast.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Let {
[INFO] [stdout]    |     --- fields in this variant
[INFO] [stdout] 25 |         name: String,
[INFO] [stdout] 26 |         sigil: VarType,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 27 |         expr: Option<Box<Expr>>,
[INFO] [stdout] 28 |         mutable: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` 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: field `sigil` is never read
[INFO] [stdout]   --> src/parser/ast.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Const {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] 35 |         name: String,
[INFO] [stdout] 36 |         sigil: VarType,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` 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: fields `sigil`, `type_hint`, and `default` are never read
[INFO] [stdout]    --> src/parser/ast.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct Param {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 114 |     pub name: String,
[INFO] [stdout] 115 |     pub sigil: VarType,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 116 |     pub type_hint: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 117 |     pub default: Option<Expr>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Param` 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: field `is_static` is never read
[INFO] [stdout]    --> src/parser/ast.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct Method {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub is_static: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Method` 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: field `sigil` is never read
[INFO] [stdout]    --> src/parser/ast.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     Assign {
[INFO] [stdout]     |     ------ field in this variant
[INFO] [stdout] 142 |         name: String,
[INFO] [stdout] 143 |         sigil: Option<VarType>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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: field `named_args` is never read
[INFO] [stdout]    --> src/parser/ast.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |     Call {
[INFO] [stdout]     |     ---- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 191 |         named_args: Vec<(String, Expr)>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub enum Expr {
[INFO] [stdout]     |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 160 |     Match {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     Slice {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     HashAccess {
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     Method {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     Concat {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     Repeat {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     Spaceship {
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     FatComma {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     Where {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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: method `as_str` is never used
[INFO] [stdout]    --> src/parser/ast.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 251 | impl Expr {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 252 |     pub fn as_str(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Ref` and `Deref` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:297:5
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub enum UnaryOp {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 297 |     Ref,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 298 |     Deref,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UnaryOp` 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 `register` is never used
[INFO] [stdout]   --> src/stdlib/string.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn register(env: &mut Environment) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_log_debug` is never used
[INFO] [stdout]   --> src/utils/diagnostics.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn should_log_debug() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_log_info` is never used
[INFO] [stdout]   --> src/utils/diagnostics.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn should_log_info() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Error`, `Warning`, `Info`, and `Hint` are never constructed
[INFO] [stdout]   --> src/utils/diagnostics.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub enum Severity {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 75 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 76 |     Warning,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 77 |     Info,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 78 |     Hint,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Severity` 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: method `color` is never used
[INFO] [stdout]   --> src/utils/diagnostics.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | impl Severity {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 83 |     pub fn color(&self) -> colored::Color {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start`, `end`, `line`, and `column` are never read
[INFO] [stdout]    --> src/utils/diagnostics.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Span {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 106 |     pub start: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 107 |     pub end: usize,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 108 |     pub line: usize,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 109 |     pub column: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Span` 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: fields `span` and `hints` are never read
[INFO] [stdout]    --> src/utils/diagnostics.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct Diagnostic {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub span: Option<Span>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 117 |     pub hints: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Diagnostic` 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: multiple associated items are never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Diagnostic {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn error(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn warning(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn info(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn hint(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn debug(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn with_span(mut self, start: usize, end: usize, line: usize, column: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn with_hint(mut self, hint: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn with_hints(mut self, hints: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn print(&self, source: Option<&str>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:254:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | impl DiagnosticsCollector {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn error(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn warning(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn info(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn hint(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn debug(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn has_errors(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn print_all(&self, source: Option<&str>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_error` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:331:8
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub fn log_error(message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_warning` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:335:8
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub fn log_warning(message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_info` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:339:8
[INFO] [stdout]     |
[INFO] [stdout] 339 | pub fn log_info(message: &str) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_hint` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:343:8
[INFO] [stdout]     |
[INFO] [stdout] 343 | pub fn log_hint(message: &str) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_diagnostics` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:353:8
[INFO] [stdout]     |
[INFO] [stdout] 353 | pub fn print_diagnostics(source: Option<&str>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_errors` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:359:8
[INFO] [stdout]     |
[INFO] [stdout] 359 | pub fn has_errors() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_diagnostics` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:367:8
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub fn clear_diagnostics() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeError` is never used
[INFO] [stdout]   --> src/utils/error.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum RuntimeError {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EvalError` is never used
[INFO] [stdout]   --> src/utils/error.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub type EvalError = RuntimeError;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_int`, `to_float`, and `to_bool` are never used
[INFO] [stdout]   --> src/value/conversion.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Value {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 20 |     pub fn to_int(&self) -> Option<i64> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn to_float(&self) -> Option<f64> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn to_bool(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_i64` and `to_bool` are never used
[INFO] [stdout]   --> src/value/ord.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl CmpResult {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 39 |     pub fn to_i64(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn to_bool(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `spaceship` is never used
[INFO] [stdout]   --> src/value/ord.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn spaceship(&self, other: &Value) -> Result<i64, RuntimeError> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `env` is never read
[INFO] [stdout]   --> src/value/types.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     Class {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 46 |         env: Rc<RefCell<crate::eval::Environment>>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` 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: struct `Builtins` is never constructed
[INFO] [stdout]   --> src/eval/builtins.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Builtins;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `register` is never used
[INFO] [stdout]   --> src/eval/builtins.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Builtins {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn register(_env: &mut Environment) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_all` and `has_parent` are never used
[INFO] [stdout]    --> src/eval/environment.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Environment {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn get_all(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn has_parent(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ParseError` and `InvalidPointer` are never constructed
[INFO] [stdout]   --> src/eval/error.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum RuntimeError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     ParseError(String),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     InvalidPointer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RuntimeError` 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: type alias `EvalError` is never used
[INFO] [stdout]   --> src/eval/error.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub type EvalError = RuntimeError;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source` is never read
[INFO] [stdout]   --> src/lexer/mod.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct Lexer {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 33 |     tokens: Vec<Token>,
[INFO] [stdout] 34 |     source: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Lexer` 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: method `source` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Lexer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn source(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_number_prefix` is never used
[INFO] [stdout]    --> src/lexer/numbers.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn has_number_prefix(s: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_string` is never used
[INFO] [stdout]    --> src/lexer/string.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn parse_string(input: &str) -> ParseResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]    --> src/lexer/token.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub struct Token {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 242 |     pub kind: TokenKind,
[INFO] [stdout] 243 |     pub span: std::ops::Range<usize>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Token` 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: type alias `Span` is never used
[INFO] [stdout]    --> src/lexer/token.rs:246:10
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub type Span = std::ops::Range<usize>;
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_binary_op` and `precedence` are never used
[INFO] [stdout]    --> src/lexer/token.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 254 | impl Token {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 255 |     /// Check if the token is a binary operator
[INFO] [stdout] 256 |     pub fn is_binary_op(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn precedence(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ParseError {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 26 |     pub message: String,
[INFO] [stdout] 27 |     pub span: Option<std::ops::Range<usize>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek_token`, `consume`, and `matches` are never used
[INFO] [stdout]    --> src/parser/mod.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl Parser {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn peek_token(&self) -> &Token {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn consume(&mut self, expected: TokenKind) -> Result<(), ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn matches(&mut self, expected: TokenKind) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sigil` and `mutable` are never read
[INFO] [stdout]   --> src/parser/ast.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Let {
[INFO] [stdout]    |     --- fields in this variant
[INFO] [stdout] 25 |         name: String,
[INFO] [stdout] 26 |         sigil: VarType,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 27 |         expr: Option<Box<Expr>>,
[INFO] [stdout] 28 |         mutable: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` 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: field `sigil` is never read
[INFO] [stdout]   --> src/parser/ast.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Const {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] 35 |         name: String,
[INFO] [stdout] 36 |         sigil: VarType,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Stmt` 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: fields `sigil`, `type_hint`, and `default` are never read
[INFO] [stdout]    --> src/parser/ast.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct Param {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 114 |     pub name: String,
[INFO] [stdout] 115 |     pub sigil: VarType,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 116 |     pub type_hint: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 117 |     pub default: Option<Expr>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Param` 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: field `is_static` is never read
[INFO] [stdout]    --> src/parser/ast.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct Method {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub is_static: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Method` 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: field `sigil` is never read
[INFO] [stdout]    --> src/parser/ast.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     Assign {
[INFO] [stdout]     |     ------ field in this variant
[INFO] [stdout] 142 |         name: String,
[INFO] [stdout] 143 |         sigil: Option<VarType>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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: field `named_args` is never read
[INFO] [stdout]    --> src/parser/ast.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |     Call {
[INFO] [stdout]     |     ---- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 191 |         named_args: Vec<(String, Expr)>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub enum Expr {
[INFO] [stdout]     |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 160 |     Match {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     Slice {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     HashAccess {
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     Method {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     Concat {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     Repeat {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     Spaceship {
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     FatComma {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     Where {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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: method `as_str` is never used
[INFO] [stdout]    --> src/parser/ast.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 251 | impl Expr {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 252 |     pub fn as_str(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Ref` and `Deref` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:297:5
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub enum UnaryOp {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 297 |     Ref,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 298 |     Deref,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UnaryOp` 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 `register` is never used
[INFO] [stdout]   --> src/stdlib/string.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn register(env: &mut Environment) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_log_debug` is never used
[INFO] [stdout]   --> src/utils/diagnostics.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn should_log_debug() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_log_info` is never used
[INFO] [stdout]   --> src/utils/diagnostics.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn should_log_info() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Error`, `Warning`, `Info`, and `Hint` are never constructed
[INFO] [stdout]   --> src/utils/diagnostics.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub enum Severity {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 75 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 76 |     Warning,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 77 |     Info,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 78 |     Hint,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Severity` 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: method `color` is never used
[INFO] [stdout]   --> src/utils/diagnostics.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | impl Severity {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 83 |     pub fn color(&self) -> colored::Color {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start`, `end`, `line`, and `column` are never read
[INFO] [stdout]    --> src/utils/diagnostics.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Span {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 106 |     pub start: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 107 |     pub end: usize,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 108 |     pub line: usize,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 109 |     pub column: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Span` 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: fields `span` and `hints` are never read
[INFO] [stdout]    --> src/utils/diagnostics.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct Diagnostic {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub span: Option<Span>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 117 |     pub hints: Vec<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Diagnostic` 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: multiple associated items are never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Diagnostic {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn error(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn warning(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn info(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn hint(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn debug(message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn with_span(mut self, start: usize, end: usize, line: usize, column: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn with_hint(mut self, hint: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn with_hints(mut self, hints: Vec<&str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn print(&self, source: Option<&str>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:254:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | impl DiagnosticsCollector {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn error(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn warning(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn info(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn hint(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn debug(&mut self, message: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn has_errors(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn print_all(&self, source: Option<&str>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_error` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:331:8
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub fn log_error(message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_warning` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:335:8
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub fn log_warning(message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_info` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:339:8
[INFO] [stdout]     |
[INFO] [stdout] 339 | pub fn log_info(message: &str) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_hint` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:343:8
[INFO] [stdout]     |
[INFO] [stdout] 343 | pub fn log_hint(message: &str) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_diagnostics` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:353:8
[INFO] [stdout]     |
[INFO] [stdout] 353 | pub fn print_diagnostics(source: Option<&str>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_errors` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:359:8
[INFO] [stdout]     |
[INFO] [stdout] 359 | pub fn has_errors() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_diagnostics` is never used
[INFO] [stdout]    --> src/utils/diagnostics.rs:367:8
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub fn clear_diagnostics() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeError` is never used
[INFO] [stdout]   --> src/utils/error.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum RuntimeError {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EvalError` is never used
[INFO] [stdout]   --> src/utils/error.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub type EvalError = RuntimeError;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_int`, `to_float`, and `to_bool` are never used
[INFO] [stdout]   --> src/value/conversion.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Value {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 20 |     pub fn to_int(&self) -> Option<i64> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn to_float(&self) -> Option<f64> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn to_bool(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_i64` and `to_bool` are never used
[INFO] [stdout]   --> src/value/ord.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl CmpResult {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 39 |     pub fn to_i64(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn to_bool(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `spaceship` is never used
[INFO] [stdout]   --> src/value/ord.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn spaceship(&self, other: &Value) -> Result<i64, RuntimeError> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `env` is never read
[INFO] [stdout]   --> src/value/types.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     Class {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 46 |         env: Rc<RefCell<crate::eval::Environment>>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `anyhow`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | anyhow = "1.0"
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `anyhow`
[INFO] [stderr] warning: unused dependency `env_logger`
[INFO] [stderr]   --> Cargo.toml:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | env_logger = "0.11"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `env_logger`
[INFO] [stderr] warning: unused dependency `stacksafe`
[INFO] [stderr]   --> Cargo.toml:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | stacksafe = "1.0"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `stacksafe`
[INFO] [stderr] warning: `crisp` (manifest) generated 3 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.81s
[INFO] running `Command { std: "docker" "inspect" "acce1ed08c9a04cacec8e9a9293811583163760935e18309df4e827a1425f014", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "acce1ed08c9a04cacec8e9a9293811583163760935e18309df4e827a1425f014", kill_on_drop: false }`
[INFO] [stdout] acce1ed08c9a04cacec8e9a9293811583163760935e18309df4e827a1425f014
