[INFO] cloning repository https://github.com/ragnarrlaw/rs-arc-interpreter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ragnarrlaw/rs-arc-interpreter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fragnarrlaw%2Frs-arc-interpreter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fragnarrlaw%2Frs-arc-interpreter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 87986e7353e250f00f33b4f451f8e74eed170507
[INFO] checking ragnarrlaw/rs-arc-interpreter against try#e983148bd5f0f0db270bfb72149f5e892e68b67f for pr-150322
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fragnarrlaw%2Frs-arc-interpreter" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ragnarrlaw/rs-arc-interpreter
[INFO] finished tweaking git repo https://github.com/ragnarrlaw/rs-arc-interpreter
[INFO] tweaked toml for git repo https://github.com/ragnarrlaw/rs-arc-interpreter written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ragnarrlaw/rs-arc-interpreter on toolchain e983148bd5f0f0db270bfb72149f5e892e68b67f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ragnarrlaw/rs-arc-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" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking ragnarrlaw/rs-arc-interpreter against try#e983148bd5f0f0db270bfb72149f5e892e68b67f for pr-150322
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fragnarrlaw%2Frs-arc-interpreter" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ragnarrlaw/rs-arc-interpreter
[INFO] finished tweaking git repo https://github.com/ragnarrlaw/rs-arc-interpreter
[INFO] tweaked toml for git repo https://github.com/ragnarrlaw/rs-arc-interpreter written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ragnarrlaw/rs-arc-interpreter on toolchain e983148bd5f0f0db270bfb72149f5e892e68b67f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ragnarrlaw/rs-arc-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" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ebed9b90b4f65a2bafedeffabe4b0f66b6b8cde5e6ffa0d688126d4abfdc75eb
[INFO] running `Command { std: "docker" "start" "-a" "ebed9b90b4f65a2bafedeffabe4b0f66b6b8cde5e6ffa0d688126d4abfdc75eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ebed9b90b4f65a2bafedeffabe4b0f66b6b8cde5e6ffa0d688126d4abfdc75eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ebed9b90b4f65a2bafedeffabe4b0f66b6b8cde5e6ffa0d688126d4abfdc75eb", kill_on_drop: false }`
[INFO] [stdout] ebed9b90b4f65a2bafedeffabe4b0f66b6b8cde5e6ffa0d688126d4abfdc75eb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 42759e08e85df87e00e79bcae4be4a91329ea2565d4148753b993d89f88f050c
[INFO] running `Command { std: "docker" "start" "-a" "42759e08e85df87e00e79bcae4be4a91329ea2565d4148753b993d89f88f050c", kill_on_drop: false }`
[INFO] [stderr]     Checking rs-arc-lang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]    --> src/semantic_analyzer/mod.rs:132:37
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn analyze_statement(&mut self, stmt: &Statement) -> Result<Type, Box<dyn Diagnostic>> {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/semantic_analyzer/mod.rs:136:38
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn analyze_expression(&mut self, expr: &Expression) -> Result<Type, Box<dyn Diagnostic>> {
[INFO] [stdout]     |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Construct` is never constructed
[INFO] [stdout]  --> src/error/context.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Construct {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error/context.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Construct {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(span: Span, msg: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]   --> src/error/context.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Context(pub Vec<Construct>);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, and `pop` are never used
[INFO] [stdout]   --> src/error/context.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Context {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 22 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn push(&mut self, span: Span, msg: Option<String>) -> () {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn pop(&mut self) -> Option<Construct> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `context`, `span`, and `help` are never used
[INFO] [stdout]   --> src/error/diagnostic.rs:8:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait Diagnostic: fmt::Debug {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout]  8 |     fn context(&self) -> Option<Context> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     fn span(&self) -> Span;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn help(&self) -> Option<String> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InterpreterError` is never used
[INFO] [stdout]  --> src/error/interpreter_error.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum InterpreterError {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LexerError` is never used
[INFO] [stdout]  --> src/error/lexer_error.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum LexerError {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParserError` is never used
[INFO] [stdout]  --> src/error/parser_error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum ParserError {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SemanticError` is never constructed
[INFO] [stdout]  --> src/error/semantic_error.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SemanticError {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SemanticErrorType` is never used
[INFO] [stdout]   --> src/error/semantic_error.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum SemanticErrorType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error/semantic_error.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl SemanticError {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 37 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Report` is never constructed
[INFO] [stdout]  --> src/error/report.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Report<'a> {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error/report.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<'a> Report<'a> {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(source: &'a str, line_map: LineMap, diagnostic: &'a dyn Diagnostic) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lexer` is never constructed
[INFO] [stdout]   --> src/lexer/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Lexer<'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/lexer/mod.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl<'a> Lexer<'a> {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  21 |     pub fn new(source: &'a str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     fn advance(&mut self) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn next_token(&mut self) -> Result<Token<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     fn peek_char(&mut self) -> Option<(usize, char)> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn skip_whitespaces(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     fn read_operator(&mut self) -> Result<Token<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn read_two_char_operator(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn read_punctuation(&mut self) -> Result<Token<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn read_string(&mut self) -> Result<Token<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn read_char(&mut self) -> Result<Token<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     fn read_number(&mut self) -> Result<Token<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn read_word(&mut self) -> Result<Token<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     fn read_eof(&mut self) -> Option<Token<'a>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     fn read_illegal(&mut self) -> Result<Token<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Span` is never constructed
[INFO] [stdout]  --> src/lexer/span.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Span {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/lexer/span.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Span {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn default() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenType` is never used
[INFO] [stdout]  --> src/lexer/token.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenType {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Token` is never constructed
[INFO] [stdout]   --> src/lexer/token.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Token<'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/lexer/token.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl<'a> Token<'a> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 61 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LineMap` is never constructed
[INFO] [stdout]  --> src/line_map/mod.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct LineMap {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_position` are never used
[INFO] [stdout]   --> src/line_map/mod.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl LineMap {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout]  8 |     pub fn new(source: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn get_position(&self, byte_pos: usize) -> Option<(usize, usize)> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParsePrefixFn` is never used
[INFO] [stdout]   --> src/parser/mod.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type ParsePrefixFn<'a> = fn(&mut Parser<'a>) -> Result<Expression<'a>, Box<dyn Diagnostic>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseInfixFn` is never used
[INFO] [stdout]   --> src/parser/mod.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | type ParseInfixFn<'a> = fn(
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParsePostfixFn` is never used
[INFO] [stdout]   --> src/parser/mod.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | type ParsePostfixFn<'a> = fn(
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/parser/mod.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Parser<'a> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser/mod.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl<'a> Parser<'a> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  35 |     pub fn new(lexer: &'a mut Lexer<'a>) -> Result<Self, Box<dyn Diagnostic>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     fn advance(&mut self) -> Result<(), Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn parse_program(&mut self) -> Result<ast::Program<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn parse_statement(&mut self) -> Result<ast::Statement<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     fn parse_let_statement(&mut self) -> Result<ast::Statement<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn parse_return_statement(&mut self) -> Result<ast::Statement<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn parse_expression_statement(&mut self) -> Result<ast::Statement<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn parse_fn_definition(&mut self) -> Result<ast::Statement<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn parse_expression(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     fn parse_prefix_expression(&mut self) -> Result<ast::Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     fn parse_infix_expression(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     fn parse_postfix_expression(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 442 |     fn parse_grouped_expression(&mut self) -> Result<ast::Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 472 |     fn parse_if_expression(&mut self) -> Result<ast::Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 581 |     fn parse_block_expression(&mut self) -> Result<ast::Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     fn parse_fn_literal(&mut self) -> Result<ast::Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 724 |     fn parse_fn_call(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 760 |     fn curr_token_is(&self, t_type: TokenType) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 765 |     fn peek_token_is(&self, t_type: TokenType) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 770 |     fn check_peek_token_and_advance(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 786 |     fn sync(&mut self, sync_tokens: &[TokenType]) -> Result<(), Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 803 |     fn read_function_params(&mut self) -> Result<Vec<String>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 842 |     fn read_function_args(&mut self) -> Result<Vec<Expression<'a>>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 858 |     fn get_prefix_parse_fn(token_type: TokenType) -> Option<ParsePrefixFn<'a>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 877 |     fn get_infix_parse_fn(token_type: TokenType) -> Option<ParseInfixFn<'a>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 898 |     fn get_postfix_parse_fn(token_type: TokenType) -> Option<ParsePostfixFn<'a>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 905 |     fn parse_identifier(&mut self) -> Result<Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 912 |     fn parse_number_literal(&mut self) -> Result<Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 926 |     fn parse_boolean_literal(&mut self) -> Result<Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 946 |     fn parse_string_literal(&mut self) -> Result<Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 955 |     fn parse_char_literal(&mut self) -> Result<Expression<'a>, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 972 |     fn process_escape_sequences(lexeme: &str, span: Span) -> Result<String, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Program` is never constructed
[INFO] [stdout]  --> src/parser/ast.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Program<'a> {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Statement` is never used
[INFO] [stdout]   --> src/parser/ast.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum Statement<'a> {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `span` is never used
[INFO] [stdout]   --> src/parser/ast.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl<'a> Statement<'a> {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 46 |     pub fn span(&self) -> Span {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operator` is never used
[INFO] [stdout]   --> src/parser/ast.rs:86:10
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub enum Operator {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/parser/ast.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl Operator {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 107 |     pub fn new(token_type: TokenType, span: Span) -> Option<Operator> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expression` is never used
[INFO] [stdout]    --> src/parser/ast.rs:156:10
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub enum Expression<'a> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `span` is never used
[INFO] [stdout]    --> src/parser/ast.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 301 | impl<'a> Expression<'a> {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] 302 |     pub fn span(&self) -> Span {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `OperatorPrecedence` is never used
[INFO] [stdout]  --> src/parser/precedence.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type OperatorPrecedence = (i8, i8);
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Precedence` is never used
[INFO] [stdout]  --> src/parser/precedence.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum Precedence {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `prefix_operator_binding_power`, `infix_operator_binding_power`, and `postfix_operator_binding_power` are never used
[INFO] [stdout]   --> src/parser/precedence.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Precedence {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 29 |     pub fn prefix_operator_binding_power(token_type: TokenType) -> OperatorPrecedence {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn infix_operator_binding_power(token_type: TokenType) -> OperatorPrecedence {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn postfix_operator_binding_power(token_type: TokenType) -> OperatorPrecedence {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Type` is never used
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Type {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Symbol` is never constructed
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Symbol {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Scope` is never used
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | type Scope = HashMap<String, Symbol>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SymbolTable` is never constructed
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct SymbolTable {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `enter_scope`, `exit_scope`, `insert`, and `lookup` are never used
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl SymbolTable {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 41 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn enter_scope(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn exit_scope(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn insert(
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn lookup(&self, name: &str) -> Option<&Symbol> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SemanticAnalyzer` is never constructed
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct SemanticAnalyzer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_builtins`, `analyze_program`, `analyze_statement`, and `analyze_expression` are never used
[INFO] [stdout]    --> src/semantic_analyzer/mod.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl SemanticAnalyzer {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 102 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn add_builtins(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn analyze_program(&mut self, program: &Program) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn analyze_statement(&mut self, stmt: &Statement) -> Result<Type, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn analyze_expression(&mut self, expr: &Expression) -> Result<Type, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stmt`
[INFO] [stdout]    --> src/semantic_analyzer/mod.rs:132:37
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn analyze_statement(&mut self, stmt: &Statement) -> Result<Type, Box<dyn Diagnostic>> {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_stmt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/semantic_analyzer/mod.rs:136:38
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn analyze_expression(&mut self, expr: &Expression) -> Result<Type, Box<dyn Diagnostic>> {
[INFO] [stdout]     |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error/context.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Construct {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(span: Span, msg: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, and `pop` are never used
[INFO] [stdout]   --> src/error/context.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Context {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 22 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn push(&mut self, span: Span, msg: Option<String>) -> () {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn pop(&mut self) -> Option<Construct> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InterpreterError` is never used
[INFO] [stdout]  --> src/error/interpreter_error.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum InterpreterError {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidEscapeSequence` is never constructed
[INFO] [stdout]   --> src/error/lexer_error.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum LexerError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     InvalidEscapeSequence(String, Span),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexerError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidExponent` is never constructed
[INFO] [stdout]  --> src/error/parser_error.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum ParserError {
[INFO] [stdout]   |          ----------- variant in this enum
[INFO] [stdout] 5 |     InvalidExponent(String, Span), // a number written in scientific notation has an invalid format
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ParserError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SemanticError` is never constructed
[INFO] [stdout]  --> src/error/semantic_error.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SemanticError {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SemanticErrorType` is never used
[INFO] [stdout]   --> src/error/semantic_error.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum SemanticErrorType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error/semantic_error.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl SemanticError {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 37 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/lexer/span.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Span {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn default() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sync` is never used
[INFO] [stdout]    --> src/parser/mod.rs:786:8
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl<'a> Parser<'a> {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 786 |     fn sync(&mut self, sync_tokens: &[TokenType]) -> Result<(), Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Let {
[INFO] [stdout]    |     --- field in this variant
[INFO] [stdout] 25 |         span: Span, // span of the let -> "let ... := ...;"
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Return {
[INFO] [stdout]    |     ------ field in this variant
[INFO] [stdout] 30 |         span: Span,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     Expression {
[INFO] [stdout]    |     ---------- field in this variant
[INFO] [stdout] 34 |         span: Span,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     FunctionDef {
[INFO] [stdout]    |     ----------- field in this variant
[INFO] [stdout] 38 |         span: Span,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` 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 `span` is never used
[INFO] [stdout]   --> src/parser/ast.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl<'a> Statement<'a> {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 46 |     pub fn span(&self) -> Span {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 |     Plus { span: Span },
[INFO] [stdout]    |     ----   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:88:11
[INFO] [stdout]    |
[INFO] [stdout] 88 |     Sub { span: Span },
[INFO] [stdout]    |     ---   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:89:14
[INFO] [stdout]    |
[INFO] [stdout] 89 |     Divide { span: Span },
[INFO] [stdout]    |     ------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:90:16
[INFO] [stdout]    |
[INFO] [stdout] 90 |     Multiply { span: Span },
[INFO] [stdout]    |     --------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 |     Modulo { span: Span },
[INFO] [stdout]    |     ------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:92:14
[INFO] [stdout]    |
[INFO] [stdout] 92 |     Access { span: Span },
[INFO] [stdout]    |     ------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:93:16
[INFO] [stdout]    |
[INFO] [stdout] 93 |     Negation { span: Span },
[INFO] [stdout]    |     --------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |     Increment { span: Span },
[INFO] [stdout]    |     ---------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |     Decrement { span: Span },
[INFO] [stdout]    |     ---------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:96:14
[INFO] [stdout]    |
[INFO] [stdout] 96 |     Equals { span: Span },
[INFO] [stdout]    |     ------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:97:17
[INFO] [stdout]    |
[INFO] [stdout] 97 |     NotEquals { span: Span },
[INFO] [stdout]    |     ---------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 |     GreaterThan { span: Span },
[INFO] [stdout]    |     -----------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]   --> src/parser/ast.rs:99:25
[INFO] [stdout]    |
[INFO] [stdout] 99 |     GreaterThanEquals { span: Span },
[INFO] [stdout]    |     -----------------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]    --> src/parser/ast.rs:100:16
[INFO] [stdout]     |
[INFO] [stdout] 100 |     LessThan { span: Span },
[INFO] [stdout]     |     --------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]    --> src/parser/ast.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 |     LessThanEquals { span: Span },
[INFO] [stdout]     |     --------------   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]    --> src/parser/ast.rs:102:11
[INFO] [stdout]     |
[INFO] [stdout] 102 |     And { span: Span },
[INFO] [stdout]     |     ---   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Operator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `span` is never read
[INFO] [stdout]    --> src/parser/ast.rs:103:10
[INFO] [stdout]     |
[INFO] [stdout] 103 |     Or { span: Span },
[INFO] [stdout]     |     --   ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Operator` 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 `Conditional`, `BitwiseOr`, `BitwiseXOr`, `BitwiseAnd`, `Shift`, and `Highest` are never constructed
[INFO] [stdout]   --> src/parser/precedence.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum Precedence {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     Conditional,    // ?: (ternary conditional)
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     BitwiseOr,      // |
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 16 |     BitwiseXOr,     // ^
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 17 |     BitwiseAnd,     // &
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     Shift,          // <<, >>
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     Highest, // Highest precedence (e.g., primary expressions like literals and parentheses)
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Precedence` 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 `Type` is never used
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Type {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Symbol` is never constructed
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Symbol {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Scope` is never used
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | type Scope = HashMap<String, Symbol>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SymbolTable` is never constructed
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct SymbolTable {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `enter_scope`, `exit_scope`, `insert`, and `lookup` are never used
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl SymbolTable {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 41 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn enter_scope(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn exit_scope(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn insert(
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn lookup(&self, name: &str) -> Option<&Symbol> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SemanticAnalyzer` is never constructed
[INFO] [stdout]   --> src/semantic_analyzer/mod.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct SemanticAnalyzer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_builtins`, `analyze_program`, `analyze_statement`, and `analyze_expression` are never used
[INFO] [stdout]    --> src/semantic_analyzer/mod.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl SemanticAnalyzer {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 102 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn add_builtins(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn analyze_program(&mut self, program: &Program) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn analyze_statement(&mut self, stmt: &Statement) -> Result<Type, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn analyze_expression(&mut self, expr: &Expression) -> Result<Type, Box<dyn Diagnostic>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.73s
[INFO] running `Command { std: "docker" "inspect" "42759e08e85df87e00e79bcae4be4a91329ea2565d4148753b993d89f88f050c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "42759e08e85df87e00e79bcae4be4a91329ea2565d4148753b993d89f88f050c", kill_on_drop: false }`
[INFO] [stdout] 42759e08e85df87e00e79bcae4be4a91329ea2565d4148753b993d89f88f050c
