[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] checking jaycampbellluo/c_compiler against try#63132bd615c9bf75e93af8405d00064212331708 for pr-153975 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaycampbellluo%2Fc_compiler" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/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-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jaycampbellluo/c_compiler on toolchain 63132bd615c9bf75e93af8405d00064212331708 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+63132bd615c9bf75e93af8405d00064212331708" "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" "+63132bd615c9bf75e93af8405d00064212331708" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+63132bd615c9bf75e93af8405d00064212331708" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 039ab766991fd6a1077b30ef03819610769eccde152104b3f5e855976a130374 [INFO] running `Command { std: "docker" "start" "-a" "039ab766991fd6a1077b30ef03819610769eccde152104b3f5e855976a130374", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "039ab766991fd6a1077b30ef03819610769eccde152104b3f5e855976a130374", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "039ab766991fd6a1077b30ef03819610769eccde152104b3f5e855976a130374", kill_on_drop: false }` [INFO] [stdout] 039ab766991fd6a1077b30ef03819610769eccde152104b3f5e855976a130374 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+63132bd615c9bf75e93af8405d00064212331708" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3911508bbe72a03e6ad7a2b05173a6d8a5debc3deaa5782d5218dcdc3ea8ec51 [INFO] running `Command { std: "docker" "start" "-a" "3911508bbe72a03e6ad7a2b05173a6d8a5debc3deaa5782d5218dcdc3ea8ec51", kill_on_drop: false }` [INFO] [stderr] Checking 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/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 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 `;`, 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: 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 { [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 { [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 { [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; 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] 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 { [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 { [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 { [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; 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] 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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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[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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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 { [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 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 { [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/63132bd615c9bf75e93af8405d00064212331708/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[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/63132bd615c9bf75e93af8405d00064212331708/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[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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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[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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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/63132bd615c9bf75e93af8405d00064212331708/library/core/src/iter/traits/iterator.rs:41: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[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` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Statement` [INFO] [stdout] found struct `Vec` [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) ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ -------------------- [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` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Statement` [INFO] [stdout] found struct `Vec` [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) ... [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] 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 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: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] 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] 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: 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: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: `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: `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: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: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: 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, else_stmt: Option>} [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: 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: 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: 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, else_stmt: Option>} [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] 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] [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] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `lexer` (lib test) due to 128 previous errors; 30 warnings emitted [INFO] running `Command { std: "docker" "inspect" "3911508bbe72a03e6ad7a2b05173a6d8a5debc3deaa5782d5218dcdc3ea8ec51", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3911508bbe72a03e6ad7a2b05173a6d8a5debc3deaa5782d5218dcdc3ea8ec51", kill_on_drop: false }` [INFO] [stdout] 3911508bbe72a03e6ad7a2b05173a6d8a5debc3deaa5782d5218dcdc3ea8ec51