[INFO] cloning repository https://github.com/jaycampbellluo/c_compiler
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jaycampbellluo/c_compiler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaycampbellluo%2Fc_compiler", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaycampbellluo%2Fc_compiler'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6eff228905c6a1e80b68206ec97119bc116c1eca
[INFO] testing jaycampbellluo/c_compiler against beta-2026-04-21 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaycampbellluo%2Fc_compiler" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jaycampbellluo/c_compiler
[INFO] finished tweaking git repo https://github.com/jaycampbellluo/c_compiler
[INFO] tweaked toml for git repo https://github.com/jaycampbellluo/c_compiler written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jaycampbellluo/c_compiler on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jaycampbellluo/c_compiler 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cebba029b5f72b6ded55c03ef3359d92ec5283e5779c1ea2b284e4bfa2bceff8
[INFO] running `Command { std: "docker" "start" "-a" "cebba029b5f72b6ded55c03ef3359d92ec5283e5779c1ea2b284e4bfa2bceff8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cebba029b5f72b6ded55c03ef3359d92ec5283e5779c1ea2b284e4bfa2bceff8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cebba029b5f72b6ded55c03ef3359d92ec5283e5779c1ea2b284e4bfa2bceff8", kill_on_drop: false }`
[INFO] [stdout] cebba029b5f72b6ded55c03ef3359d92ec5283e5779c1ea2b284e4bfa2bceff8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8fff7b2a612b221770059914e23117dbd362325ed5fc1f8705d127cea5b5b1cc
[INFO] running `Command { std: "docker" "start" "-a" "8fff7b2a612b221770059914e23117dbd362325ed5fc1f8705d127cea5b5b1cc", kill_on_drop: false }`
[INFO] [stderr]    Compiling lexer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected expression, found `)`
[INFO] [stdout]   --> src/semantic_analysis.rs:35:64
[INFO] [stdout]    |
[INFO] [stdout] 35 |                 let unique = variable_name.append_and_get_new(&); 
[INFO] [stdout]    |                                                                ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `,`
[INFO] [stdout]   --> src/flat_tacky.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let loc = LoC {
[INFO] [stdout]    |                       --- while parsing this struct
[INFO] [stdout] 71 |                 line: unsafe {self.nodes[self.pos].assume_init_ref().line},
[INFO] [stdout] 72 |                 offset: ,
[INFO] [stdout]    |                         ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `}`
[INFO] [stdout]   --> src/flat_tacky.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             let loc = LoC {
[INFO] [stdout]    |                       --- while parsing this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |             }
[INFO] [stdout]    |             ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected `;`, found keyword `let`
[INFO] [stdout]   --> src/flat_tacky.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |             }
[INFO] [stdout]    |              ^ help: add `;` here
[INFO] [stdout] 75 |             let e = Error {
[INFO] [stdout]    |             --- unexpected token
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `->`, `where`, or `{`, found keyword `fn`
[INFO] [stdout]    --> src/flat_tacky.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl <'a> Tacky<'a> {
[INFO] [stdout]     |                     - while parsing this item list starting here
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn add_child()
[INFO] [stdout]     |                   - expected one of `->`, `where`, or `{`
[INFO] [stdout] 104 |
[INFO] [stdout] 105 |     fn lower(&mut self) {
[INFO] [stdout]     |     ^^ unexpected token
[INFO] [stdout] ...
[INFO] [stdout] 120 | }
[INFO] [stdout]     | - the item list ends here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:137:29
[INFO] [stdout]     |
[INFO] [stdout] 137 |     UnexpectedToken{actual: Token, expected: Token},
[INFO] [stdout]     |                             ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:137:46
[INFO] [stdout]     |
[INFO] [stdout] 137 |     UnexpectedToken{actual: Token, expected: Token},
[INFO] [stdout]     |                                              ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:145:19
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn expect(token: &Token, expected: Token) -> ParserResult<()> { 
[INFO] [stdout]     |                   ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:145:36
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn expect(token: &Token, expected: Token) -> ParserResult<()> { 
[INFO] [stdout]     |                                    ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:153:45
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn expect_next(lexer: &mut Lexer, expected: Token) -> ParserResult<()> {
[INFO] [stdout]     |                                             ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |         Token::Identifier(ident) => ident,
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:179:92
[INFO] [stdout]     |
[INFO] [stdout] 179 | ...   _ => {return Err(ParserError::UnexpectedToken{actual: return_type_token, expected: Token::Identifier(Identifier(b"function ou...
[INFO] [stdout]     |                                                                                          ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         Token::Identifier(name) => name,
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:185:90
[INFO] [stdout]     |
[INFO] [stdout] 185 | ...   _ => {return Err(ParserError::UnexpectedToken{actual: func_name_token, expected: Token::Identifier(Identifier(b"function name...
[INFO] [stdout]     |                                                                                        ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:188:24
[INFO] [stdout]     |
[INFO] [stdout] 188 |     expect_next(lexer, Token::LParenthesis)?;
[INFO] [stdout]     |                        ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |             Token::RParenthesis => {break},
[INFO] [stdout]     |             ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:198:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |             Token::Identifier(ident) => {
[INFO] [stdout]     |             ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:207:24
[INFO] [stdout]     |
[INFO] [stdout] 207 |     expect_next(lexer, Token::LCurly)?;
[INFO] [stdout]     |                        ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |             Token::RCurly => {break},
[INFO] [stdout]     |             ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:224:32
[INFO] [stdout]     |
[INFO] [stdout] 224 |             expect_next(lexer, Token::Delimiter)?;
[INFO] [stdout]     |                                ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:226:34
[INFO] [stdout]     |
[INFO] [stdout] 226 |         _ => {expect_next(lexer, Token::RCurly)?} // is this technically correct? 
[INFO] [stdout]     |                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |         Token::Type(t) => { // if the first token is "int", then its a declaration
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:254:9
[INFO] [stdout]     |
[INFO] [stdout] 254 |         Token::Identifier(ident) => ident,
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 260 |         Token::Delimiter => {return Ok(Declaration{name: var_name, init: None})},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         Token::Assignment => {
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:276:9
[INFO] [stdout]     |
[INFO] [stdout] 276 |         Token::Keyword(Keyword::Return) => {
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:280:9
[INFO] [stdout]     |
[INFO] [stdout] 280 |         Token::Keyword(Keyword::If) => {
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:295:16
[INFO] [stdout]     |
[INFO] [stdout] 295 |         if let Token::Assignment = next {
[INFO] [stdout]     |                ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:300:23
[INFO] [stdout]     |
[INFO] [stdout] 300 |         } else if let Token::QuestionMark = next {
[INFO] [stdout]     |                       ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:329:9
[INFO] [stdout]     |
[INFO] [stdout] 329 |         Token::Const(c) => {
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:332:9
[INFO] [stdout]     |
[INFO] [stdout] 332 |         Token::Minus | Token::Tilde | Token::Exclamation | Token::PlusPlus | Token::MinusMinus => {
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:332:24
[INFO] [stdout]     |
[INFO] [stdout] 332 |         Token::Minus | Token::Tilde | Token::Exclamation | Token::PlusPlus | Token::MinusMinus => {
[INFO] [stdout]     |                        ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:332:39
[INFO] [stdout]     |
[INFO] [stdout] 332 |         Token::Minus | Token::Tilde | Token::Exclamation | Token::PlusPlus | Token::MinusMinus => {
[INFO] [stdout]     |                                       ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:332:60
[INFO] [stdout]     |
[INFO] [stdout] 332 |         Token::Minus | Token::Tilde | Token::Exclamation | Token::PlusPlus | Token::MinusMinus => {
[INFO] [stdout]     |                                                            ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:332:78
[INFO] [stdout]     |
[INFO] [stdout] 332 |         Token::Minus | Token::Tilde | Token::Exclamation | Token::PlusPlus | Token::MinusMinus => {
[INFO] [stdout]     |                                                                              ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |         Token::Plus => {return Err(ParserError::EmptyFile)}
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:338:9
[INFO] [stdout]     |
[INFO] [stdout] 338 |         Token::LParenthesis => {
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:340:32
[INFO] [stdout]     |
[INFO] [stdout] 340 |             expect_next(lexer, Token::RParenthesis)?;
[INFO] [stdout]     |                                ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:350:24
[INFO] [stdout]     |
[INFO] [stdout] 350 |     expect_next(lexer, Token::QuestionMark)?;
[INFO] [stdout]     |                        ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:352:24
[INFO] [stdout]     |
[INFO] [stdout] 352 |     expect_next(lexer, Token::Colon)?;
[INFO] [stdout]     |                        ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:359:24
[INFO] [stdout]     |
[INFO] [stdout] 359 | fn parse_binop(token: &Token) -> ParserResult<BinaryOperator> {
[INFO] [stdout]     |                        ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:361:9
[INFO] [stdout]     |
[INFO] [stdout] 361 |         Token::Asterix => {return Ok(BinaryOperator::Multiply)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:362:9
[INFO] [stdout]     |
[INFO] [stdout] 362 |         Token::ForwardSlash => {return Ok(BinaryOperator::Divide)}
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 |         Token::Percent => {return Ok(BinaryOperator::Remainder)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |         Token::Plus => {return Ok(BinaryOperator::Add)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |         Token::Minus => {return Ok(BinaryOperator::Subtract)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 366 |         Token::Ampersand => {return Ok(BinaryOperator::BitwiseAnd)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:367:9
[INFO] [stdout]     |
[INFO] [stdout] 367 |         Token::UpCarrot => {return Ok(BinaryOperator::BitwiseXor)}
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:368:9
[INFO] [stdout]     |
[INFO] [stdout] 368 |         Token::EqualsEquals => {return Ok(BinaryOperator::Equal)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:369:9
[INFO] [stdout]     |
[INFO] [stdout] 369 |         Token::ExclamationEquals => {return Ok(BinaryOperator::NotEqual)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:370:9
[INFO] [stdout]     |
[INFO] [stdout] 370 |         Token::AmpersandAmpersand => {return Ok(BinaryOperator::LogicalAnd)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |         Token::PipePipe => {return Ok(BinaryOperator::LogicalOr)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:372:9
[INFO] [stdout]     |
[INFO] [stdout] 372 |         Token::RightCarrot => {return Ok(BinaryOperator::GreaterThan)}, // > (carrot pointing to the right)
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:373:9
[INFO] [stdout]     |
[INFO] [stdout] 373 |         Token::RightCarrotEquals => {return Ok(BinaryOperator::GreaterThanEquals)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:374:9
[INFO] [stdout]     |
[INFO] [stdout] 374 |         Token::RightCarrotRightCarrot => {return Ok(BinaryOperator::BitwiseRightShift)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:375:9
[INFO] [stdout]     |
[INFO] [stdout] 375 |         Token::LeftCarrot => {return Ok(BinaryOperator::LessThan)}, // < (carrot pointing to the left)
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         Token::LeftCarrotEquals => {return Ok(BinaryOperator::LessThanEquals)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:377:9
[INFO] [stdout]     |
[INFO] [stdout] 377 |         Token::LeftCarrotLeftCarrot => {return Ok(BinaryOperator::BitwiseLeftShift)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:382:25
[INFO] [stdout]     |
[INFO] [stdout] 382 | fn is_binary_op(token: &Token) -> bool {
[INFO] [stdout]     |                         ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |     matches!(token, Token::Assignment | Token::Plus | Token::Minus | Token:: Asterix | Token::Percent | Token::ForwardSlash | Token...
[INFO] [stdout]     |                     ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:41
[INFO] [stdout]     |
[INFO] [stdout] 383 |     matches!(token, Token::Assignment | Token::Plus | Token::Minus | Token:: Asterix | Token::Percent | Token::ForwardSlash | Token...
[INFO] [stdout]     |                                         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:55
[INFO] [stdout]     |
[INFO] [stdout] 383 |     matches!(token, Token::Assignment | Token::Plus | Token::Minus | Token:: Asterix | Token::Percent | Token::ForwardSlash | Token...
[INFO] [stdout]     |                                                       ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:70
[INFO] [stdout]     |
[INFO] [stdout] 383 |     matches!(token, Token::Assignment | Token::Plus | Token::Minus | Token:: Asterix | Token::Percent | Token::ForwardSlash | Token...
[INFO] [stdout]     |                                                                      ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:88
[INFO] [stdout]     |
[INFO] [stdout] 383 |     matches!(token, Token::Assignment | Token::Plus | Token::Minus | Token:: Asterix | Token::Percent | Token::ForwardSlash | Token...
[INFO] [stdout]     |                                                                                        ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:105
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...n::Minus | Token:: Asterix | Token::Percent | Token::ForwardSlash | Token::AmpersandAmpersand | Token::PipePipe | Token::EqualsE...
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:127
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...erix | Token::Percent | Token::ForwardSlash | Token::AmpersandAmpersand | Token::PipePipe | Token::EqualsEquals | Token::Exclama...
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:155
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...n::ForwardSlash | Token::AmpersandAmpersand | Token::PipePipe | Token::EqualsEquals | Token::ExclamationEquals | Token::LeftCarr...
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:173
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...Token::AmpersandAmpersand | Token::PipePipe | Token::EqualsEquals | Token::ExclamationEquals | Token::LeftCarrot | Token::LeftCa...
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:195
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...and | Token::PipePipe | Token::EqualsEquals | Token::ExclamationEquals | Token::LeftCarrot | Token::LeftCarrotEquals | Token::Ri...
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:222
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...en::EqualsEquals | Token::ExclamationEquals | Token::LeftCarrot | Token::LeftCarrotEquals | Token::RightCarrot | Token::RightCar...
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:242
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...oken::ExclamationEquals | Token::LeftCarrot | Token::LeftCarrotEquals | Token::RightCarrot | Token::RightCarrotEquals | Token::L...
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:268
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...Token::LeftCarrot | Token::LeftCarrotEquals | Token::RightCarrot | Token::RightCarrotEquals | Token::LeftCarrotLeftCarrot | Toke...
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:289
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...oken::LeftCarrotEquals | Token::RightCarrot | Token::RightCarrotEquals | Token::LeftCarrotLeftCarrot | Token::RightCarrotRightCa...
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:316
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...ken::RightCarrot | Token::RightCarrotEquals | Token::LeftCarrotLeftCarrot | Token::RightCarrotRightCarrot)
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:383:346
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...tCarrotEquals | Token::LeftCarrotLeftCarrot | Token::RightCarrotRightCarrot)
[INFO] [stdout]     |                                                  ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:388:23
[INFO] [stdout]     |
[INFO] [stdout] 388 | fn parse_unop(token: &Token) -> ParserResult<UnaryOperator> {
[INFO] [stdout]     |                       ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:390:9
[INFO] [stdout]     |
[INFO] [stdout] 390 |         Token::Tilde => {return Ok(UnaryOperator::BitwiseComplement)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:391:9
[INFO] [stdout]     |
[INFO] [stdout] 391 |         Token::Minus => {return Ok(UnaryOperator::Negation)}, // need to add support for decrement (and also increment)
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:392:9
[INFO] [stdout]     |
[INFO] [stdout] 392 |         Token::MinusMinus => {return Ok(UnaryOperator::Decrement)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:393:9
[INFO] [stdout]     |
[INFO] [stdout] 393 |         Token::PlusPlus => {return Ok(UnaryOperator::Increment)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:394:9
[INFO] [stdout]     |
[INFO] [stdout] 394 |         Token::Exclamation => {return Ok(UnaryOperator::LogicalNot)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:403:39
[INFO] [stdout]     |
[INFO] [stdout] 403 | fn get_operator_precedence(op_token: &Token) -> ParserResult<u32> {
[INFO] [stdout]     |                                       ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:405:9
[INFO] [stdout]     |
[INFO] [stdout] 405 |         Token::Asterix | Token::ForwardSlash | Token::Percent => {return Ok(50)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:405:26
[INFO] [stdout]     |
[INFO] [stdout] 405 |         Token::Asterix | Token::ForwardSlash | Token::Percent => {return Ok(50)},
[INFO] [stdout]     |                          ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:405:48
[INFO] [stdout]     |
[INFO] [stdout] 405 |         Token::Asterix | Token::ForwardSlash | Token::Percent => {return Ok(50)},
[INFO] [stdout]     |                                                ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:406:9
[INFO] [stdout]     |
[INFO] [stdout] 406 |         Token::Plus | Token::Minus => {return Ok(45)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:406:23
[INFO] [stdout]     |
[INFO] [stdout] 406 |         Token::Plus | Token::Minus => {return Ok(45)},
[INFO] [stdout]     |                       ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:407:9
[INFO] [stdout]     |
[INFO] [stdout] 407 |         Token::LeftCarrotLeftCarrot | Token::RightCarrotRightCarrot => {return Ok(40)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:407:39
[INFO] [stdout]     |
[INFO] [stdout] 407 |         Token::LeftCarrotLeftCarrot | Token::RightCarrotRightCarrot => {return Ok(40)},
[INFO] [stdout]     |                                       ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:408:9
[INFO] [stdout]     |
[INFO] [stdout] 408 |         Token::LeftCarrot | Token::LeftCarrotEquals | Token::RightCarrot | Token::RightCarrotEquals => {return Ok(35)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:408:29
[INFO] [stdout]     |
[INFO] [stdout] 408 |         Token::LeftCarrot | Token::LeftCarrotEquals | Token::RightCarrot | Token::RightCarrotEquals => {return Ok(35)},
[INFO] [stdout]     |                             ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:408:55
[INFO] [stdout]     |
[INFO] [stdout] 408 |         Token::LeftCarrot | Token::LeftCarrotEquals | Token::RightCarrot | Token::RightCarrotEquals => {return Ok(35)},
[INFO] [stdout]     |                                                       ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:408:76
[INFO] [stdout]     |
[INFO] [stdout] 408 |         Token::LeftCarrot | Token::LeftCarrotEquals | Token::RightCarrot | Token::RightCarrotEquals => {return Ok(35)},
[INFO] [stdout]     |                                                                            ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:409:9
[INFO] [stdout]     |
[INFO] [stdout] 409 |         Token::EqualsEquals | Token::ExclamationEquals => {return Ok(30)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:409:31
[INFO] [stdout]     |
[INFO] [stdout] 409 |         Token::EqualsEquals | Token::ExclamationEquals => {return Ok(30)},
[INFO] [stdout]     |                               ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:410:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |         Token::Ampersand => {return Ok(25)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:411:9
[INFO] [stdout]     |
[INFO] [stdout] 411 |         Token::UpCarrot => {return Ok(24)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:412:9
[INFO] [stdout]     |
[INFO] [stdout] 412 |         Token::Pipe => {return Ok(23)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:413:9
[INFO] [stdout]     |
[INFO] [stdout] 413 |         Token::AmpersandAmpersand => {return Ok(10)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:414:9
[INFO] [stdout]     |
[INFO] [stdout] 414 |         Token::PipePipe => {return Ok(5)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:415:9
[INFO] [stdout]     |
[INFO] [stdout] 415 |         Token::QuestionMark => {return Ok(3)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Token` in this scope
[INFO] [stdout]    --> src/parser.rs:416:9
[INFO] [stdout]     |
[INFO] [stdout] 416 |         Token::Assignment => {return Ok(1)},
[INFO] [stdout]     |         ^^^^^ use of undeclared type `Token`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::token::Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TackyInstruction` in this scope
[INFO] [stdout]   --> src/flat_tacky.rs:38:31
[INFO] [stdout]    |
[INFO] [stdout] 38 |     tacky_nodes: [MaybeUninit<TackyInstruction>; MAX_NODES], 
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::tacky::TackyInstruction;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `ERR_TACKY` in this scope
[INFO] [stdout]   --> src/flat_tacky.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 code: ERR_TACKY
[INFO] [stdout]    |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0574]: expected struct, variant or union type, found enum `TackyNode`
[INFO] [stdout]   --> src/flat_tacky.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 |             let n = TackyNode {
[INFO] [stdout]    |                     ^^^^^^^^^ not a struct, variant or union type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NUM_KEYWORDS`
[INFO] [stdout]  --> src/lexer.rs:4:48
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::token::{Token, TokenKind, KEYWORDS, NUM_KEYWORDS};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/parser.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `increment_global_counter`
[INFO] [stdout]  --> src/tacky.rs:2:32
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::{Identifier, increment_global_counter};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/tacky.rs:240:24
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let curr_idx = (self.i as u8);
[INFO] [stdout]     |                        ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 240 -         let curr_idx = (self.i as u8);
[INFO] [stdout] 240 +         let curr_idx = self.i as u8 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/lexer.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |         unreachable!();
[INFO] [stdout]     |         -------------- any code following this expression is unreachable
[INFO] [stdout] 278 |         let start = self.pos;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:154:22
[INFO] [stdout]     |
[INFO] [stdout] 154 |     let next = lexer.next().ok_or_else(|| ParserError::UnexpectedEnd)?;
[INFO] [stdout]     |                      ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:176:35
[INFO] [stdout]     |
[INFO] [stdout] 176 |     let return_type_token = lexer.next().ok_or_else(||ParserError::UnexpectedEnd)?;
[INFO] [stdout]     |                                   ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:182:33
[INFO] [stdout]     |
[INFO] [stdout] 182 |     let func_name_token = lexer.next().ok_or_else(|| ParserError::UnexpectedEnd)?;
[INFO] [stdout]     |                                 ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:195:26
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let next = lexer.next().ok_or_else(|| ParserError::UnexpectedEnd)?;
[INFO] [stdout]     |                          ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:210:26
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let next = lexer.next().ok_or_else(|| ParserError::UnexpectedEnd)?;
[INFO] [stdout]     |                          ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0624]: method `peek` is private
[INFO] [stdout]    --> src/parser.rs:233:23
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let token = lexer.peek().ok_or_else(|| ParserError::UnexpectedEnd)?; // pretty sure this needs to be peek in order to handle th...
[INFO] [stdout]     |                       ^^^^ private method
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:60:5
[INFO] [stdout]     |
[INFO] [stdout]  60 |     fn peek(&mut self, ahead: usize) -> &u8 {
[INFO] [stdout]     |     --------------------------------------- private method defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:253:32
[INFO] [stdout]     |
[INFO] [stdout] 253 |     let var_name = match lexer.next().ok_or_else(|| ParserError::UnexpectedEnd)? {
[INFO] [stdout]     |                                ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 258 |     let next = lexer.next().ok_or_else(|| ParserError::UnexpectedEnd)?;
[INFO] [stdout]     |                      ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:274:23
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let token = lexer.next().ok_or_else(|| ParserError::UnexpectedEnd)?;
[INFO] [stdout]     |                       ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/parser.rs:281:27
[INFO] [stdout]     |
[INFO] [stdout] 281 |             let if_stmt = parse_expression(lexer)?;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^------- argument #2 of type `u32` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/parser.rs:291:4
[INFO] [stdout]     |
[INFO] [stdout] 291 | fn parse_expression(lexer: &mut Lexer, min_prec: u32) -> ParserResult<Expression> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^                    -------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 281 |             let if_stmt = parse_expression(lexer, /* u32 */)?;
[INFO] [stdout]     |                                                 +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this enum variant takes 1 argument but 0 arguments were supplied
[INFO] [stdout]    --> src/parser.rs:282:20
[INFO] [stdout]     |
[INFO] [stdout] 282 |             return Ok()
[INFO] [stdout]     |                    ^^-- argument #1 of type `Statement` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/result.rs:561:4
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 282 |             return Ok(/* Statement */)
[INFO] [stdout]     |                       +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0624]: method `peek` is private
[INFO] [stdout]    --> src/parser.rs:293:26
[INFO] [stdout]     |
[INFO] [stdout] 293 |     let mut next = lexer.peek().ok_or_else(|| ParserError::UnexpectedEnd)?; // should this be next() or peek()??
[INFO] [stdout]     |                          ^^^^ private method
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:60:5
[INFO] [stdout]     |
[INFO] [stdout]  60 |     fn peek(&mut self, ahead: usize) -> &u8 {
[INFO] [stdout]     |     --------------------------------------- private method defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:296:19
[INFO] [stdout]     |
[INFO] [stdout] 296 |             lexer.next().ok_or_else(|| ParserError::UnexpectedEnd)?; // consumes = token
[INFO] [stdout]     |                   ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0624]: method `peek` is private
[INFO] [stdout]    --> src/parser.rs:297:30
[INFO] [stdout]     |
[INFO] [stdout] 297 |             let next = lexer.peek().ok_or_else(|| ParserError::UnexpectedEnd)?;
[INFO] [stdout]     |                              ^^^^ private method
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:60:5
[INFO] [stdout]     |
[INFO] [stdout]  60 |     fn peek(&mut self, ahead: usize) -> &u8 {
[INFO] [stdout]     |     --------------------------------------- private method defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:306:35
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let temp_next = lexer.next().ok_or_else(|| ParserError::EmptyFile)?;
[INFO] [stdout]     |                                   ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `next` exists for mutable reference `&mut lexer::Lexer<'_>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/parser.rs:327:22
[INFO] [stdout]     |
[INFO] [stdout] 327 |     let next = lexer.next().ok_or_else(|| ParserError::UnexpectedEnd)?;
[INFO] [stdout]     |                      ^^^^ method cannot be called on `&mut lexer::Lexer<'_>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lexer.rs:12:1
[INFO] [stdout]     |
[INFO] [stdout]  12 | pub struct Lexer<'a> {
[INFO] [stdout]     | -------------------- doesn't satisfy `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `lexer::Lexer<'_>: Iterator`
[INFO] [stdout]             which is required by `&mut lexer::Lexer<'_>: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/8489f1adbe1c8f8921cf18b9962cf565237a5489/library/core/src/iter/traits/iterator.rs:42:0
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the trait `Iterator` defines an item `next`, but is explicitly unimplemented
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `i` in initializer of `TackyGenerator`
[INFO] [stdout]   --> src/tacky.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         Self {
[INFO] [stdout]    |         ^^^^ missing `i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/tacky.rs:98:46
[INFO] [stdout]     |
[INFO] [stdout]  98 |         self.lower_statement_to_tacky(&name, func_def.body, &mut instructions)?;
[INFO] [stdout]     |              ------------------------        ^^^^^^^^^^^^^ expected `Statement`, found `Vec<BlockItem>`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Statement`
[INFO] [stdout]              found struct `Vec<BlockItem>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/tacky.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn lower_statement_to_tacky(&mut self, func_name: &Identifier, statement: Statement, instructions: &mut Vec<TackyInstruction>) ...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^                                    --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `temp_counter` in initializer of `VariableResolver`
[INFO] [stdout]   --> src/semantic_analysis.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         Self {
[INFO] [stdout]    |         ^^^^ missing `temp_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/semantic_analysis.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 unimplemented!("");
[INFO] [stdout]    |                 ------------------ any code following this expression is unreachable
[INFO] [stdout] 34 |                 let counter = increment_global_counter();
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/asm.rs:145:21
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...   _ => {return Err(AssemblyError::ConversionError(format!("encountered unrecognised assembly unary operator while trying to con...
[INFO] [stdout]     |       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/asm.rs:145:21
[INFO] [stdout]     |
[INFO] [stdout] 136 | ...   AssemblyUnaryOperator::Neg => {
[INFO] [stdout]     |       -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 140 | ...   AssemblyUnaryOperator::Not => {
[INFO] [stdout]     |       -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 145 | ...   _ => {return Err(AssemblyError::ConversionError(format!("encountered unrecognised assembly unary operator while trying to con...
[INFO] [stdout]     |       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/asm.rs:302:21
[INFO] [stdout]     |
[INFO] [stdout] 302 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/asm.rs:302:21
[INFO] [stdout]     |
[INFO] [stdout] 289 | ...   AssemblyBinaryOperator::Add | AssemblyBinaryOperator::Sub => { // add and sub can't use mem addresses for both src and dest, ...
[INFO] [stdout]     |       --------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 295 | ...   AssemblyBinaryOperator::Mult => { // can't use a mem address as dest
[INFO] [stdout]     |       ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 302 | ...   _ => {}
[INFO] [stdout]     |       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/asm.rs:346:13
[INFO] [stdout]     |
[INFO] [stdout] 346 |             _ => {return Err(AssemblyError::ConversionError(format!("tried to convert an unrecognised tacky value to asm")))}
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/asm.rs:346:13
[INFO] [stdout]     |
[INFO] [stdout] 344 |             TackyValue::Constant(c) => {return Ok(AssemblyOperand::Immediate(c))},
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 345 |             TackyValue::Variable(i) => {return Ok(AssemblyOperand::PseudoRegister(i))},
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 346 |             _ => {return Err(AssemblyError::ConversionError(format!("tried to convert an unrecognised tacky value to asm")))}
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `&AssemblyInstruction::Cmp(_, _)`, `&AssemblyInstruction::Jmp(_)`, `&AssemblyInstruction::JmpCC(_, _)` and 2 more not covered
[INFO] [stdout]    --> src/asm.rs:366:15
[INFO] [stdout]     |
[INFO] [stdout] 366 |         match inst {
[INFO] [stdout]     |               ^^^^ patterns `&AssemblyInstruction::Cmp(_, _)`, `&AssemblyInstruction::Jmp(_)`, `&AssemblyInstruction::JmpCC(_, _)` and 2 more not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `AssemblyInstruction` defined here
[INFO] [stdout]    --> src/asm.rs:35:10
[INFO] [stdout]     |
[INFO] [stdout]  35 | pub enum AssemblyInstruction {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |     Cmp(AssemblyOperand, AssemblyOperand),
[INFO] [stdout]     |     --- not covered
[INFO] [stdout] ...
[INFO] [stdout]  42 |     Jmp(Identifier),
[INFO] [stdout]     |     --- not covered
[INFO] [stdout]  43 |     JmpCC(AssemblyCondCode, Identifier),
[INFO] [stdout]     |     ----- not covered
[INFO] [stdout]  44 |     SetCC(AssemblyCondCode, AssemblyOperand),
[INFO] [stdout]     |     ----- not covered
[INFO] [stdout]  45 |     Label(Identifier),
[INFO] [stdout]     |     ----- not covered
[INFO] [stdout]     = note: the matched value is of type `&AssemblyInstruction`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 390 ~             },
[INFO] [stdout] 391 +             _ => todo!()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:361:53
[INFO] [stdout]     |
[INFO] [stdout] 361 |     write!(output, ".globl {:?}\n", &name).map_err(|e| AssemblyError::EmitError)?; 
[INFO] [stdout]     |                                                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:362:45
[INFO] [stdout]     |
[INFO] [stdout] 362 |     write!(output, "{:?}:", &name).map_err(|e| AssemblyError::EmitError)?;
[INFO] [stdout]     |                                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:371:48
[INFO] [stdout]     |
[INFO] [stdout] 371 |                 write!(output, "ret").map_err(|e| AssemblyError::EmitError)?; // check this
[INFO] [stdout]     |                                                ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:376:79
[INFO] [stdout]     |
[INFO] [stdout] 376 |                 write!(output, "{:?} {:?}", text_unop, text_operand).map_err(|e| AssemblyError::EmitError)?;
[INFO] [stdout]     |                                                                               ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:383:66
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 write!(output, "subq ${:?}, %rsp", amt).map_err(|e| AssemblyError::EmitError)?;
[INFO] [stdout]     |                                                                  ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:395:77
[INFO] [stdout]     |
[INFO] [stdout] 395 |         write!(output, r#".section .note.GNU-stack,"",@progbits"#).map_err(|e| AssemblyError::EmitError)?;
[INFO] [stdout]     |                                                                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:427:86
[INFO] [stdout]     |
[INFO] [stdout] 427 |             write!(output, "{:?} {:?}, {:?}", text_op, text_src, text_dest).map_err(|e| AssemblyError::EmitError)?;
[INFO] [stdout]     |                                                                                      ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:419:75
[INFO] [stdout]     |
[INFO] [stdout] 419 |             write!(output, "{:?} {:?}", text_unop, text_operand).map_err(|e| AssemblyError::EmitError)?;
[INFO] [stdout]     |                                                                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amt`
[INFO] [stdout]    --> src/asm.rs:407:44
[INFO] [stdout]     |
[INFO] [stdout] 407 |         AssemblyInstruction::AllocateStack(amt) => {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_amt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]    --> src/asm.rs:410:34
[INFO] [stdout]     |
[INFO] [stdout] 410 |         AssemblyInstruction::Mov{src, dest} => {
[INFO] [stdout]     |                                  ^^^ help: try ignoring the field: `src: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]    --> src/asm.rs:410:39
[INFO] [stdout]     |
[INFO] [stdout] 410 |         AssemblyInstruction::Mov{src, dest} => {
[INFO] [stdout]     |                                       ^^^^ help: try ignoring the field: `dest: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:477:56
[INFO] [stdout]     |
[INFO] [stdout] 477 |             write!(output, "{:?}(%rbp)", val).map_err(|e| AssemblyError::EmitError)?;
[INFO] [stdout]     |                                                        ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:473:56
[INFO] [stdout]     |
[INFO] [stdout] 473 |             write!(output, "%{:?}", text_reg).map_err(|e| AssemblyError::EmitError)?;
[INFO] [stdout]     |                                                        ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/asm.rs:463:51
[INFO] [stdout]     |
[INFO] [stdout] 463 |             write!(output, "${:?}", val).map_err(|e| AssemblyError::EmitError)?;
[INFO] [stdout]     |                                                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/tacky.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |             _ => {return Err(TackyError::NotImplemented)}
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/tacky.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |             UnaryOperator::BitwiseComplement => {return Ok(TackyUnaryOperator::BitwiseComplement)},
[INFO] [stdout]     |             -------------------------------- matches some of the same values
[INFO] [stdout] 208 |             UnaryOperator::Negation => {return Ok(TackyUnaryOperator::Negate)},
[INFO] [stdout]     |             ----------------------- matches some of the same values
[INFO] [stdout] 209 |             UnaryOperator::LogicalNot => {return Ok(TackyUnaryOperator::Not)}
[INFO] [stdout]     |             ------------------------- matches some of the same values
[INFO] [stdout] 210 |             UnaryOperator::Decrement => {return Ok(TackyUnaryOperator::Decrement)},
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] 211 |             UnaryOperator::Increment => {return Ok(TackyUnaryOperator::Increment)},
[INFO] [stdout] 212 |             _ => {return Err(TackyError::NotImplemented)}
[INFO] [stdout]     |             ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/tacky.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |             _ => {return Err(TackyError::ParserStructNotRecognised)}
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/tacky.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |             BinaryOperator::Add => {return Ok(TackyBinaryOperator::Add)},
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] 219 |             BinaryOperator::Subtract => {return Ok(TackyBinaryOperator::Subtract)},
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] 220 |             BinaryOperator::Multiply => {return Ok(TackyBinaryOperator::Multiply)},
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] 221 |             BinaryOperator::Divide => {return Ok(TackyBinaryOperator::Divide)},
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 235 |             _ => {return Err(TackyError::ParserStructNotRecognised)}
[INFO] [stdout]     |             ^ ...and 13 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Statement::If { .. }` not covered
[INFO] [stdout]   --> src/semantic_analysis.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |         match stmt {
[INFO] [stdout]    |               ^^^^ pattern `Statement::If { .. }` not covered
[INFO] [stdout]    |
[INFO] [stdout] note: `Statement` defined here
[INFO] [stdout]   --> src/parser.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub enum Statement {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     If{condition: Expression, then: Box<Statement>, else_stmt: Option<Box<Statement>>}
[INFO] [stdout]    |     -- not covered
[INFO] [stdout]    = note: the matched value is of type `Statement`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 80 ~             Statement::Return(expr) => {return Ok(Statement::Return(self.resolve_expr(expr)?))},
[INFO] [stdout] 81 ~             Statement::If { .. } => todo!(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ident`
[INFO] [stdout]   --> src/semantic_analysis.rs:87:40
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 if let Expression::Var(ident) = (*lhs).clone() {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret_t`
[INFO] [stdout]    --> src/flat_parser.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let ret_t = self.cur();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_ret_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/flat_parser.rs:281:13
[INFO] [stdout]     |
[INFO] [stdout] 281 |         let name = self.cur();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret_t`
[INFO] [stdout]    --> src/flat_parser.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let ret_t = self.cur();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_ret_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/flat_parser.rs:380:13
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let name = self.cur();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Keyword` in this scope
[INFO] [stdout]    --> src/parser.rs:276:24
[INFO] [stdout]     |
[INFO] [stdout] 276 |         Token::Keyword(Keyword::Return) => {
[INFO] [stdout]     |                        ^^^^^^^ use of undeclared type `Keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Keyword` in this scope
[INFO] [stdout]    --> src/parser.rs:280:24
[INFO] [stdout]     |
[INFO] [stdout] 280 |         Token::Keyword(Keyword::If) => {
[INFO] [stdout]     |                        ^^^^^^^ use of undeclared type `Keyword`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0061, E0063, E0308, E0425, E0433, E0574, E0599, E0624.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lexer` (lib) due to 128 previous errors; 30 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "8fff7b2a612b221770059914e23117dbd362325ed5fc1f8705d127cea5b5b1cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8fff7b2a612b221770059914e23117dbd362325ed5fc1f8705d127cea5b5b1cc", kill_on_drop: false }`
[INFO] [stdout] 8fff7b2a612b221770059914e23117dbd362325ed5fc1f8705d127cea5b5b1cc
