[INFO] cloning repository https://github.com/Garzzza7/r_lox [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Garzzza7/r_lox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGarzzza7%2Fr_lox", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGarzzza7%2Fr_lox'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9d22869c46854079f100687dc921677726a2b0cb [INFO] checking Garzzza7/r_lox against master#385fa9d845dd326c6bbfd58c22244215e431948a for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGarzzza7%2Fr_lox" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Garzzza7/r_lox on toolchain 385fa9d845dd326c6bbfd58c22244215e431948a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Garzzza7/r_lox [INFO] finished tweaking git repo https://github.com/Garzzza7/r_lox [INFO] tweaked toml for git repo https://github.com/Garzzza7/r_lox written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/Garzzza7/r_lox 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" "+385fa9d845dd326c6bbfd58c22244215e431948a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded input-stream v0.3.0 [INFO] [stderr] Downloaded object v0.32.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ca6a6f3217d52eaa427ac84fd0d1f08c57725f1478cd8f53498cee635033c73b [INFO] running `Command { std: "docker" "start" "-a" "ca6a6f3217d52eaa427ac84fd0d1f08c57725f1478cd8f53498cee635033c73b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ca6a6f3217d52eaa427ac84fd0d1f08c57725f1478cd8f53498cee635033c73b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ca6a6f3217d52eaa427ac84fd0d1f08c57725f1478cd8f53498cee635033c73b", kill_on_drop: false }` [INFO] [stdout] ca6a6f3217d52eaa427ac84fd0d1f08c57725f1478cd8f53498cee635033c73b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5a23bd736bd61aaddc9bc54f5eca2ddb9afa5902e4f292001ce806042391af60 [INFO] running `Command { std: "docker" "start" "-a" "5a23bd736bd61aaddc9bc54f5eca2ddb9afa5902e4f292001ce806042391af60", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Compiling unicode-xid v0.2.4 [INFO] [stderr] Checking gimli v0.28.0 [INFO] [stderr] Checking miniz_oxide v0.7.1 [INFO] [stderr] Checking rustc-demangle v0.1.23 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking object v0.32.0 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Compiling backtrace v0.3.69 [INFO] [stderr] Checking addr2line v0.21.0 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Checking input-stream v0.3.0 [INFO] [stderr] Checking r_lox v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `f32::consts::E` [INFO] [stdout] --> src/scanner.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt::Debug, f32::consts::E}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LEFT_PAREN` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftParen` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RIGHT_PAREN` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightParen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LEFT_BRACE` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:6:30 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftBrace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RIGHT_BRACE` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:6:42 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightBrace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `BANG_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | BANG, BANG_EQUAL, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `BangEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `EQUAL_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | EQUAL, EQUAL_EQUAL, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EqualEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GREATER_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | GREATER, GREATER_EQUAL, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GreaterEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LESS_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | LESS, LESS_EQUAL, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LessEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:141:19 [INFO] [stdout] | [INFO] [stdout] 141 | if(self.matches('/')){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 141 - if(self.matches('/')){ [INFO] [stdout] 141 + if self.matches('/') { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:170:19 [INFO] [stdout] | [INFO] [stdout] 170 | if(Scanner::isDigit(c)){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 170 - if(Scanner::isDigit(c)){ [INFO] [stdout] 170 + if Scanner::isDigit(c) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:215:11 [INFO] [stdout] | [INFO] [stdout] 215 | if(self.peek()=='.'&&Scanner::isDigit(self.peekNext())){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 215 - if(self.peek()=='.'&&Scanner::isDigit(self.peekNext())){ [INFO] [stdout] 215 + if self.peek()=='.'&&Scanner::isDigit(self.peekNext()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:235:11 [INFO] [stdout] | [INFO] [stdout] 235 | if(self.peek()=='\n'){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 235 - if(self.peek()=='\n'){ [INFO] [stdout] 235 + if self.peek()=='\n' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:238:11 [INFO] [stdout] | [INFO] [stdout] 238 | if(self.isAtEnd()){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 238 - if(self.isAtEnd()){ [INFO] [stdout] 238 + if self.isAtEnd() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:247:11 [INFO] [stdout] | [INFO] [stdout] 247 | if(self.isAtEnd()){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 247 - if(self.isAtEnd()){ [INFO] [stdout] 247 + if self.isAtEnd() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `f32::consts::E` [INFO] [stdout] --> src/scanner.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt::Debug, f32::consts::E}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LEFT_PAREN` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftParen` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RIGHT_PAREN` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightParen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LEFT_BRACE` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:6:30 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LeftBrace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RIGHT_BRACE` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:6:42 [INFO] [stdout] | [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `RightBrace` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `BANG_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | BANG, BANG_EQUAL, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `BangEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `EQUAL_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | EQUAL, EQUAL_EQUAL, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EqualEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GREATER_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | GREATER, GREATER_EQUAL, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `GreaterEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LESS_EQUAL` should have an upper camel case name [INFO] [stdout] --> src/scanner.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | LESS, LESS_EQUAL, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `LessEqual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:141:19 [INFO] [stdout] | [INFO] [stdout] 141 | if(self.matches('/')){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 141 - if(self.matches('/')){ [INFO] [stdout] 141 + if self.matches('/') { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:170:19 [INFO] [stdout] | [INFO] [stdout] 170 | if(Scanner::isDigit(c)){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 170 - if(Scanner::isDigit(c)){ [INFO] [stdout] 170 + if Scanner::isDigit(c) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:215:11 [INFO] [stdout] | [INFO] [stdout] 215 | if(self.peek()=='.'&&Scanner::isDigit(self.peekNext())){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 215 - if(self.peek()=='.'&&Scanner::isDigit(self.peekNext())){ [INFO] [stdout] 215 + if self.peek()=='.'&&Scanner::isDigit(self.peekNext()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:235:11 [INFO] [stdout] | [INFO] [stdout] 235 | if(self.peek()=='\n'){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 235 - if(self.peek()=='\n'){ [INFO] [stdout] 235 + if self.peek()=='\n' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:238:11 [INFO] [stdout] | [INFO] [stdout] 238 | if(self.isAtEnd()){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 238 - if(self.isAtEnd()){ [INFO] [stdout] 238 + if self.isAtEnd() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/scanner.rs:247:11 [INFO] [stdout] | [INFO] [stdout] 247 | if(self.isAtEnd()){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 247 - if(self.isAtEnd()){ [INFO] [stdout] 247 + if self.isAtEnd() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `error` is never used [INFO] [stdout] --> src/main.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn error(line : i32, message: &String) -> (){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `report` is never used [INFO] [stdout] --> src/main.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 66 | fn report(line: i32, w: &String , message: &String) ->() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/scanner.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum TokenType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 5 | // Single-character tokens. [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 7 | COMMA, DOT, MINUS, PLUS, SEMICOLON, SLASH, STAR, [INFO] [stdout] | ^^^^^ ^^^ ^^^^^ ^^^^ ^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stdout] 8 | // One or two character tokens. [INFO] [stdout] 9 | BANG, BANG_EQUAL, [INFO] [stdout] | ^^^^ ^^^^^^^^^^ [INFO] [stdout] 10 | EQUAL, EQUAL_EQUAL, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 11 | GREATER, GREATER_EQUAL, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 12 | LESS, LESS_EQUAL, [INFO] [stdout] | ^^^^ ^^^^^^^^^^ [INFO] [stdout] 13 | // Literals. [INFO] [stdout] 14 | IDENTIFIER, STRING, NUMBER, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | EOF [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Indentifier`, `Str`, and `Number` are never constructed [INFO] [stdout] --> src/scanner.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub enum Literal { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 22 | Indentifier(String), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 23 | Str(String), [INFO] [stdout] | ^^^ [INFO] [stdout] 24 | Number(f64), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `source`, `tokens`, `start`, `current`, `line`, and `keywords` are never read [INFO] [stdout] --> src/scanner.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 45 | struct Scanner { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 46 | source: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 47 | tokens: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 48 | start: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 49 | current: usize, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 50 | line: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 51 | keywords:HashMap, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/scanner.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 81 | impl Scanner { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 82 | fn scanTokens(&mut self){ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn isAtEnd(&mut self)->bool{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | fn scanToken(&mut self) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | fn isAlphaNumeric(c:char)->bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn isAlpha(c:char)->bool{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | fn indentifier(&mut self)->(){ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | fn isDigit(c:char)->bool{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn number(&mut self)->(){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | fn peekNext(&mut self)->char{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | fn string(&mut self) -> (){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | fn peek(&mut self) -> char{ [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | fn matches(&mut self,expected:char) -> bool{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | fn addToken(&mut self, tt: TokenType) -> () { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | fn addTokenLiteral(&mut self, tt: TokenType, literal: Option) -> (){ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | fn advance(&mut self) -> char { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `hadError` should have an upper case name [INFO] [stdout] --> src/main.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | static mut hadError: bool = false; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `HAD_ERROR` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | stdin.read_line(&mut line); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 43 | let _ = stdin.read_line(&mut line); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `scanTokens` should have a snake case name [INFO] [stdout] --> src/scanner.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | fn scanTokens(&mut self){ [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `scan_tokens` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isAtEnd` should have a snake case name [INFO] [stdout] --> src/scanner.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | fn isAtEnd(&mut self)->bool{ [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `is_at_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `scanToken` should have a snake case name [INFO] [stdout] --> src/scanner.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | fn scanToken(&mut self) -> () { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `scan_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isAlphaNumeric` should have a snake case name [INFO] [stdout] --> src/scanner.rs:180:8 [INFO] [stdout] | [INFO] [stdout] 180 | fn isAlphaNumeric(c:char)->bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `is_alpha_numeric` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isAlpha` should have a snake case name [INFO] [stdout] --> src/scanner.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 183 | fn isAlpha(c:char)->bool{ [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `is_alpha` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isDigit` should have a snake case name [INFO] [stdout] --> src/scanner.rs:208:8 [INFO] [stdout] | [INFO] [stdout] 208 | fn isDigit(c:char)->bool{ [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `is_digit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `peekNext` should have a snake case name [INFO] [stdout] --> src/scanner.rs:227:8 [INFO] [stdout] | [INFO] [stdout] 227 | fn peekNext(&mut self)->char{ [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `peek_next` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `addToken` should have a snake case name [INFO] [stdout] --> src/scanner.rs:262:8 [INFO] [stdout] | [INFO] [stdout] 262 | fn addToken(&mut self, tt: TokenType) -> () { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `add_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `addTokenLiteral` should have a snake case name [INFO] [stdout] --> src/scanner.rs:265:8 [INFO] [stdout] | [INFO] [stdout] 265 | fn addTokenLiteral(&mut self, tt: TokenType, literal: Option) -> (){ [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `add_token_literal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 32 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `error` is never used [INFO] [stdout] --> src/main.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn error(line : i32, message: &String) -> (){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `report` is never used [INFO] [stdout] --> src/main.rs:66:4 [INFO] [stdout] | [INFO] [stdout] 66 | fn report(line: i32, w: &String , message: &String) ->() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/scanner.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum TokenType { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 5 | // Single-character tokens. [INFO] [stdout] 6 | LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 7 | COMMA, DOT, MINUS, PLUS, SEMICOLON, SLASH, STAR, [INFO] [stdout] | ^^^^^ ^^^ ^^^^^ ^^^^ ^^^^^^^^^ ^^^^^ ^^^^ [INFO] [stdout] 8 | // One or two character tokens. [INFO] [stdout] 9 | BANG, BANG_EQUAL, [INFO] [stdout] | ^^^^ ^^^^^^^^^^ [INFO] [stdout] 10 | EQUAL, EQUAL_EQUAL, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 11 | GREATER, GREATER_EQUAL, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 12 | LESS, LESS_EQUAL, [INFO] [stdout] | ^^^^ ^^^^^^^^^^ [INFO] [stdout] 13 | // Literals. [INFO] [stdout] 14 | IDENTIFIER, STRING, NUMBER, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | EOF [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Indentifier`, `Str`, and `Number` are never constructed [INFO] [stdout] --> src/scanner.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub enum Literal { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 22 | Indentifier(String), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 23 | Str(String), [INFO] [stdout] | ^^^ [INFO] [stdout] 24 | Number(f64), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `source`, `tokens`, `start`, `current`, `line`, and `keywords` are never read [INFO] [stdout] --> src/scanner.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 45 | struct Scanner { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 46 | source: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 47 | tokens: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 48 | start: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 49 | current: usize, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 50 | line: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 51 | keywords:HashMap, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/scanner.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 81 | impl Scanner { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 82 | fn scanTokens(&mut self){ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn isAtEnd(&mut self)->bool{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | fn scanToken(&mut self) -> () { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | fn isAlphaNumeric(c:char)->bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn isAlpha(c:char)->bool{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | fn indentifier(&mut self)->(){ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | fn isDigit(c:char)->bool{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn number(&mut self)->(){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | fn peekNext(&mut self)->char{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | fn string(&mut self) -> (){ [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | fn peek(&mut self) -> char{ [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | fn matches(&mut self,expected:char) -> bool{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | fn addToken(&mut self, tt: TokenType) -> () { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | fn addTokenLiteral(&mut self, tt: TokenType, literal: Option) -> (){ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | fn advance(&mut self) -> char { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `hadError` should have an upper case name [INFO] [stdout] --> src/main.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | static mut hadError: bool = false; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `HAD_ERROR` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | stdin.read_line(&mut line); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 43 | let _ = stdin.read_line(&mut line); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `scanTokens` should have a snake case name [INFO] [stdout] --> src/scanner.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | fn scanTokens(&mut self){ [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `scan_tokens` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isAtEnd` should have a snake case name [INFO] [stdout] --> src/scanner.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 96 | fn isAtEnd(&mut self)->bool{ [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `is_at_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `scanToken` should have a snake case name [INFO] [stdout] --> src/scanner.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | fn scanToken(&mut self) -> () { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `scan_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isAlphaNumeric` should have a snake case name [INFO] [stdout] --> src/scanner.rs:180:8 [INFO] [stdout] | [INFO] [stdout] 180 | fn isAlphaNumeric(c:char)->bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `is_alpha_numeric` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isAlpha` should have a snake case name [INFO] [stdout] --> src/scanner.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 183 | fn isAlpha(c:char)->bool{ [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `is_alpha` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isDigit` should have a snake case name [INFO] [stdout] --> src/scanner.rs:208:8 [INFO] [stdout] | [INFO] [stdout] 208 | fn isDigit(c:char)->bool{ [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `is_digit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `peekNext` should have a snake case name [INFO] [stdout] --> src/scanner.rs:227:8 [INFO] [stdout] | [INFO] [stdout] 227 | fn peekNext(&mut self)->char{ [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `peek_next` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `addToken` should have a snake case name [INFO] [stdout] --> src/scanner.rs:262:8 [INFO] [stdout] | [INFO] [stdout] 262 | fn addToken(&mut self, tt: TokenType) -> () { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `add_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `addTokenLiteral` should have a snake case name [INFO] [stdout] --> src/scanner.rs:265:8 [INFO] [stdout] | [INFO] [stdout] 265 | fn addTokenLiteral(&mut self, tt: TokenType, literal: Option) -> (){ [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `add_token_literal` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 32 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.47s [INFO] running `Command { std: "docker" "inspect" "5a23bd736bd61aaddc9bc54f5eca2ddb9afa5902e4f292001ce806042391af60", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5a23bd736bd61aaddc9bc54f5eca2ddb9afa5902e4f292001ce806042391af60", kill_on_drop: false }` [INFO] [stdout] 5a23bd736bd61aaddc9bc54f5eca2ddb9afa5902e4f292001ce806042391af60