[INFO] cloning repository https://github.com/Trombecher/shesh
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Trombecher/shesh" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTrombecher%2Fshesh", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTrombecher%2Fshesh'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 35514a52d42692369281fd7196a83d5c9de25213
[INFO] checking Trombecher/shesh against try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTrombecher%2Fshesh" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Trombecher/shesh
[INFO] finished tweaking git repo https://github.com/Trombecher/shesh
[INFO] tweaked toml for git repo https://github.com/Trombecher/shesh written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Trombecher/shesh on toolchain 012cd62c9add58ab3910e44c137d87db3ab70f61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Trombecher/shesh 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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 97d65cf2131bca6898c893abc9e135f091a9d284a0baf8bd67d0dc2b5534f02c
[INFO] running `Command { std: "docker" "start" "-a" "97d65cf2131bca6898c893abc9e135f091a9d284a0baf8bd67d0dc2b5534f02c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "97d65cf2131bca6898c893abc9e135f091a9d284a0baf8bd67d0dc2b5534f02c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "97d65cf2131bca6898c893abc9e135f091a9d284a0baf8bd67d0dc2b5534f02c", kill_on_drop: false }`
[INFO] [stdout] 97d65cf2131bca6898c893abc9e135f091a9d284a0baf8bd67d0dc2b5534f02c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b731204124f3105052fda51a50cc199b653d740d27277fdd6b6e75bba17a1e6b
[INFO] running `Command { std: "docker" "start" "-a" "b731204124f3105052fda51a50cc199b653d740d27277fdd6b6e75bba17a1e6b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.89
[INFO] [stderr]    Compiling libc v0.2.164
[INFO] [stderr]    Compiling cc v1.2.1
[INFO] [stderr]     Checking bytes v1.8.0
[INFO] [stderr]     Checking litemap v0.7.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling serde v1.0.215
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]    Compiling serde_json v1.0.133
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]    Compiling phf_shared v0.11.2
[INFO] [stderr]    Compiling rustix v0.38.40
[INFO] [stderr]     Checking rustls-pki-types v1.10.0
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]     Checking sync_wrapper v1.0.1
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling syn v2.0.87
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking tokio v1.41.1
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling openssl-sys v0.9.104
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]    Compiling openssl v0.10.68
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]     Checking hyper v1.5.0
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.215
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling zerofrom-derive v0.1.4
[INFO] [stderr]    Compiling yoke-derive v0.7.4
[INFO] [stderr]     Checking hyper-util v0.1.10
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]    Compiling async-trait v0.1.83
[INFO] [stderr]    Compiling phf_macros v0.11.2
[INFO] [stderr]     Checking phf v0.11.2
[INFO] [stderr]     Checking zerofrom v0.1.4
[INFO] [stderr]     Checking yoke v0.7.4
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.3
[INFO] [stderr]     Checking reqwest v0.12.9
[INFO] [stderr]     Checking ollama-rs v0.2.1
[INFO] [stderr]     Checking shesh v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::runtime::resolve::search_program_in_path`
[INFO] [stdout]  --> src/runtime/eval.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::runtime::resolve::search_program_in_path;
[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: `MoveToColumn`
[INFO] [stdout]   --> src/main.rs:12:43
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crossterm::cursor::{position, MoveTo, MoveToColumn};
[INFO] [stdout]    |                                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stylize`
[INFO] [stdout]   --> src/main.rs:14:31
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crossterm::style::{Print, Stylize};
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_str`, `chars_right_from_cursor`, `gap_start`, and `gap_end` are never used
[INFO] [stdout]    --> src/text_box.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl TextBox {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn insert_str(&mut self, s: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn chars_right_from_cursor(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn gap_start(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn gap_end(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/read/tokens.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub enum Token<'a> {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout]  3 |     Plus,
[INFO] [stdout]  4 |     PlusPlus,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]  5 |     PlusEquals,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]  6 |     Minus,
[INFO] [stdout]  7 |     MinusMinus,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]  8 |     MinusEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]  9 |     Star,
[INFO] [stdout] 10 |     StarEquals,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 11 |     StarStar,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 12 |     StarStarEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     Slash,
[INFO] [stdout] 14 |     SlashEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 15 |     Percent,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 16 |     PercentEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 17 |     Caret,
[INFO] [stdout] 18 |     CaretEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 19 |     Ampersand,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 20 |     AmpersandEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     AmpersandAmpersand,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     AmpersandAmpersandEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     Pipe,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 24 |     PipeEquals,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 25 |     PipePipe,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     PipePipeEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     ExclamationMark,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     ExclamationMarkEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     Comma,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 30 |     Dot,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 31 |     LeftAngle,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 32 |     LeftAngleEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     LeftAngleLeftAngle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     LeftAngleLeftAngleEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     RightAngle,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 36 |     RightAngleEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     RightAngleRightAngle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     RightAngleRightAngleEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     Equals,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 40 |     EqualsEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     Keyword(Keyword),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 45 |     String(&'a str),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     LeftBracket,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 50 |     RightBracket,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 51 |     LeftBrace,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 52 |     RightBrace,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Nil`, `True`, `False`, `If`, `Else`, and `While` are never constructed
[INFO] [stdout]   --> src/read/tokens.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub enum Keyword {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 59 |     Nil,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 60 |     True,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 61 |     False,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 62 |     If,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 63 |     Else,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 64 |     While,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Keyword` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `KEYWORD_MAP` is never used
[INFO] [stdout]   --> src/read/tokens.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub static KEYWORD_MAP: phf::Map<&'static str, Keyword> = phf::phf_map! {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/read/ast.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum BinaryOperation {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout]  5 |     Add,
[INFO] [stdout]  6 |     Subtract,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     Modulo,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 10 |     Exponentiate,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 11 |     BitwiseAnd,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     BitwiseOr,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 13 |     BitwiseXor,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 14 |     BitwiseShiftLeft,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     BitwiseShiftRight,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     LogicalAnd,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 17 |     LogicalOr,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 18 |     LogicalXor,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 19 |     Equal,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 20 |     NotEqual,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 21 |     LessThan,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 22 |     GreaterThan,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 23 |     LessThanOrEqual,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     GreaterThanOrEqual,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BinaryOperation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMA_AND_SEMICOLON` is never used
[INFO] [stdout]  --> src/read/bp.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const COMMA_AND_SEMICOLON: u8 = 0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RETURN` is never used
[INFO] [stdout]  --> src/read/bp.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const RETURN: u8 = 1;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASSIGNMENT` is never used
[INFO] [stdout]  --> src/read/bp.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const ASSIGNMENT: (u8, u8) = (3, 2);
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOGICAL_OR` is never used
[INFO] [stdout]  --> src/read/bp.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const LOGICAL_OR: (u8, u8) = (4, 5);
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOGICAL_AND` is never used
[INFO] [stdout]  --> src/read/bp.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const LOGICAL_AND: (u8, u8) = (6, 7);
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BITWISE_OR` is never used
[INFO] [stdout]  --> src/read/bp.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const BITWISE_OR: (u8, u8) = (8, 9);
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BITWISE_AND` is never used
[INFO] [stdout]  --> src/read/bp.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const BITWISE_AND: (u8, u8) = (10, 11);
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BITWISE_XOR` is never used
[INFO] [stdout]   --> src/read/bp.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const BITWISE_XOR: (u8, u8) = (12, 13);
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUALITY` is never used
[INFO] [stdout]   --> src/read/bp.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const EQUALITY: (u8, u8) = (14, 15);
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELATIONAL` is never used
[INFO] [stdout]   --> src/read/bp.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const RELATIONAL: (u8, u8) = (16, 17);
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SHIFT` is never used
[INFO] [stdout]   --> src/read/bp.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const SHIFT: (u8, u8) = (18, 19);
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXPONENTIAL` is never used
[INFO] [stdout]   --> src/read/bp.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const EXPONENTIAL: (u8, u8) = (24, 25);
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NEGATE_AND_NOT` is never used
[INFO] [stdout]   --> src/read/bp.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const NEGATE_AND_NOT: u8 = 26;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CALL` is never used
[INFO] [stdout]   --> src/read/bp.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const CALL: u8 = 27;
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACCESS_AND_OPTIONAL_ACCESS` is never used
[INFO] [stdout]   --> src/read/bp.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const ACCESS_AND_OPTIONAL_ACCESS: u8 = 28;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK` is never used
[INFO] [stdout]   --> src/read/bp.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const BLOCK: u8 = 29;
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mutable` is never read
[INFO] [stdout]   --> src/runtime/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Variable {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 14 |     pub mutable: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Variable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_string` is never used
[INFO] [stdout]   --> src/runtime/mod.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 27 |     pub fn get_string(&self) -> Option<&str> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATH_SEPARATOR` is never used
[INFO] [stdout]  --> src/runtime/resolve.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const PATH_SEPARATOR: char = ':';
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_program_in_path` is never used
[INFO] [stdout]   --> src/runtime/resolve.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn search_program_in_path(path_text: &str, file_name: &str) -> Option<PathBuf> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             execute!(stdout, Print("Error: Failed to parse input\n\r"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 141 |             let _ = execute!(stdout, Print("Error: Failed to parse input\n\r"));;
[INFO] [stdout]     |             +++++++                                                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/runtime/mod.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(PartialEq, Debug)]
[INFO] [stdout]    |          --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 22 |     Function(fn(scope: &mut Scope) -> Result<Value, RuntimeError>),
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::runtime::resolve::search_program_in_path`
[INFO] [stdout]  --> src/runtime/eval.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::runtime::resolve::search_program_in_path;
[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: `MoveToColumn`
[INFO] [stdout]   --> src/main.rs:12:43
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crossterm::cursor::{position, MoveTo, MoveToColumn};
[INFO] [stdout]    |                                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stylize`
[INFO] [stdout]   --> src/main.rs:14:31
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crossterm::style::{Print, Stylize};
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_str`, `chars_right_from_cursor`, `gap_start`, and `gap_end` are never used
[INFO] [stdout]    --> src/text_box.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl TextBox {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn insert_str(&mut self, s: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn chars_right_from_cursor(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn gap_start(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn gap_end(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/read/tokens.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub enum Token<'a> {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout]  3 |     Plus,
[INFO] [stdout]  4 |     PlusPlus,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]  5 |     PlusEquals,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]  6 |     Minus,
[INFO] [stdout]  7 |     MinusMinus,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]  8 |     MinusEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]  9 |     Star,
[INFO] [stdout] 10 |     StarEquals,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 11 |     StarStar,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 12 |     StarStarEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     Slash,
[INFO] [stdout] 14 |     SlashEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 15 |     Percent,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 16 |     PercentEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 17 |     Caret,
[INFO] [stdout] 18 |     CaretEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 19 |     Ampersand,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 20 |     AmpersandEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     AmpersandAmpersand,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     AmpersandAmpersandEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     Pipe,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 24 |     PipeEquals,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 25 |     PipePipe,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     PipePipeEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     ExclamationMark,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     ExclamationMarkEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     Comma,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 30 |     Dot,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 31 |     LeftAngle,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 32 |     LeftAngleEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     LeftAngleLeftAngle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     LeftAngleLeftAngleEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     RightAngle,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 36 |     RightAngleEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     RightAngleRightAngle,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     RightAngleRightAngleEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     Equals,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 40 |     EqualsEquals,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     Keyword(Keyword),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 45 |     String(&'a str),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     LeftBracket,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 50 |     RightBracket,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 51 |     LeftBrace,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 52 |     RightBrace,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Nil`, `True`, `False`, `If`, `Else`, and `While` are never constructed
[INFO] [stdout]   --> src/read/tokens.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub enum Keyword {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 59 |     Nil,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 60 |     True,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 61 |     False,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 62 |     If,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 63 |     Else,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 64 |     While,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Keyword` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `KEYWORD_MAP` is never used
[INFO] [stdout]   --> src/read/tokens.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub static KEYWORD_MAP: phf::Map<&'static str, Keyword> = phf::phf_map! {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/read/ast.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum BinaryOperation {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout]  5 |     Add,
[INFO] [stdout]  6 |     Subtract,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     Modulo,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 10 |     Exponentiate,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 11 |     BitwiseAnd,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     BitwiseOr,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 13 |     BitwiseXor,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 14 |     BitwiseShiftLeft,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     BitwiseShiftRight,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     LogicalAnd,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 17 |     LogicalOr,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 18 |     LogicalXor,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 19 |     Equal,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 20 |     NotEqual,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 21 |     LessThan,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 22 |     GreaterThan,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 23 |     LessThanOrEqual,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     GreaterThanOrEqual,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BinaryOperation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMA_AND_SEMICOLON` is never used
[INFO] [stdout]  --> src/read/bp.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const COMMA_AND_SEMICOLON: u8 = 0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RETURN` is never used
[INFO] [stdout]  --> src/read/bp.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const RETURN: u8 = 1;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASSIGNMENT` is never used
[INFO] [stdout]  --> src/read/bp.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const ASSIGNMENT: (u8, u8) = (3, 2);
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOGICAL_OR` is never used
[INFO] [stdout]  --> src/read/bp.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const LOGICAL_OR: (u8, u8) = (4, 5);
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOGICAL_AND` is never used
[INFO] [stdout]  --> src/read/bp.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const LOGICAL_AND: (u8, u8) = (6, 7);
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BITWISE_OR` is never used
[INFO] [stdout]  --> src/read/bp.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const BITWISE_OR: (u8, u8) = (8, 9);
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BITWISE_AND` is never used
[INFO] [stdout]  --> src/read/bp.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const BITWISE_AND: (u8, u8) = (10, 11);
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BITWISE_XOR` is never used
[INFO] [stdout]   --> src/read/bp.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const BITWISE_XOR: (u8, u8) = (12, 13);
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUALITY` is never used
[INFO] [stdout]   --> src/read/bp.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const EQUALITY: (u8, u8) = (14, 15);
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELATIONAL` is never used
[INFO] [stdout]   --> src/read/bp.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const RELATIONAL: (u8, u8) = (16, 17);
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SHIFT` is never used
[INFO] [stdout]   --> src/read/bp.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const SHIFT: (u8, u8) = (18, 19);
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXPONENTIAL` is never used
[INFO] [stdout]   --> src/read/bp.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const EXPONENTIAL: (u8, u8) = (24, 25);
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NEGATE_AND_NOT` is never used
[INFO] [stdout]   --> src/read/bp.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const NEGATE_AND_NOT: u8 = 26;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CALL` is never used
[INFO] [stdout]   --> src/read/bp.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const CALL: u8 = 27;
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACCESS_AND_OPTIONAL_ACCESS` is never used
[INFO] [stdout]   --> src/read/bp.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const ACCESS_AND_OPTIONAL_ACCESS: u8 = 28;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK` is never used
[INFO] [stdout]   --> src/read/bp.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const BLOCK: u8 = 29;
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mutable` is never read
[INFO] [stdout]   --> src/runtime/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Variable {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 14 |     pub mutable: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Variable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_string` is never used
[INFO] [stdout]   --> src/runtime/mod.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 27 |     pub fn get_string(&self) -> Option<&str> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATH_SEPARATOR` is never used
[INFO] [stdout]  --> src/runtime/resolve.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const PATH_SEPARATOR: char = ':';
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_program_in_path` is never used
[INFO] [stdout]   --> src/runtime/resolve.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn search_program_in_path(path_text: &str, file_name: &str) -> Option<PathBuf> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             execute!(stdout, Print("Error: Failed to parse input\n\r"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 141 |             let _ = execute!(stdout, Print("Error: Failed to parse input\n\r"));;
[INFO] [stdout]     |             +++++++                                                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/runtime/mod.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(PartialEq, Debug)]
[INFO] [stdout]    |          --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 22 |     Function(fn(scope: &mut Scope) -> Result<Value, RuntimeError>),
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.81s
[INFO] running `Command { std: "docker" "inspect" "b731204124f3105052fda51a50cc199b653d740d27277fdd6b6e75bba17a1e6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b731204124f3105052fda51a50cc199b653d740d27277fdd6b6e75bba17a1e6b", kill_on_drop: false }`
[INFO] [stdout] b731204124f3105052fda51a50cc199b653d740d27277fdd6b6e75bba17a1e6b
