[INFO] cloning repository https://github.com/riffifi/ject
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/riffifi/ject" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Friffifi%2Fject", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Friffifi%2Fject'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3a31319bb3f06c1574a1141cb6cf9a90d9186d76
[INFO] checking riffifi/ject against try#50f413885985a8b0a0b6ca0766a0aedd45304953 for pr-155657
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Friffifi%2Fject" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/riffifi/ject
[INFO] finished tweaking git repo https://github.com/riffifi/ject
[INFO] tweaked toml for git repo https://github.com/riffifi/ject written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/riffifi/ject on toolchain 50f413885985a8b0a0b6ca0766a0aedd45304953
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/riffifi/ject 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" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fd-lock v3.0.13
[INFO] [stderr]   Downloaded endian-type v0.1.2
[INFO] [stderr]   Downloaded clap v4.5.42
[INFO] [stderr]   Downloaded colored v2.2.0
[INFO] [stderr]   Downloaded radix_trie v0.2.1
[INFO] [stderr]   Downloaded matrixmultiply v0.3.10
[INFO] [stderr]   Downloaded nibble_vec v0.1.0
[INFO] [stderr]   Downloaded clap_builder v4.5.42
[INFO] [stderr]   Downloaded rustyline v12.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c70f7867507c5d7bed577d5c9c349117f6f7ab13471014a605143382ee9f10a4
[INFO] running `Command { std: "docker" "start" "-a" "c70f7867507c5d7bed577d5c9c349117f6f7ab13471014a605143382ee9f10a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c70f7867507c5d7bed577d5c9c349117f6f7ab13471014a605143382ee9f10a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c70f7867507c5d7bed577d5c9c349117f6f7ab13471014a605143382ee9f10a4", kill_on_drop: false }`
[INFO] [stdout] c70f7867507c5d7bed577d5c9c349117f6f7ab13471014a605143382ee9f10a4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 854ebbbec7ff69b04d16345a081bd37536792eafdd42a20e205a20ebd6207098
[INFO] running `Command { std: "docker" "start" "-a" "854ebbbec7ff69b04d16345a081bd37536792eafdd42a20e205a20ebd6207098", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking anstyle-query v1.1.3
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]    Compiling serde_json v1.0.142
[INFO] [stderr]     Checking endian-type v0.1.2
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking home v0.5.11
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking radix_trie v0.2.1
[INFO] [stderr]     Checking anstream v0.6.19
[INFO] [stderr]     Checking clap_builder v4.5.42
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking fd-lock v3.0.13
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling clap_derive v4.5.41
[INFO] [stderr]     Checking rustyline v12.0.0
[INFO] [stderr]     Checking clap v4.5.42
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking ject v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/value.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]    --> src/value.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         use std::cmp::Ordering;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1` and `Array2`
[INFO] [stdout]  --> src/numpy.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, ArrayD, Dimension};
[INFO] [stdout]   |               ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/value.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]    --> src/value.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         use std::cmp::Ordering;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1` and `Array2`
[INFO] [stdout]  --> src/numpy.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, ArrayD, Dimension};
[INFO] [stdout]   |               ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Dimension`
[INFO] [stdout]  --> src/numpy.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, ArrayD, Dimension};
[INFO] [stdout]   |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found_any_colon` is assigned to, but never used
[INFO] [stdout]     --> src/parser.rs:1117:13
[INFO] [stdout]      |
[INFO] [stdout] 1117 |         let mut found_any_colon = false;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_found_any_colon` instead
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_any_colon` is never read
[INFO] [stdout]     --> src/parser.rs:1124:17
[INFO] [stdout]      |
[INFO] [stdout] 1124 |                 found_any_colon = true;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/parser.rs:1220:42
[INFO] [stdout]      |
[INFO] [stdout] 1220 |                 if let Token::Identifier(name) = &self.peek() {
[INFO] [stdout]      |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Dimension`
[INFO] [stdout]  --> src/numpy.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, ArrayD, Dimension};
[INFO] [stdout]   |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found_any_colon` is assigned to, but never used
[INFO] [stdout]     --> src/parser.rs:1117:13
[INFO] [stdout]      |
[INFO] [stdout] 1117 |         let mut found_any_colon = false;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_found_any_colon` instead
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_any_colon` is never read
[INFO] [stdout]     --> src/parser.rs:1124:17
[INFO] [stdout]      |
[INFO] [stdout] 1124 |                 found_any_colon = true;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/parser.rs:1220:42
[INFO] [stdout]      |
[INFO] [stdout] 1220 |                 if let Token::Identifier(name) = &self.peek() {
[INFO] [stdout]      |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `assignment_statement` is never used
[INFO] [stdout]    --> src/parser.rs:476:8
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn assignment_statement(&mut self) -> ParseResult<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `declared_in_scope` is never read
[INFO] [stdout]  --> src/linter.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Variable {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     declared_in_scope: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Variable` 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 `name` is never read
[INFO] [stdout]   --> src/linter.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct FunctionSignature {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] 14 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionSignature` 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: enum `ScopeKind` is never used
[INFO] [stdout]   --> src/linter.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum ScopeKind {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/value.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]    --> src/value.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         use std::cmp::Ordering;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1` and `Array2`
[INFO] [stdout]  --> src/numpy.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, ArrayD, Dimension};
[INFO] [stdout]   |               ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/value.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]    --> src/value.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         use std::cmp::Ordering;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array1` and `Array2`
[INFO] [stdout]  --> src/numpy.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, ArrayD, Dimension};
[INFO] [stdout]   |               ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tests/lexer_tests.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let mut lexer = Lexer::new("#* outer #* inner *# outer *#let");
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lexer`
[INFO] [stdout]    --> src/tests/lexer_tests.rs:292:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let mut lexer = Lexer::new("#* outer #* inner *# outer *#let");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lexer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]    --> src/tests/parser_tests.rs:407:27
[INFO] [stdout]     |
[INFO] [stdout] 407 |         if let Stmt::If { condition, then_branch, elseif_branches, else_branch } = &stmts[0] {
[INFO] [stdout]     |                           ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then_branch`
[INFO] [stdout]    --> src/tests/parser_tests.rs:407:38
[INFO] [stdout]     |
[INFO] [stdout] 407 |         if let Stmt::If { condition, then_branch, elseif_branches, else_branch } = &stmts[0] {
[INFO] [stdout]     |                                      ^^^^^^^^^^^ help: try ignoring the field: `then_branch: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]    --> src/tests/parser_tests.rs:422:27
[INFO] [stdout]     |
[INFO] [stdout] 422 |         if let Stmt::If { condition, then_branch, elseif_branches, else_branch } = &stmts[0] {
[INFO] [stdout]     |                           ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `then_branch`
[INFO] [stdout]    --> src/tests/parser_tests.rs:422:38
[INFO] [stdout]     |
[INFO] [stdout] 422 |         if let Stmt::If { condition, then_branch, elseif_branches, else_branch } = &stmts[0] {
[INFO] [stdout]     |                                      ^^^^^^^^^^^ help: try ignoring the field: `then_branch: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/tests/parser_tests.rs:646:55
[INFO] [stdout]     |
[INFO] [stdout] 646 |         if let Stmt::Expression(Expr::Index { object, index }) = &stmts[0] {
[INFO] [stdout]     |                                                       ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner_obj`
[INFO] [stdout]    --> src/tests/parser_tests.rs:648:42
[INFO] [stdout]     |
[INFO] [stdout] 648 |             if let Expr::Index { object: inner_obj, index: inner_idx } = &**object {
[INFO] [stdout]     |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inner_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tests/interpreter_tests.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let mut output = String::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/tests/interpreter_tests.rs:295:13
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let result = run(r#"
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/tests/interpreter_tests.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let result = run(r#"
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/tests/interpreter_tests.rs:602:13
[INFO] [stdout]     |
[INFO] [stdout] 602 |         let result = run(r#"
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_errors`
[INFO] [stdout]   --> src/tests/linter_tests.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let (diagnostics, has_errors) = linter.lint(&statements);
[INFO] [stdout]    |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warnings`
[INFO] [stdout]    --> src/tests/linter_tests.rs:138:22
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let (errors, warnings) = lint(r#"
[INFO] [stdout]     |                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warnings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `errors`
[INFO] [stdout]    --> src/tests/linter_tests.rs:259:14
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let (errors, _) = lint(r#"
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warnings`
[INFO] [stdout]    --> src/tests/linter_tests.rs:271:22
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let (errors, warnings) = lint(r#"
[INFO] [stdout]     |                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warnings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warnings`
[INFO] [stdout]    --> src/tests/linter_tests.rs:312:22
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let (errors, warnings) = lint("");
[INFO] [stdout]     |                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warnings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warnings`
[INFO] [stdout]    --> src/tests/linter_tests.rs:321:22
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let (errors, warnings) = lint("# Just a comment");
[INFO] [stdout]     |                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warnings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `errors`
[INFO] [stdout]    --> src/tests/linter_tests.rs:417:14
[INFO] [stdout]     |
[INFO] [stdout] 417 |         let (errors, _) = lint(r#"
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `assignment_statement` is never used
[INFO] [stdout]    --> src/parser.rs:476:8
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn assignment_statement(&mut self) -> ParseResult<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `declared_in_scope` is never read
[INFO] [stdout]  --> src/linter.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Variable {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     declared_in_scope: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Variable` 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 `name` is never read
[INFO] [stdout]   --> src/linter.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct FunctionSignature {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] 14 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionSignature` 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: enum `ScopeKind` is never used
[INFO] [stdout]   --> src/linter.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum ScopeKind {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_and_get_result` is never used
[INFO] [stdout]   --> src/tests/interpreter_tests.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn run_and_get_result(input: &str) -> Result<String, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Dimension`
[INFO] [stdout]  --> src/numpy.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, ArrayD, Dimension};
[INFO] [stdout]   |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Dimension`
[INFO] [stdout]  --> src/numpy.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ndarray::{Array1, Array2, ArrayD, Dimension};
[INFO] [stdout]   |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found_any_colon` is assigned to, but never used
[INFO] [stdout]     --> src/parser.rs:1117:13
[INFO] [stdout]      |
[INFO] [stdout] 1117 |         let mut found_any_colon = false;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_found_any_colon` instead
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_any_colon` is never read
[INFO] [stdout]     --> src/parser.rs:1124:17
[INFO] [stdout]      |
[INFO] [stdout] 1124 |                 found_any_colon = true;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/parser.rs:1220:42
[INFO] [stdout]      |
[INFO] [stdout] 1220 |                 if let Token::Identifier(name) = &self.peek() {
[INFO] [stdout]      |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found_any_colon` is assigned to, but never used
[INFO] [stdout]     --> src/parser.rs:1117:13
[INFO] [stdout]      |
[INFO] [stdout] 1117 |         let mut found_any_colon = false;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_found_any_colon` instead
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_any_colon` is never read
[INFO] [stdout]     --> src/parser.rs:1124:17
[INFO] [stdout]      |
[INFO] [stdout] 1124 |                 found_any_colon = true;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/parser.rs:1220:42
[INFO] [stdout]      |
[INFO] [stdout] 1220 |                 if let Token::Identifier(name) = &self.peek() {
[INFO] [stdout]      |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bool` and `DoubleArrow` are never constructed
[INFO] [stdout]    --> src/lexer.rs:41:5
[INFO] [stdout]     |
[INFO] [stdout]  35 | pub enum Token {
[INFO] [stdout]     |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  41 |     Bool(bool),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     DoubleArrow,
[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]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tokenize` is never used
[INFO] [stdout]    --> src/lexer.rs:678:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl Lexer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 678 |     pub fn tokenize(&mut self) -> Vec<Token> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `assignment_statement` is never used
[INFO] [stdout]    --> src/parser.rs:476:8
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn assignment_statement(&mut self) -> ParseResult<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Generator` and `Member` are never constructed
[INFO] [stdout]   --> src/ast.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     Generator {
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     Member {
[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: variant `Error` is never constructed
[INFO] [stdout]   --> src/value.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum Value {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_math_module` is never used
[INFO] [stdout]   --> src/stdlib.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn get_math_module() -> HashMap<String, Value> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_array_module` is never used
[INFO] [stdout]    --> src/stdlib.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn get_array_module() -> HashMap<String, Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_io_module` is never used
[INFO] [stdout]    --> src/stdlib.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub fn get_io_module() -> HashMap<String, Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_json_module` is never used
[INFO] [stdout]    --> src/stdlib.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn get_json_module() -> HashMap<String, Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_system_module` is never used
[INFO] [stdout]    --> src/stdlib.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn get_system_module() -> HashMap<String, Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `I64` and `Bool` are never constructed
[INFO] [stdout]   --> src/numpy.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum NdArray {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 13 |     F64(ArrayD<f64>),
[INFO] [stdout] 14 |     I64(ArrayD<i64>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 15 |     Bool(ArrayD<bool>),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NdArray` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_error_suggestion` is never used
[INFO] [stdout]  --> src/error.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn get_error_suggestion(error_message: &str) -> Option<String> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorReport` is never constructed
[INFO] [stdout]   --> src/error.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct ErrorReport {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_source`, `with_suggestion`, and `format_error` are never used
[INFO] [stdout]   --> src/error.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl ErrorReport {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 49 |     pub fn new(message: String, position: SourcePosition) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn with_source(mut self, file: String, source: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn with_suggestion(mut self, suggestion: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn format_error(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseError` is never constructed
[INFO] [stdout]    --> src/error.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct ParseError {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_source` are never used
[INFO] [stdout]    --> src/error.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl ParseError {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 131 |     pub fn new(message: String, position: SourcePosition) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn with_source(mut self, file: String, source: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeError` is never constructed
[INFO] [stdout]    --> src/error.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct RuntimeError {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_source` are never used
[INFO] [stdout]    --> src/error.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl RuntimeError {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 157 |     pub fn new(message: String, position: SourcePosition) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn with_source(mut self, file: String, source: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LexError` is never constructed
[INFO] [stdout]    --> src/error.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct LexError {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_source` are never used
[INFO] [stdout]    --> src/error.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl LexError {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 183 |     pub fn new(message: String, position: SourcePosition) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn with_source(mut self, file: String, source: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `declared_in_scope` is never read
[INFO] [stdout]  --> src/linter.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Variable {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     declared_in_scope: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Variable` 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 `name` is never read
[INFO] [stdout]   --> src/linter.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct FunctionSignature {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] 14 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionSignature` 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: enum `ScopeKind` is never used
[INFO] [stdout]   --> src/linter.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum ScopeKind {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Note` and `Help` are never constructed
[INFO] [stdout]  --> src/diagnostic.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum DiagnosticLevel {
[INFO] [stdout]   |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     Note,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 8 |     Help,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DiagnosticLevel` 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 `with_filename` and `with_help` are never used
[INFO] [stdout]   --> src/diagnostic.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Diagnostic {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn with_filename(mut self, filename: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn with_help(mut self, help: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `render_summary` is never used
[INFO] [stdout]    --> src/diagnostic.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl DiagnosticRenderer {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn render_summary(errors: usize, warnings: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_lint_message` is never used
[INFO] [stdout]    --> src/diagnostic.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn parse_lint_message(message: &str) -> Diagnostic {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bool` and `DoubleArrow` are never constructed
[INFO] [stdout]    --> src/lexer.rs:41:5
[INFO] [stdout]     |
[INFO] [stdout]  35 | pub enum Token {
[INFO] [stdout]     |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  41 |     Bool(bool),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     DoubleArrow,
[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]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tokenize` is never used
[INFO] [stdout]    --> src/lexer.rs:678:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl Lexer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 678 |     pub fn tokenize(&mut self) -> Vec<Token> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `assignment_statement` is never used
[INFO] [stdout]    --> src/parser.rs:476:8
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn assignment_statement(&mut self) -> ParseResult<Stmt> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Generator` and `Member` are never constructed
[INFO] [stdout]   --> src/ast.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum Expr {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     Generator {
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     Member {
[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: variant `Error` is never constructed
[INFO] [stdout]   --> src/value.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum Value {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_math_module` is never used
[INFO] [stdout]   --> src/stdlib.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn get_math_module() -> HashMap<String, Value> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_array_module` is never used
[INFO] [stdout]    --> src/stdlib.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn get_array_module() -> HashMap<String, Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_io_module` is never used
[INFO] [stdout]    --> src/stdlib.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub fn get_io_module() -> HashMap<String, Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_json_module` is never used
[INFO] [stdout]    --> src/stdlib.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn get_json_module() -> HashMap<String, Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_system_module` is never used
[INFO] [stdout]    --> src/stdlib.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn get_system_module() -> HashMap<String, Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `I64` and `Bool` are never constructed
[INFO] [stdout]   --> src/numpy.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum NdArray {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 13 |     F64(ArrayD<f64>),
[INFO] [stdout] 14 |     I64(ArrayD<i64>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 15 |     Bool(ArrayD<bool>),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NdArray` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_error_suggestion` is never used
[INFO] [stdout]  --> src/error.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn get_error_suggestion(error_message: &str) -> Option<String> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorReport` is never constructed
[INFO] [stdout]   --> src/error.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct ErrorReport {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_source`, `with_suggestion`, and `format_error` are never used
[INFO] [stdout]   --> src/error.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl ErrorReport {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 49 |     pub fn new(message: String, position: SourcePosition) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn with_source(mut self, file: String, source: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn with_suggestion(mut self, suggestion: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn format_error(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseError` is never constructed
[INFO] [stdout]    --> src/error.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct ParseError {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_source` are never used
[INFO] [stdout]    --> src/error.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl ParseError {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 131 |     pub fn new(message: String, position: SourcePosition) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn with_source(mut self, file: String, source: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuntimeError` is never constructed
[INFO] [stdout]    --> src/error.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct RuntimeError {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_source` are never used
[INFO] [stdout]    --> src/error.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl RuntimeError {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 157 |     pub fn new(message: String, position: SourcePosition) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn with_source(mut self, file: String, source: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LexError` is never constructed
[INFO] [stdout]    --> src/error.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct LexError {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_source` are never used
[INFO] [stdout]    --> src/error.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl LexError {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 183 |     pub fn new(message: String, position: SourcePosition) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn with_source(mut self, file: String, source: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `declared_in_scope` is never read
[INFO] [stdout]  --> src/linter.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Variable {
[INFO] [stdout]   |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     declared_in_scope: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Variable` 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 `name` is never read
[INFO] [stdout]   --> src/linter.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct FunctionSignature {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] 14 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionSignature` 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: enum `ScopeKind` is never used
[INFO] [stdout]   --> src/linter.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum ScopeKind {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Note` and `Help` are never constructed
[INFO] [stdout]  --> src/diagnostic.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum DiagnosticLevel {
[INFO] [stdout]   |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     Note,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 8 |     Help,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DiagnosticLevel` 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 `with_filename` and `with_help` are never used
[INFO] [stdout]   --> src/diagnostic.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Diagnostic {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn with_filename(mut self, filename: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn with_help(mut self, help: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `render_summary` is never used
[INFO] [stdout]    --> src/diagnostic.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl DiagnosticRenderer {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn render_summary(errors: usize, warnings: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_lint_message` is never used
[INFO] [stdout]    --> src/diagnostic.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn parse_lint_message(message: &str) -> Diagnostic {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.52s
[INFO] running `Command { std: "docker" "inspect" "854ebbbec7ff69b04d16345a081bd37536792eafdd42a20e205a20ebd6207098", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "854ebbbec7ff69b04d16345a081bd37536792eafdd42a20e205a20ebd6207098", kill_on_drop: false }`
[INFO] [stdout] 854ebbbec7ff69b04d16345a081bd37536792eafdd42a20e205a20ebd6207098
