[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] testing Peter-L-SVK/CRISP-lang against 1.99.0-beta.8 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPeter-L-SVK%2FCRISP-lang" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-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-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Peter-L-SVK/CRISP-lang on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cookie_store v0.22.1
[INFO] [stderr]   Downloaded utf8-zero v0.8.1
[INFO] [stderr]   Downloaded ureq-proto v0.6.1
[INFO] [stderr]   Downloaded endian-type v0.2.0
[INFO] [stderr]   Downloaded stacksafe v1.0.3
[INFO] [stderr]   Downloaded stacksafe-macro v1.0.3
[INFO] [stderr]   Downloaded sha1 v0.11.0
[INFO] [stderr]   Downloaded md5 v0.8.1
[INFO] [stderr]   Downloaded psm v0.1.31
[INFO] [stderr]   Downloaded logos v0.16.1
[INFO] [stderr]   Downloaded logos-derive v0.16.1
[INFO] [stderr]   Downloaded stacker v0.1.24
[INFO] [stderr]   Downloaded colored v3.1.1
[INFO] [stderr]   Downloaded cookie v0.18.2
[INFO] [stderr]   Downloaded ureq v3.4.0
[INFO] [stderr]   Downloaded time-macros v0.2.32
[INFO] [stderr]   Downloaded logos-codegen v0.16.1
[INFO] [stderr]   Downloaded clap v4.6.5
[INFO] [stderr]   Downloaded cc v1.4.0
[INFO] [stderr]   Downloaded ar_archive_writer v0.5.3
[INFO] [stderr]   Downloaded rand v0.10.2
[INFO] [stderr]   Downloaded rustyline v18.0.1
[INFO] [stderr]   Downloaded portable-atomic v1.14.0
[INFO] [stderr]   Downloaded clap_builder v4.6.5
[INFO] [stderr]   Downloaded radix_trie v0.3.0
[INFO] [stderr]   Downloaded time v0.3.55
[INFO] [stderr]   Downloaded nix v0.31.3
[INFO] [stderr]   Downloaded object v0.39.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124
[INFO] running `Command { std: "docker" "start" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124", 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" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling object v0.39.1
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling cfg_aliases v0.2.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]    Compiling cc v1.4.0
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling endian-type v0.2.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling jiff-core v0.1.0
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling clap_builder v4.6.5
[INFO] [stderr]    Compiling hybrid-array v0.4.14
[INFO] [stderr]    Compiling radix_trie v0.3.0
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling chacha20 v0.10.1
[INFO] [stderr]    Compiling ureq-proto v0.6.1
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling stacker v0.1.24
[INFO] [stderr]    Compiling crypto-common v0.2.2
[INFO] [stderr]    Compiling block-buffer v0.12.1
[INFO] [stderr]    Compiling jiff v0.2.35
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling md5 v0.8.1
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling sha1 v0.11.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling env_filter v2.0.0
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling stacksafe-macro v1.0.3
[INFO] [stderr]    Compiling ar_archive_writer v0.5.3
[INFO] [stderr]    Compiling rustyline v18.0.1
[INFO] [stderr]    Compiling env_logger v0.11.11
[INFO] [stderr]    Compiling psm v0.1.31
[INFO] [stderr]    Compiling clap v4.6.5
[INFO] [stderr]    Compiling stacksafe v1.0.3
[INFO] [stderr]    Compiling logos-codegen v0.16.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling logos-derive v0.16.1
[INFO] [stderr]    Compiling logos v0.16.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling ureq v3.4.0
[INFO] [stderr]    Compiling crisp v0.1.7 (/opt/rustwide/workdir)
[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: 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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s
[INFO] running `Command { std: "docker" "inspect" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling assert_matches v1.5.0
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling rustyline v18.0.1
[INFO] [stderr]    Compiling 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: 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]     Finished `test` profile [unoptimized + debuginfo] target(s) in 15.81s
[INFO] running `Command { std: "docker" "inspect" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: struct `Builtins` is never constructed
[INFO] [stderr]   --> src/eval/builtins.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct Builtins;
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `register` is never used
[INFO] [stderr]   --> src/eval/builtins.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl Builtins {
[INFO] [stderr]    | ------------- associated function in this implementation
[INFO] [stderr] 24 |     pub fn register(_env: &mut Environment) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `EvalError` is never used
[INFO] [stderr]   --> src/eval/error.rs:84:10
[INFO] [stderr]    |
[INFO] [stderr] 84 | pub type EvalError = RuntimeError;
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_number` is never used
[INFO] [stderr]   --> src/lexer/numbers.rs:45:8
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub fn parse_number(input: &str) -> ParseResult {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `has_number_prefix` is never used
[INFO] [stderr]    --> src/lexer/numbers.rs:105:8
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub fn has_number_prefix(s: &str) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_number_literal` is never used
[INFO] [stderr]    --> src/lexer/numbers.rs:115:8
[INFO] [stderr]     |
[INFO] [stderr] 115 | pub fn is_number_literal(s: &str) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_string` is never used
[INFO] [stderr]    --> src/lexer/string.rs:109:8
[INFO] [stderr]     |
[INFO] [stderr] 109 | pub fn parse_string(input: &str) -> ParseResult {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unquote` is never used
[INFO] [stderr]    --> src/lexer/string.rs:126:8
[INFO] [stderr]     |
[INFO] [stderr] 126 | pub fn unquote(s: &str) -> &str {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `has_escapes` is never used
[INFO] [stderr]    --> src/lexer/string.rs:137:8
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub fn has_escapes(s: &str) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Span` is never used
[INFO] [stderr]    --> src/lexer/token.rs:246:10
[INFO] [stderr]     |
[INFO] [stderr] 246 | pub type Span = std::ops::Range<usize>;
[INFO] [stderr]     |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `peek_token`, `consume`, and `matches` are never used
[INFO] [stderr]    --> src/parser/mod.rs:68:8
[INFO] [stderr]     |
[INFO] [stderr]  43 | impl Parser {
[INFO] [stderr]     | ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  68 |     fn peek_token(&self) -> &Token {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  89 |     fn consume(&mut self, expected: TokenKind) -> Result<(), ParseError> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 108 |     fn matches(&mut self, expected: TokenKind) -> bool {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `crisp` (lib) generated 11 warnings
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> src/stdlib/mod.rs:370:9
[INFO] [stderr]     |
[INFO] [stderr] 370 |     use super::*;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_all` and `has_parent` are never used
[INFO] [stderr]    --> src/eval/environment.rs:96:12
[INFO] [stderr]     |
[INFO] [stderr]  34 | impl Environment {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  96 |     pub fn get_all(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub fn has_parent(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `ParseError` and `InvalidPointer` are never constructed
[INFO] [stderr]   --> src/eval/error.rs:41:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub enum RuntimeError {
[INFO] [stderr]    |          ------------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 41 |     ParseError(String),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     InvalidPointer,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RuntimeError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `source` is never read
[INFO] [stderr]   --> src/lexer/mod.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub struct Lexer {
[INFO] [stderr]    |            ----- field in this struct
[INFO] [stderr] 33 |     tokens: Vec<Token>,
[INFO] [stderr] 34 |     source: String,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Lexer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `source` is never used
[INFO] [stderr]    --> src/lexer/mod.rs:108:12
[INFO] [stderr]     |
[INFO] [stderr]  37 | impl Lexer {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 108 |     pub fn source(&self) -> &str {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `span` is never read
[INFO] [stderr]    --> src/lexer/token.rs:243:9
[INFO] [stderr]     |
[INFO] [stderr] 241 | pub struct Token {
[INFO] [stderr]     |            ----- field in this struct
[INFO] [stderr] 242 |     pub kind: TokenKind,
[INFO] [stderr] 243 |     pub span: std::ops::Range<usize>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_binary_op` and `precedence` are never used
[INFO] [stderr]    --> src/lexer/token.rs:256:12
[INFO] [stderr]     |
[INFO] [stderr] 254 | impl Token {
[INFO] [stderr]     | ---------- methods in this implementation
[INFO] [stderr] 255 |     /// Check if the token is a binary operator
[INFO] [stderr] 256 |     pub fn is_binary_op(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 282 |     pub fn precedence(&self) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `span` is never read
[INFO] [stderr]   --> src/parser/mod.rs:27:9
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct ParseError {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] 26 |     pub message: String,
[INFO] [stderr] 27 |     pub span: Option<std::ops::Range<usize>>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ParseError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `sigil` and `mutable` are never read
[INFO] [stderr]   --> src/parser/ast.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |     Let {
[INFO] [stderr]    |     --- fields in this variant
[INFO] [stderr] 25 |         name: String,
[INFO] [stderr] 26 |         sigil: VarType,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 27 |         expr: Option<Box<Expr>>,
[INFO] [stderr] 28 |         mutable: bool,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `sigil` is never read
[INFO] [stderr]   --> src/parser/ast.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |     Const {
[INFO] [stderr]    |     ----- field in this variant
[INFO] [stderr] 35 |         name: String,
[INFO] [stderr] 36 |         sigil: VarType,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `sigil`, `type_hint`, and `default` are never read
[INFO] [stderr]    --> src/parser/ast.rs:115:9
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub struct Param {
[INFO] [stderr]     |            ----- fields in this struct
[INFO] [stderr] 114 |     pub name: String,
[INFO] [stderr] 115 |     pub sigil: VarType,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 116 |     pub type_hint: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 117 |     pub default: Option<Expr>,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Param` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `is_static` is never read
[INFO] [stderr]    --> src/parser/ast.rs:125:9
[INFO] [stderr]     |
[INFO] [stderr] 121 | pub struct Method {
[INFO] [stderr]     |            ------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub is_static: bool,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Method` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `sigil` is never read
[INFO] [stderr]    --> src/parser/ast.rs:143:9
[INFO] [stderr]     |
[INFO] [stderr] 141 |     Assign {
[INFO] [stderr]     |     ------ field in this variant
[INFO] [stderr] 142 |         name: String,
[INFO] [stderr] 143 |         sigil: Option<VarType>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `named_args` is never read
[INFO] [stderr]    --> src/parser/ast.rs:191:9
[INFO] [stderr]     |
[INFO] [stderr] 188 |     Call {
[INFO] [stderr]     |     ---- field in this variant
[INFO] [stderr] ...
[INFO] [stderr] 191 |         named_args: Vec<(String, Expr)>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]    --> src/parser/ast.rs:160:5
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub enum Expr {
[INFO] [stderr]     |          ---- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 160 |     Match {
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     Slice {
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 182 |     HashAccess {
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 193 |     Method {
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 207 |     Concat {
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 211 |     Repeat {
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 215 |     Spaceship {
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 219 |     FatComma {
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 223 |     Where {
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Expr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_str` is never used
[INFO] [stderr]    --> src/parser/ast.rs:252:12
[INFO] [stderr]     |
[INFO] [stderr] 251 | impl Expr {
[INFO] [stderr]     | --------- method in this implementation
[INFO] [stderr] 252 |     pub fn as_str(&self) -> String {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Ref` and `Deref` are never constructed
[INFO] [stderr]    --> src/parser/ast.rs:297:5
[INFO] [stderr]     |
[INFO] [stderr] 294 | pub enum UnaryOp {
[INFO] [stderr]     |          ------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 297 |     Ref,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 298 |     Deref,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `UnaryOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `register` is never used
[INFO] [stderr]   --> src/stdlib/string.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub fn register(env: &mut Environment) {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `should_log_debug` is never used
[INFO] [stderr]   --> src/utils/diagnostics.rs:65:8
[INFO] [stderr]    |
[INFO] [stderr] 65 | pub fn should_log_debug() -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `should_log_info` is never used
[INFO] [stderr]   --> src/utils/diagnostics.rs:69:8
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub fn should_log_info() -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Error`, `Warning`, `Info`, and `Hint` are never constructed
[INFO] [stderr]   --> src/utils/diagnostics.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub enum Severity {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr] 75 |     Error,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 76 |     Warning,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 77 |     Info,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 78 |     Hint,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Severity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `color` is never used
[INFO] [stderr]   --> src/utils/diagnostics.rs:83:12
[INFO] [stderr]    |
[INFO] [stderr] 82 | impl Severity {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] 83 |     pub fn color(&self) -> colored::Color {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `start`, `end`, `line`, and `column` are never read
[INFO] [stderr]    --> src/utils/diagnostics.rs:106:9
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub struct Span {
[INFO] [stderr]     |            ---- fields in this struct
[INFO] [stderr] 106 |     pub start: usize,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 107 |     pub end: usize,
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 108 |     pub line: usize,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] 109 |     pub column: usize,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Span` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `span` and `hints` are never read
[INFO] [stderr]    --> src/utils/diagnostics.rs:116:9
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub struct Diagnostic {
[INFO] [stderr]     |            ---------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 116 |     pub span: Option<Span>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] 117 |     pub hints: Vec<String>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Diagnostic` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/utils/diagnostics.rs:130:12
[INFO] [stderr]     |
[INFO] [stderr] 120 | impl Diagnostic {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 130 |     pub fn error(message: &str) -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 134 |     pub fn warning(message: &str) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 138 |     pub fn info(message: &str) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 142 |     pub fn hint(message: &str) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 146 |     pub fn debug(message: &str) -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub fn with_span(mut self, start: usize, end: usize, line: usize, column: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 160 |     pub fn with_hint(mut self, hint: &str) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 165 |     pub fn with_hints(mut self, hints: Vec<&str>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn print(&self, source: Option<&str>) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/utils/diagnostics.rs:254:12
[INFO] [stderr]     |
[INFO] [stderr] 233 | impl DiagnosticsCollector {
[INFO] [stderr]     | ------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 254 |     pub fn error(&mut self, message: &str) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 258 |     pub fn warning(&mut self, message: &str) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 262 |     pub fn info(&mut self, message: &str) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 266 |     pub fn hint(&mut self, message: &str) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 270 |     pub fn debug(&mut self, message: &str) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 274 |     pub fn has_errors(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 280 |     pub fn print_all(&self, source: Option<&str>) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 300 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_error` is never used
[INFO] [stderr]    --> src/utils/diagnostics.rs:331:8
[INFO] [stderr]     |
[INFO] [stderr] 331 | pub fn log_error(message: &str) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_warning` is never used
[INFO] [stderr]    --> src/utils/diagnostics.rs:335:8
[INFO] [stderr]     |
[INFO] [stderr] 335 | pub fn log_warning(message: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_info` is never used
[INFO] [stderr]    --> src/utils/diagnostics.rs:339:8
[INFO] [stderr]     |
[INFO] [stderr] 339 | pub fn log_info(message: &str) {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_hint` is never used
[INFO] [stderr]    --> src/utils/diagnostics.rs:343:8
[INFO] [stderr]     |
[INFO] [stderr] 343 | pub fn log_hint(message: &str) {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_diagnostics` is never used
[INFO] [stderr]    --> src/utils/diagnostics.rs:353:8
[INFO] [stderr]     |
[INFO] [stderr] 353 | pub fn print_diagnostics(source: Option<&str>) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `has_errors` is never used
[INFO] [stderr]    --> src/utils/diagnostics.rs:359:8
[INFO] [stderr]     |
[INFO] [stderr] 359 | pub fn has_errors() -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clear_diagnostics` is never used
[INFO] [stderr]    --> src/utils/diagnostics.rs:367:8
[INFO] [stderr]     |
[INFO] [stderr] 367 | pub fn clear_diagnostics() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `RuntimeError` is never used
[INFO] [stderr]   --> src/utils/error.rs:22:10
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub enum RuntimeError {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `EvalError` is never used
[INFO] [stderr]   --> src/utils/error.rs:66:10
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub type EvalError = RuntimeError;
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `to_int`, `to_float`, and `to_bool` are never used
[INFO] [stderr]   --> src/value/conversion.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl Value {
[INFO] [stderr]    | ---------- methods in this implementation
[INFO] [stderr] 20 |     pub fn to_int(&self) -> Option<i64> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn to_float(&self) -> Option<f64> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub fn to_bool(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `to_i64` and `to_bool` are never used
[INFO] [stderr]   --> src/value/ord.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 38 | impl CmpResult {
[INFO] [stderr]    | -------------- methods in this implementation
[INFO] [stderr] 39 |     pub fn to_i64(&self) -> i64 {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub fn to_bool(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `spaceship` is never used
[INFO] [stderr]   --> src/value/ord.rs:89:12
[INFO] [stderr]    |
[INFO] [stderr] 52 | impl Value {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 89 |     pub fn spaceship(&self, other: &Value) -> Result<i64, RuntimeError> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `env` is never read
[INFO] [stderr]   --> src/value/types.rs:46:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     Class {
[INFO] [stderr]    |     ----- field in this variant
[INFO] [stderr] ...
[INFO] [stderr] 46 |         env: Rc<RefCell<crate::eval::Environment>>,
[INFO] [stderr]    |         ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `crisp` (lib test) generated 8 warnings (7 duplicates) (run `cargo fix --lib -p crisp --tests` to apply 1 suggestion)
[INFO] [stderr] warning: `crisp` (bin "crisp" test) generated 46 warnings (8 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/crisp-5b568478a2b34457)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test lexer::numbers::tests::test_parse_decimal ... ok
[INFO] [stdout] test eval::interpreter::tests::evaluates_string_concatenation ... ok
[INFO] [stdout] test eval::interpreter::tests::evaluates_integer_arithmetic ... ok
[INFO] [stdout] test lexer::numbers::tests::test_is_number_literal ... ok
[INFO] [stdout] test lexer::numbers::tests::test_parse_float ... ok
[INFO] [stdout] test eval::interpreter::tests::evaluates_variable_assignment ... ok
[INFO] [stdout] test lexer::numbers::tests::test_parse_octal ... ok
[INFO] [stdout] test lexer::numbers::tests::test_parse_hex ... ok
[INFO] [stdout] test lexer::string::tests::test_has_escapes ... ok
[INFO] [stdout] test lexer::string::tests::test_process_escapes ... ok
[INFO] [stdout] test lexer::string::tests::test_unquote ... ok
[INFO] [stdout] test lexer::tests::test_string_with_tab ... ok
[INFO] [stdout] test lexer::tests::test_number_with_underscores ... ok
[INFO] [stdout] test parser::tests::parses_arithmetic_expression ... ok
[INFO] [stdout] test parser::tests::parses_let_statement ... ok
[INFO] [stdout] test lexer::tests::test_string_with_backslash ... ok
[INFO] [stdout] test lexer::numbers::tests::test_parse_binary ... ok
[INFO] [stdout] test lexer::tests::test_number_literals ... ok
[INFO] [stdout] test lexer::tests::test_string_with_escapes ... ok
[INFO] [stdout] test stdlib::tests::len_works_on_strings_and_arrays ... ok
[INFO] [stdout] test lexer::tests::test_division_not_confused_with_regex ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/crisp-1f5801dfc9fce92a)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test lexer::string::tests::test_unquote ... ok
[INFO] [stdout] test lexer::string::tests::test_has_escapes ... ok
[INFO] [stdout] test eval::interpreter::tests::evaluates_variable_assignment ... ok
[INFO] [stdout] test lexer::tests::test_number_with_underscores ... ok
[INFO] [stdout] test lexer::tests::test_number_literals ... ok
[INFO] [stdout] test lexer::tests::test_division_not_confused_with_regex ... ok
[INFO] [stdout] test lexer::numbers::tests::test_is_number_literal ... ok
[INFO] [stdout] test lexer::numbers::tests::test_parse_binary ... ok
[INFO] [stdout] test lexer::numbers::tests::test_parse_octal ... ok
[INFO] [stdout] test lexer::numbers::tests::test_parse_hex ... ok
[INFO] [stdout] test lexer::numbers::tests::test_parse_float ... ok
[INFO] [stdout] test lexer::tests::test_string_with_tab ... ok
[INFO] [stdout] test eval::interpreter::tests::evaluates_integer_arithmetic ... ok
[INFO] [stdout] test lexer::numbers::tests::test_parse_decimal ... ok
[INFO] [stdout] test parser::tests::parses_arithmetic_expression ... ok
[INFO] [stdout] test lexer::tests::test_string_with_backslash ... ok
[INFO] [stdout] test lexer::tests::test_string_with_escapes ... ok
[INFO] [stdout] test parser::tests::parses_let_statement ... ok
[INFO] [stdout] test stdlib::tests::len_works_on_strings_and_arrays ... ok
[INFO] [stderr]    Doc-tests crisp
[INFO] [stdout] test lexer::string::tests::test_process_escapes ... ok
[INFO] [stdout] test eval::interpreter::tests::evaluates_string_concatenation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/lexer/string.rs - lexer::string::unquote (line 119) ... FAILED
[INFO] [stdout] test src/lexer/numbers.rs - lexer::numbers::parse_number (line 28) ... FAILED
[INFO] [stdout] test src/lexer/string.rs - lexer::string::process_escapes (line 28) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lexer/string.rs - lexer::string::unquote (line 119) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `crisp::lexer::unquote`
[INFO] [stdout]    --> src/lexer/string.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | use crisp::lexer::unquote;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^-------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   no `unquote` in `lexer`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/numbers.rs - lexer::numbers::parse_number (line 28) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `crisp::lexer::parse_number`
[INFO] [stdout]   --> src/lexer/numbers.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use crisp::lexer::parse_number;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^------------
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   no `parse_number` in `lexer`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lexer/string.rs - lexer::string::process_escapes (line 28) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `crisp::lexer::process_escapes`
[INFO] [stdout]   --> src/lexer/string.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use crisp::lexer::process_escapes;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^---------------
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   no `process_escapes` in `lexer`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lexer/numbers.rs - lexer::numbers::parse_number (line 28)
[INFO] [stdout]     src/lexer/string.rs - lexer::string::process_escapes (line 28)
[INFO] [stdout]     src/lexer/string.rs - lexer::string::unquote (line 119)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.37s; merged doctests compilation took 0.13s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124", kill_on_drop: false }`
[INFO] [stdout] f6d2f6ec74677678b35887b532b56ebd2fea78e0bdfc2b8bac85bb27597e1124
