[INFO] cloning repository https://github.com/pratushrai0309/fox-lang [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pratushrai0309/fox-lang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpratushrai0309%2Ffox-lang", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpratushrai0309%2Ffox-lang'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] da496b6fb074173054b1606baec3d6cff9a70596 [INFO] linting pratushrai0309/fox-lang against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpratushrai0309%2Ffox-lang" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/pratushrai0309/fox-lang [INFO] finished tweaking git repo https://github.com/pratushrai0309/fox-lang [INFO] tweaked toml for git repo https://github.com/pratushrai0309/fox-lang written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/pratushrai0309/fox-lang on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/pratushrai0309/fox-lang 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b55e04dd712a73921ebe21644fadaea0802508539031a0024472a9ecb085e5eb [INFO] running `Command { std: "docker" "start" "-a" "b55e04dd712a73921ebe21644fadaea0802508539031a0024472a9ecb085e5eb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b55e04dd712a73921ebe21644fadaea0802508539031a0024472a9ecb085e5eb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b55e04dd712a73921ebe21644fadaea0802508539031a0024472a9ecb085e5eb", kill_on_drop: false }` [INFO] [stdout] b55e04dd712a73921ebe21644fadaea0802508539031a0024472a9ecb085e5eb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2712e2d93261e04429c79f7b144a3a37838bab330df86b54a6f8af33466fafc2 [INFO] running `Command { std: "docker" "start" "-a" "2712e2d93261e04429c79f7b144a3a37838bab330df86b54a6f8af33466fafc2", kill_on_drop: false }` [INFO] [stderr] Checking fox-lang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this `else` branch is empty [INFO] [stdout] --> src/scanner.rs:101:18 [INFO] [stdout] | [INFO] [stdout] 101 | }else{ [INFO] [stdout] | __________________^ [INFO] [stdout] 102 | | [INFO] [stdout] 103 | | } [INFO] [stdout] | |_________________^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_else [INFO] [stdout] = note: `#[warn(clippy::needless_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `else` branch is empty [INFO] [stdout] --> src/scanner.rs:101:18 [INFO] [stdout] | [INFO] [stdout] 101 | }else{ [INFO] [stdout] | __________________^ [INFO] [stdout] 102 | | [INFO] [stdout] 103 | | } [INFO] [stdout] | |_________________^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_else [INFO] [stdout] = note: `#[warn(clippy::needless_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `STRING` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | STRING, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `String` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RETRUN` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | RETRUN, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Retrun` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `VAR` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | VAR, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Var` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WHILE` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | WHILE, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `While` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EOF` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | EOF [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Eof` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/token.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | return format!("ttype: {:?},lexeme: {:?},literal: {:?},line: {:?}", self.ttype, self.lexeme, self.literal, self.line); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 - return format!("ttype: {:?},lexeme: {:?},literal: {:?},line: {:?}", self.ttype, self.lexeme, self.literal, self.line); [INFO] [stdout] 53 + format!("ttype: {:?},lexeme: {:?},literal: {:?},line: {:?}", self.ttype, self.lexeme, self.literal, self.line) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/scanner.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | self.current = self.current + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.current += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/scanner.rs:163:28 [INFO] [stdout] | [INFO] [stdout] 163 | if self.is_at_end(){ [INFO] [stdout] | ____________________________^ [INFO] [stdout] 164 | | false [INFO] [stdout] 165 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/scanner.rs:166:75 [INFO] [stdout] | [INFO] [stdout] 166 | else if self.source.chars().nth(self.current).unwrap() != expected{ [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 167 | | false [INFO] [stdout] 168 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/error.rs:16:29 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn report(&self, loc: &String) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 16 - pub fn report(&self, loc: &String) { [INFO] [stdout] 16 + pub fn report(&self, loc: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `STRING` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | STRING, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `String` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/parser.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | Ok(self.expression_statement()?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 95 - Ok(self.expression_statement()?) [INFO] [stdout] 95 + self.expression_statement() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/parser.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | return Ok(self.print_statement()?); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 81 - return Ok(self.print_statement()?); [INFO] [stdout] 81 + return self.print_statement(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/parser.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | return Ok(self.if_statement()?); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 87 - return Ok(self.if_statement()?); [INFO] [stdout] 87 + return self.if_statement(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RETRUN` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | RETRUN, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Retrun` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `VAR` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | VAR, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Var` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WHILE` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | WHILE, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `While` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EOF` contains a capitalized acronym [INFO] [stdout] --> src/token_type.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | EOF [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Eof` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/token.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | return format!("ttype: {:?},lexeme: {:?},literal: {:?},line: {:?}", self.ttype, self.lexeme, self.literal, self.line); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 - return format!("ttype: {:?},lexeme: {:?},literal: {:?},line: {:?}", self.ttype, self.lexeme, self.literal, self.line); [INFO] [stdout] 53 + format!("ttype: {:?},lexeme: {:?},literal: {:?},line: {:?}", self.ttype, self.lexeme, self.literal, self.line) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:105:10 [INFO] [stdout] | [INFO] [stdout] 105 | if !self.consume(TokenType::RightParen, String::from("Expect ')' after if condition.")).is_ok(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.consume(TokenType::RightParen, String::from("Expect ')' after if condition.")).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/parser.rs:117:33 [INFO] [stdout] | [INFO] [stdout] 117 | fn block(&mut self) -> Result>, LoxError>{ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] = note: `#[warn(clippy::vec_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `name` after checking its variant with `is_err` [INFO] [stdout] --> src/parser.rs:172:40 [INFO] [stdout] | [INFO] [stdout] 159 | if name.is_err(){ [INFO] [stdout] | ---------------- help: try: `if let Ok() = name` [INFO] [stdout] ... [INFO] [stdout] 172 | return Ok(Stmt::Var(Var{ name: name.unwrap(), initializer: Box::new(initializer.unwrap()) })); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | return Err(LoxError::error(self.previous().line, self.current, String::from("Expect ';' after variable declaration"))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 170 - return Err(LoxError::error(self.previous().line, self.current, String::from("Expect ';' after variable declaration"))); [INFO] [stdout] 170 + Err(LoxError::error(self.previous().line, self.current, String::from("Expect ';' after variable declaration"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | return Ok(Stmt::Var(Var{ name: name.unwrap(), initializer: Box::new(initializer.unwrap()) })); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 172 - return Ok(Stmt::Var(Var{ name: name.unwrap(), initializer: Box::new(initializer.unwrap()) })); [INFO] [stdout] 172 + Ok(Stmt::Var(Var{ name: name.unwrap(), initializer: Box::new(initializer.unwrap()) })) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/scanner.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | self.current = self.current + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.current += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/scanner.rs:163:28 [INFO] [stdout] | [INFO] [stdout] 163 | if self.is_at_end(){ [INFO] [stdout] | ____________________________^ [INFO] [stdout] 164 | | false [INFO] [stdout] 165 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/scanner.rs:166:75 [INFO] [stdout] | [INFO] [stdout] 166 | else if self.source.chars().nth(self.current).unwrap() != expected{ [INFO] [stdout] | ___________________________________________________________________________^ [INFO] [stdout] 167 | | false [INFO] [stdout] 168 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/error.rs:16:29 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn report(&self, loc: &String) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 16 - pub fn report(&self, loc: &String) { [INFO] [stdout] 16 + pub fn report(&self, loc: &str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/parser.rs:215:70 [INFO] [stdout] | [INFO] [stdout] 215 | return Err(LoxError::error(self.previous().line, self.current, String::from(format!("Expect {kind} name.")))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Expect {kind} name.")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/parser.rs:218:70 [INFO] [stdout] | [INFO] [stdout] 218 | return Err(LoxError::error(self.previous().line, self.current, String::from(format!("Expect '(' after {kind} name.")))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Expect '(' after {kind} name.")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/parser.rs:241:70 [INFO] [stdout] | [INFO] [stdout] 241 | return Err(LoxError::error(self.previous().line, self.current, String::from(format!("Expect before {kind} body.")))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Expect before {kind} body.")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/parser.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | Ok(self.expression_statement()?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 95 - Ok(self.expression_statement()?) [INFO] [stdout] 95 + self.expression_statement() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/parser.rs:81:14 [INFO] [stdout] | [INFO] [stdout] 81 | return Ok(self.print_statement()?); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 81 - return Ok(self.print_statement()?); [INFO] [stdout] 81 + return self.print_statement(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/parser.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | return Ok(self.if_statement()?); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 87 - return Ok(self.if_statement()?); [INFO] [stdout] 87 + return self.if_statement(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:105:10 [INFO] [stdout] | [INFO] [stdout] 105 | if !self.consume(TokenType::RightParen, String::from("Expect ')' after if condition.")).is_ok(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.consume(TokenType::RightParen, String::from("Expect ')' after if condition.")).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/parser.rs:117:33 [INFO] [stdout] | [INFO] [stdout] 117 | fn block(&mut self) -> Result>, LoxError>{ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] = note: `#[warn(clippy::vec_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `name` after checking its variant with `is_err` [INFO] [stdout] --> src/parser.rs:172:40 [INFO] [stdout] | [INFO] [stdout] 159 | if name.is_err(){ [INFO] [stdout] | ---------------- help: try: `if let Ok() = name` [INFO] [stdout] ... [INFO] [stdout] 172 | return Ok(Stmt::Var(Var{ name: name.unwrap(), initializer: Box::new(initializer.unwrap()) })); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | return Err(LoxError::error(self.previous().line, self.current, String::from("Expect ';' after variable declaration"))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 170 - return Err(LoxError::error(self.previous().line, self.current, String::from("Expect ';' after variable declaration"))); [INFO] [stdout] 170 + Err(LoxError::error(self.previous().line, self.current, String::from("Expect ';' after variable declaration"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | return Ok(Stmt::Var(Var{ name: name.unwrap(), initializer: Box::new(initializer.unwrap()) })); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 172 - return Ok(Stmt::Var(Var{ name: name.unwrap(), initializer: Box::new(initializer.unwrap()) })); [INFO] [stdout] 172 + Ok(Stmt::Var(Var{ name: name.unwrap(), initializer: Box::new(initializer.unwrap()) })) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/expr.rs:49:20 [INFO] [stdout] | [INFO] [stdout] 49 | pub arguments: Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/parser.rs:215:70 [INFO] [stdout] | [INFO] [stdout] 215 | return Err(LoxError::error(self.previous().line, self.current, String::from(format!("Expect {kind} name.")))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Expect {kind} name.")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/parser.rs:218:70 [INFO] [stdout] | [INFO] [stdout] 218 | return Err(LoxError::error(self.previous().line, self.current, String::from(format!("Expect '(' after {kind} name.")))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Expect '(' after {kind} name.")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/stmt.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 22 | pub statements: Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/stmt.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | pub body: Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/parser.rs:241:70 [INFO] [stdout] | [INFO] [stdout] 241 | return Err(LoxError::error(self.previous().line, self.current, String::from(format!("Expect before {kind} body.")))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Expect before {kind} body.")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/vm/chunk.rs:56:33 [INFO] [stdout] | [INFO] [stdout] 56 | fn get_index(vec: &Vec, x: T) -> usize{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 - fn get_index(vec: &Vec, x: T) -> usize{ [INFO] [stdout] 56 + fn get_index(vec: &[T], x: T) -> usize{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/vm/debug.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | print!("{name}\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] = note: `#[warn(clippy::print_with_newline)]` on by default [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 39 - print!("{name}\n"); [INFO] [stdout] 39 + println!("{name}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/vm/debug.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | print!("\n"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 47 - print!("\n"); [INFO] [stdout] 47 + println!(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/vm/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod vm; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same prefix: `Interpret` [INFO] [stdout] --> src/vm/vm.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / pub enum InterpretResult{ [INFO] [stdout] 10 | | InterpretOk, [INFO] [stdout] 11 | | InterpretCompileError, [INFO] [stdout] 12 | | InterpretRuntimeError [INFO] [stdout] 13 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/vm/vm.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | print!("\n"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 45 - print!("\n"); [INFO] [stdout] 45 + println!(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/expr.rs:49:20 [INFO] [stdout] | [INFO] [stdout] 49 | pub arguments: Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/stmt.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 22 | pub statements: Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Vec` is already on the heap, the boxing is unnecessary [INFO] [stdout] --> src/stmt.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 42 | pub body: Vec> [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `Vec` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_box [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/vm/chunk.rs:56:33 [INFO] [stdout] | [INFO] [stdout] 56 | fn get_index(vec: &Vec, x: T) -> usize{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 - fn get_index(vec: &Vec, x: T) -> usize{ [INFO] [stdout] 56 + fn get_index(vec: &[T], x: T) -> usize{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/vm/debug.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | print!("{name}\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] = note: `#[warn(clippy::print_with_newline)]` on by default [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 39 - print!("{name}\n"); [INFO] [stdout] 39 + println!("{name}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/vm/debug.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | print!("\n"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 47 - print!("\n"); [INFO] [stdout] 47 + println!(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/vm/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod vm; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same prefix: `Interpret` [INFO] [stdout] --> src/vm/vm.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / pub enum InterpretResult{ [INFO] [stdout] 10 | | InterpretOk, [INFO] [stdout] 11 | | InterpretCompileError, [INFO] [stdout] 12 | | InterpretRuntimeError [INFO] [stdout] 13 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/vm/vm.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | print!("\n"); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 45 - print!("\n"); [INFO] [stdout] 45 + println!(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.50s [INFO] running `Command { std: "docker" "inspect" "2712e2d93261e04429c79f7b144a3a37838bab330df86b54a6f8af33466fafc2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2712e2d93261e04429c79f7b144a3a37838bab330df86b54a6f8af33466fafc2", kill_on_drop: false }` [INFO] [stdout] 2712e2d93261e04429c79f7b144a3a37838bab330df86b54a6f8af33466fafc2