[INFO] cloning repository https://github.com/strangelovephd/rusty_interpreter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/strangelovephd/rusty_interpreter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstrangelovephd%2Frusty_interpreter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstrangelovephd%2Frusty_interpreter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 422e6cf00cb9681f0b308a4a7c977f7d1bd733e2
[INFO] checking strangelovephd/rusty_interpreter/422e6cf00cb9681f0b308a4a7c977f7d1bd733e2 against 4fcf39725a9c99bd495d8c73af83628a256ff9a9 for pr-162233-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstrangelovephd%2Frusty_interpreter" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/strangelovephd/rusty_interpreter
[INFO] finished tweaking git repo https://github.com/strangelovephd/rusty_interpreter
[INFO] tweaked toml for git repo https://github.com/strangelovephd/rusty_interpreter written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/strangelovephd/rusty_interpreter on toolchain 4fcf39725a9c99bd495d8c73af83628a256ff9a9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4fcf39725a9c99bd495d8c73af83628a256ff9a9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/strangelovephd/rusty_interpreter 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" "+4fcf39725a9c99bd495d8c73af83628a256ff9a9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `rusty_interpreter` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-6-tc1/source/target/.../rusty_interpreter
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `rusty-interpreter`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:7:8
[INFO] [stderr]    |
[INFO] [stderr]  7 - name = "rusty_interpreter"
[INFO] [stderr]  7 + name = "rusty-interpreter"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `rusty-interpreter`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:8:19
[INFO] [stderr]    |
[INFO] [stderr]  8 ~ version = "0.1.0"
[INFO] [stderr]  9 + [[bin]]
[INFO] [stderr] 10 + name = "rusty-interpreter"
[INFO] [stderr] 11 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `rusty_interpreter` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 63861f34bea183b0b9976849df7ad882523472631c9adbc5ed1b4b87296a56b6
[INFO] running `Command { std: "docker" "start" "63861f34bea183b0b9976849df7ad882523472631c9adbc5ed1b4b87296a56b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "63861f34bea183b0b9976849df7ad882523472631c9adbc5ed1b4b87296a56b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "63861f34bea183b0b9976849df7ad882523472631c9adbc5ed1b4b87296a56b6" "/opt/rustwide/cargo-home/bin/cargo" "+4fcf39725a9c99bd495d8c73af83628a256ff9a9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "63861f34bea183b0b9976849df7ad882523472631c9adbc5ed1b4b87296a56b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "63861f34bea183b0b9976849df7ad882523472631c9adbc5ed1b4b87296a56b6" "/opt/rustwide/cargo-home/bin/cargo" "+4fcf39725a9c99bd495d8c73af83628a256ff9a9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `rusty_interpreter` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../rusty_interpreter
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `rusty-interpreter`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:7:8
[INFO] [stderr]    |
[INFO] [stderr]  7 - name = "rusty_interpreter"
[INFO] [stderr]  7 + name = "rusty-interpreter"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `rusty-interpreter`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:8:19
[INFO] [stderr]    |
[INFO] [stderr]  8 ~ version = "0.1.0"
[INFO] [stderr]  9 + [[bin]]
[INFO] [stderr] 10 + name = "rusty-interpreter"
[INFO] [stderr] 11 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `rusty_interpreter` (manifest) generated 1 warning
[INFO] [stderr]     Checking lazy_static v1.2.0
[INFO] [stderr]     Checking rusty_interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `LexerError` is never constructed
[INFO] [stdout]  --> src/token.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct LexerError {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Illegal`, `IllegalIdent`, `Ident`, and `Int` are never constructed
[INFO] [stdout]   --> src/token.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum TokenType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 14 |     Illegal(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 15 |     IllegalIdent(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     Ident(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 20 |     Int(i32),
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `look_up_token` is never used
[INFO] [stdout]   --> src/token.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn look_up_token(tok: &str) -> Option<TokenType> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Token` is never constructed
[INFO] [stdout]   --> src/token.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Token {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/token.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl Token {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 78 |     pub fn new(tt: TokenType, lit: String) -> Token {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `look_up_keyword` is never used
[INFO] [stdout]    --> src/token.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn look_up_keyword(kw: &str) -> Option<Keyword> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ILLEGAL` is never used
[INFO] [stdout]    --> src/token.rs:109:15
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub const ILLEGAL: &str = "ILLEGAL";
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EOF` is never used
[INFO] [stdout]    --> src/token.rs:110:15
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub const EOF: &str = "EOF";
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDENT` is never used
[INFO] [stdout]    --> src/token.rs:113:15
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub const IDENT: &str = "IDENT";
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INT` is never used
[INFO] [stdout]    --> src/token.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub const INT: &str = "INT";
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASSIGN` is never used
[INFO] [stdout]    --> src/token.rs:117:15
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub const ASSIGN: &str = "=";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLUS` is never used
[INFO] [stdout]    --> src/token.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub const PLUS: &str = "+";
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMA` is never used
[INFO] [stdout]    --> src/token.rs:121:15
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub const COMMA: &str = ",";
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEMICOLON` is never used
[INFO] [stdout]    --> src/token.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub const SEMICOLON: &str = ";";
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LPAREN` is never used
[INFO] [stdout]    --> src/token.rs:125:15
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub const LPAREN: &str = "(";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RPAREN` is never used
[INFO] [stdout]    --> src/token.rs:126:15
[INFO] [stdout]     |
[INFO] [stdout] 126 |     pub const RPAREN: &str = ")";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LBRACE` is never used
[INFO] [stdout]    --> src/token.rs:127:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |     pub const LBRACE: &str = "{";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RBRACE` is never used
[INFO] [stdout]    --> src/token.rs:128:15
[INFO] [stdout]     |
[INFO] [stdout] 128 |     pub const RBRACE: &str = "}";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FUNCTION` is never used
[INFO] [stdout]    --> src/token.rs:131:15
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub const FUNCTION: &str = "FUNCTION";
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LET` is never used
[INFO] [stdout]    --> src/token.rs:132:15
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub const LET: &str = "LET";
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lexer` is never constructed
[INFO] [stdout]  --> src/lexer.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Lexer {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/lexer.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Lexer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new(i: Vec<u8>) -> Lexer {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  24 |     fn read_char(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn next_token(&mut self) -> TokenType {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn is_letter(ch: &u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn is_char(ch: &char) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn read_identifier(&mut self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn skip_whitespace(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn read_number(&mut self) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn is_digit(byte: &char) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tests`
[INFO] [stdout]    --> src/token.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let tests: Vec<&str> = vec![
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tests`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LexerError` is never constructed
[INFO] [stdout]  --> src/token.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct LexerError {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IllegalIdent` is never constructed
[INFO] [stdout]   --> src/token.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum TokenType {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] 14 |     Illegal(String),
[INFO] [stdout] 15 |     IllegalIdent(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ILLEGAL` is never used
[INFO] [stdout]    --> src/token.rs:109:15
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub const ILLEGAL: &str = "ILLEGAL";
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EOF` is never used
[INFO] [stdout]    --> src/token.rs:110:15
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub const EOF: &str = "EOF";
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDENT` is never used
[INFO] [stdout]    --> src/token.rs:113:15
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub const IDENT: &str = "IDENT";
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INT` is never used
[INFO] [stdout]    --> src/token.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub const INT: &str = "INT";
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASSIGN` is never used
[INFO] [stdout]    --> src/token.rs:117:15
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub const ASSIGN: &str = "=";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLUS` is never used
[INFO] [stdout]    --> src/token.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub const PLUS: &str = "+";
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMA` is never used
[INFO] [stdout]    --> src/token.rs:121:15
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub const COMMA: &str = ",";
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEMICOLON` is never used
[INFO] [stdout]    --> src/token.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub const SEMICOLON: &str = ";";
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LPAREN` is never used
[INFO] [stdout]    --> src/token.rs:125:15
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub const LPAREN: &str = "(";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RPAREN` is never used
[INFO] [stdout]    --> src/token.rs:126:15
[INFO] [stdout]     |
[INFO] [stdout] 126 |     pub const RPAREN: &str = ")";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LBRACE` is never used
[INFO] [stdout]    --> src/token.rs:127:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |     pub const LBRACE: &str = "{";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RBRACE` is never used
[INFO] [stdout]    --> src/token.rs:128:15
[INFO] [stdout]     |
[INFO] [stdout] 128 |     pub const RBRACE: &str = "}";
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FUNCTION` is never used
[INFO] [stdout]    --> src/token.rs:131:15
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub const FUNCTION: &str = "FUNCTION";
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LET` is never used
[INFO] [stdout]    --> src/token.rs:132:15
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub const LET: &str = "LET";
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `is_letter` is never used
[INFO] [stdout]    --> src/lexer.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Lexer {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn is_letter(ch: &u8) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] running `Command { std: "docker" "inspect" "63861f34bea183b0b9976849df7ad882523472631c9adbc5ed1b4b87296a56b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "63861f34bea183b0b9976849df7ad882523472631c9adbc5ed1b4b87296a56b6", kill_on_drop: false }`
[INFO] [stdout] 63861f34bea183b0b9976849df7ad882523472631c9adbc5ed1b4b87296a56b6
