[INFO] cloning repository https://github.com/4A6F6F6E61/russembly [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/4A6F6F6E61/russembly" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4A6F6F6E61%2Frussembly", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4A6F6F6E61%2Frussembly'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 90650ead976ce1e505eb6a8f953995051c456ea2 [INFO] linting 4A6F6F6E61/russembly against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4A6F6F6E61%2Frussembly" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/4A6F6F6E61/russembly [INFO] finished tweaking git repo https://github.com/4A6F6F6E61/russembly [INFO] tweaked toml for git repo https://github.com/4A6F6F6E61/russembly written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/4A6F6F6E61/russembly 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/4A6F6F6E61/russembly 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] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.82 [INFO] [stderr] Downloaded quote v1.0.21 [INFO] [stderr] Downloaded proc-macro2 v1.0.43 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.82 [INFO] [stderr] Downloaded num v0.4.0 [INFO] [stderr] Downloaded num-iter v0.1.43 [INFO] [stderr] Downloaded custom_derive v0.1.7 [INFO] [stderr] Downloaded terminal_size v0.1.17 [INFO] [stderr] Downloaded number_prefix v0.4.0 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.82 [INFO] [stderr] Downloaded console v0.15.1 [INFO] [stderr] Downloaded colored v2.0.0 [INFO] [stderr] Downloaded conv v0.3.3 [INFO] [stderr] Downloaded indicatif v0.17.1 [INFO] [stderr] Downloaded bumpalo v3.11.0 [INFO] [stderr] Downloaded num-bigint v0.4.3 [INFO] [stderr] Downloaded serde v1.0.145 [INFO] [stderr] Downloaded serde_derive v1.0.145 [INFO] [stderr] Downloaded syn v1.0.99 [INFO] [stderr] Downloaded wasm-bindgen v0.2.82 [INFO] [stderr] Downloaded encode_unicode v0.3.6 [INFO] [stderr] Downloaded unicode-ident v1.0.3 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.82 [INFO] [stderr] Downloaded unicode-width v0.1.10 [INFO] [stderr] Downloaded once_cell v1.14.0 [INFO] [stderr] Downloaded num-complex v0.4.2 [INFO] [stderr] Downloaded num-rational v0.4.1 [INFO] [stderr] Downloaded libc v0.2.132 [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 877cdc4fc6adcd3695c55bbf451137272f23f11672ac15a7ee5c0fee6d79a7a8 [INFO] running `Command { std: "docker" "start" "-a" "877cdc4fc6adcd3695c55bbf451137272f23f11672ac15a7ee5c0fee6d79a7a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "877cdc4fc6adcd3695c55bbf451137272f23f11672ac15a7ee5c0fee6d79a7a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "877cdc4fc6adcd3695c55bbf451137272f23f11672ac15a7ee5c0fee6d79a7a8", kill_on_drop: false }` [INFO] [stdout] 877cdc4fc6adcd3695c55bbf451137272f23f11672ac15a7ee5c0fee6d79a7a8 [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 829b21a6a88a601dffe1aedf23bc9d985be89c2eea45c9d370325f965f5c4164 [INFO] running `Command { std: "docker" "start" "-a" "829b21a6a88a601dffe1aedf23bc9d985be89c2eea45c9d370325f965f5c4164", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling libc v0.2.132 [INFO] [stderr] Compiling proc-macro2 v1.0.43 [INFO] [stderr] Compiling unicode-ident v1.0.3 [INFO] [stderr] Compiling quote v1.0.21 [INFO] [stderr] Compiling syn v1.0.99 [INFO] [stderr] Compiling serde_derive v1.0.145 [INFO] [stderr] Compiling serde v1.0.145 [INFO] [stderr] Checking unicode-width v0.1.10 [INFO] [stderr] Checking once_cell v1.14.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking number_prefix v0.4.0 [INFO] [stderr] Checking custom_derive v0.1.7 [INFO] [stderr] Checking conv v0.3.3 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling num-bigint v0.4.3 [INFO] [stderr] Compiling num-iter v0.1.43 [INFO] [stderr] Compiling num-rational v0.4.1 [INFO] [stderr] Checking terminal_size v0.1.17 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking colored v2.0.0 [INFO] [stderr] Checking console v0.15.1 [INFO] [stderr] Checking indicatif v0.17.1 [INFO] [stderr] Checking num-complex v0.4.2 [INFO] [stderr] Checking num v0.4.0 [INFO] [stderr] Checking russembly v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/cpu/mod.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | use crate::cpu::{printx, PrintT}; [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] = note: `#[warn(clippy::crate_in_macro_def)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `crate` references the macro call's crate [INFO] [stdout] --> src/cpu/mod.rs:98:13 [INFO] [stdout] | [INFO] [stdout] 98 | use crate::cpu::{printx, PrintT}; [INFO] [stdout] | ^^^^^ help: to reference the macro definition's crate, use: `$crate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def [INFO] [stdout] = note: `#[warn(clippy::crate_in_macro_def)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:11:26 [INFO] [stdout] | [INFO] [stdout] 11 | output.push_str(&format!("Port: {{\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Port: {\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:20:26 [INFO] [stdout] | [INFO] [stdout] 20 | output.push_str(&format!("\n}}\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"\n}\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:22:26 [INFO] [stdout] | [INFO] [stdout] 22 | output.push_str(&format!("Jump Locations: {{\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Jump Locations: {\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:26:26 [INFO] [stdout] | [INFO] [stdout] 26 | output.push_str(&format!("}}\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"}\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:30:26 [INFO] [stdout] | [INFO] [stdout] 30 | output.push_str(&format!("Vars: {{\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Vars: {\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:34:26 [INFO] [stdout] | [INFO] [stdout] 34 | output.push_str(&format!("}}\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"}\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CPU` contains a capitalized acronym [INFO] [stdout] --> src/cpu/main.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct CPU { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Cpu` [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: unneeded `return` statement [INFO] [stdout] --> src/cpu/main.rs:245:9 [INFO] [stdout] | [INFO] [stdout] 245 | return output; [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] 245 - return output; [INFO] [stdout] 245 + output [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/cpu/main.rs:194:9 [INFO] [stdout] | [INFO] [stdout] 194 | output.push_str("{"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `output.push('{')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/cpu/main.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | output.push_str("}"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `output.push('}')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/cpu/main.rs:272:32 [INFO] [stdout] | [INFO] [stdout] 272 | value: x.value.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `x.value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `strings` [INFO] [stdout] --> src/cpu/main.rs:321:18 [INFO] [stdout] | [INFO] [stdout] 321 | for i in 0..strings.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 321 - for i in 0..strings.len() { [INFO] [stdout] 321 + for (i, ) in strings.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `lines` [INFO] [stdout] --> src/cpu/main.rs:378:18 [INFO] [stdout] | [INFO] [stdout] 378 | for i in 0..(lines.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 378 - for i in 0..(lines.len()) { [INFO] [stdout] 378 + for (i, ) in lines.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/cpu/main.rs:415:9 [INFO] [stdout] | [INFO] [stdout] 415 | / match token.value.as_str() { [INFO] [stdout] ... | [INFO] [stdout] 476 | | _ => {} [INFO] [stdout] 477 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 415 ~ if token.value.as_str() == "let" { [INFO] [stdout] 416 + let nt = match token_iter.next() { [INFO] [stdout] 417 + Some(x) => x, [INFO] [stdout] 418 + None => { [INFO] [stdout] 419 + cpu_error(); [INFO] [stdout] 420 + log!(Error, "Expected Arguments after let"); [INFO] [stdout] 421 + return; [INFO] [stdout] 422 + } [INFO] [stdout] 423 + }; [INFO] [stdout] 424 + let var_name = match nt.token_type { [INFO] [stdout] 425 + TokenType::VarName => nt.value.as_str(), [INFO] [stdout] 426 + _ => { [INFO] [stdout] 427 + log!(Error, "Expected variable name"); [INFO] [stdout] 428 + cpu_error(); [INFO] [stdout] 429 + return; [INFO] [stdout] 430 + } [INFO] [stdout] 431 + }; [INFO] [stdout] 432 + if let Some(nt) = token_iter.next() { [INFO] [stdout] 433 + match nt.token_type { [INFO] [stdout] 434 + TokenType::Comma => { /* Do nothing, just for checking*/ } [INFO] [stdout] 435 + _ => { [INFO] [stdout] 436 + cpu_error(); [INFO] [stdout] 437 + log!(Error, "Expected Comma"); [INFO] [stdout] 438 + } [INFO] [stdout] 439 + } [INFO] [stdout] 440 + } else { [INFO] [stdout] 441 + cpu_error(); [INFO] [stdout] 442 + log!(Error, "Expected Comma"); [INFO] [stdout] 443 + } [INFO] [stdout] 444 + if let Some(nt) = token_iter.next() { [INFO] [stdout] 445 + match nt.token_type { [INFO] [stdout] 446 + TokenType::String => { [INFO] [stdout] 447 + self.vars.push(Var::String(StringVar { [INFO] [stdout] 448 + name: var_name.to_string(), [INFO] [stdout] 449 + value: nt.value.clone(), [INFO] [stdout] 450 + })); [INFO] [stdout] 451 + } [INFO] [stdout] 452 + TokenType::Number(x) => { [INFO] [stdout] 453 + self.vars.push(Var::Number(NumberVar { [INFO] [stdout] 454 + name: var_name.to_string(), [INFO] [stdout] 455 + value: x, [INFO] [stdout] 456 + })); [INFO] [stdout] 457 + } [INFO] [stdout] 458 + _ => { [INFO] [stdout] 459 + printx( [INFO] [stdout] 460 + PrintT::Error, [INFO] [stdout] 461 + "You can only store Strings and Numbers inside a Variable", [INFO] [stdout] 462 + ); [INFO] [stdout] 463 + cpu_error(); [INFO] [stdout] 464 + } [INFO] [stdout] 465 + } [INFO] [stdout] 466 + } else { [INFO] [stdout] 467 + cpu_error(); [INFO] [stdout] 468 + log!(Error, "Expected value for let"); [INFO] [stdout] 469 + } [INFO] [stdout] 470 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/main.rs:597:52 [INFO] [stdout] | [INFO] [stdout] 597 | ... printx(PrintT::Clear, &format!("{}", v)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `v.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/main.rs:623:64 [INFO] [stdout] | [INFO] [stdout] 623 | ... printx(PrintT::Clear, &format!("{}", x.value)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `x.value.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/cpu/main.rs:681:26 [INFO] [stdout] | [INFO] [stdout] 681 | pub fn add(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/cpu/main.rs:686:26 [INFO] [stdout] | [INFO] [stdout] 686 | pub fn sub(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/cpu/main.rs:691:26 [INFO] [stdout] | [INFO] [stdout] 691 | pub fn mul(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/cpu/main.rs:696:26 [INFO] [stdout] | [INFO] [stdout] 696 | pub fn div(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:11:26 [INFO] [stdout] | [INFO] [stdout] 11 | output.push_str(&format!("Port: {{\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Port: {\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/cpu/mod.rs:12:50 [INFO] [stdout] | [INFO] [stdout] 12 | pub static CPU_ERROR_COUNT: RefCell = RefCell::new(0usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(0usize) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/cpu/mod.rs:13:52 [INFO] [stdout] | [INFO] [stdout] 13 | pub static LEXER_ERROR_COUNT: RefCell = RefCell::new(0usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(0usize) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:20:26 [INFO] [stdout] | [INFO] [stdout] 20 | output.push_str(&format!("\n}}\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"\n}\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:22:26 [INFO] [stdout] | [INFO] [stdout] 22 | output.push_str(&format!("Jump Locations: {{\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Jump Locations: {\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:26:26 [INFO] [stdout] | [INFO] [stdout] 26 | output.push_str(&format!("}}\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"}\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:30:26 [INFO] [stdout] | [INFO] [stdout] 30 | output.push_str(&format!("Vars: {{\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Vars: {\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/display.rs:34:26 [INFO] [stdout] | [INFO] [stdout] 34 | output.push_str(&format!("}}\n")); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"}\n".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:45:26 [INFO] [stdout] | [INFO] [stdout] 45 | PrintT::Error => format!("[Error]: ").red(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Error]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:46:25 [INFO] [stdout] | [INFO] [stdout] 46 | PrintT::Info => format!("[Info]: ").green(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Info]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:47:26 [INFO] [stdout] | [INFO] [stdout] 47 | PrintT::Lexer => format!("[Lexer]: ").blue(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Lexer]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CPU` contains a capitalized acronym [INFO] [stdout] --> src/cpu/main.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct CPU { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Cpu` [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: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | PrintT::Cpu => format!("[Cpu]: ").yellow(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Cpu]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:49:27 [INFO] [stdout] | [INFO] [stdout] 49 | PrintT::Syntax => format!("[Syntax]: ").yellow(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Syntax]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/cpu/mod.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | print!("{}{}\n", prefix, message); [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] 57 - print!("{}{}\n", prefix, message); [INFO] [stdout] 57 + println!("{}{}", prefix, message); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lexer.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 136 | if !string_iter.peek().is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `string_iter.peek().is_none()` [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: unneeded `return` statement [INFO] [stdout] --> src/cpu/main.rs:245:9 [INFO] [stdout] | [INFO] [stdout] 245 | return output; [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] 245 - return output; [INFO] [stdout] 245 + output [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/cpu/main.rs:194:9 [INFO] [stdout] | [INFO] [stdout] 194 | output.push_str("{"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `output.push('{')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/lexer.rs:192:29 [INFO] [stdout] | [INFO] [stdout] 192 | ... string.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `string.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/lexer.rs:235:29 [INFO] [stdout] | [INFO] [stdout] 235 | ... comment.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `comment.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/cpu/main.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | output.push_str("}"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `output.push('}')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/lexer.rs:299:20 [INFO] [stdout] | [INFO] [stdout] 299 | if function_name != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!function_name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/cpu/main.rs:272:32 [INFO] [stdout] | [INFO] [stdout] 272 | value: x.value.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `x.value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `strings` [INFO] [stdout] --> src/cpu/main.rs:321:18 [INFO] [stdout] | [INFO] [stdout] 321 | for i in 0..strings.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 321 - for i in 0..strings.len() { [INFO] [stdout] 321 + for (i, ) in strings.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/lexer.rs:368:12 [INFO] [stdout] | [INFO] [stdout] 368 | if function_name != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!function_name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer.rs:384:24 [INFO] [stdout] | [INFO] [stdout] 384 | if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer.rs:390:24 [INFO] [stdout] | [INFO] [stdout] 390 | if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer.rs:399:12 [INFO] [stdout] | [INFO] [stdout] 399 | if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `lines` [INFO] [stdout] --> src/cpu/main.rs:378:18 [INFO] [stdout] | [INFO] [stdout] 378 | for i in 0..(lines.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 378 - for i in 0..(lines.len()) { [INFO] [stdout] 378 + for (i, ) in lines.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/cpu/main.rs:415:9 [INFO] [stdout] | [INFO] [stdout] 415 | / match token.value.as_str() { [INFO] [stdout] ... | [INFO] [stdout] 476 | | _ => {} [INFO] [stdout] 477 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 415 ~ if token.value.as_str() == "let" { [INFO] [stdout] 416 + let nt = match token_iter.next() { [INFO] [stdout] 417 + Some(x) => x, [INFO] [stdout] 418 + None => { [INFO] [stdout] 419 + cpu_error(); [INFO] [stdout] 420 + log!(Error, "Expected Arguments after let"); [INFO] [stdout] 421 + return; [INFO] [stdout] 422 + } [INFO] [stdout] 423 + }; [INFO] [stdout] 424 + let var_name = match nt.token_type { [INFO] [stdout] 425 + TokenType::VarName => nt.value.as_str(), [INFO] [stdout] 426 + _ => { [INFO] [stdout] 427 + log!(Error, "Expected variable name"); [INFO] [stdout] 428 + cpu_error(); [INFO] [stdout] 429 + return; [INFO] [stdout] 430 + } [INFO] [stdout] 431 + }; [INFO] [stdout] 432 + if let Some(nt) = token_iter.next() { [INFO] [stdout] 433 + match nt.token_type { [INFO] [stdout] 434 + TokenType::Comma => { /* Do nothing, just for checking*/ } [INFO] [stdout] 435 + _ => { [INFO] [stdout] 436 + cpu_error(); [INFO] [stdout] 437 + log!(Error, "Expected Comma"); [INFO] [stdout] 438 + } [INFO] [stdout] 439 + } [INFO] [stdout] 440 + } else { [INFO] [stdout] 441 + cpu_error(); [INFO] [stdout] 442 + log!(Error, "Expected Comma"); [INFO] [stdout] 443 + } [INFO] [stdout] 444 + if let Some(nt) = token_iter.next() { [INFO] [stdout] 445 + match nt.token_type { [INFO] [stdout] 446 + TokenType::String => { [INFO] [stdout] 447 + self.vars.push(Var::String(StringVar { [INFO] [stdout] 448 + name: var_name.to_string(), [INFO] [stdout] 449 + value: nt.value.clone(), [INFO] [stdout] 450 + })); [INFO] [stdout] 451 + } [INFO] [stdout] 452 + TokenType::Number(x) => { [INFO] [stdout] 453 + self.vars.push(Var::Number(NumberVar { [INFO] [stdout] 454 + name: var_name.to_string(), [INFO] [stdout] 455 + value: x, [INFO] [stdout] 456 + })); [INFO] [stdout] 457 + } [INFO] [stdout] 458 + _ => { [INFO] [stdout] 459 + printx( [INFO] [stdout] 460 + PrintT::Error, [INFO] [stdout] 461 + "You can only store Strings and Numbers inside a Variable", [INFO] [stdout] 462 + ); [INFO] [stdout] 463 + cpu_error(); [INFO] [stdout] 464 + } [INFO] [stdout] 465 + } [INFO] [stdout] 466 + } else { [INFO] [stdout] 467 + cpu_error(); [INFO] [stdout] 468 + log!(Error, "Expected value for let"); [INFO] [stdout] 469 + } [INFO] [stdout] 470 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lexer.rs:456:5 [INFO] [stdout] | [INFO] [stdout] 456 | / if line.tokens.len() != 0 { [INFO] [stdout] 457 | | if line.tokens[0].value == "fn" { [INFO] [stdout] 458 | | return true; [INFO] [stdout] 459 | | } [INFO] [stdout] 460 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 456 ~ if line.tokens.len() != 0 [INFO] [stdout] 457 ~ && line.tokens[0].value == "fn" { [INFO] [stdout] 458 | return true; [INFO] [stdout] 459 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer.rs:456:8 [INFO] [stdout] | [INFO] [stdout] 456 | if line.tokens.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!line.tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/main.rs:597:52 [INFO] [stdout] | [INFO] [stdout] 597 | ... printx(PrintT::Clear, &format!("{}", v)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `v.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/main.rs:623:64 [INFO] [stdout] | [INFO] [stdout] 623 | ... printx(PrintT::Clear, &format!("{}", x.value)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `x.value.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/cpu/main.rs:681:26 [INFO] [stdout] | [INFO] [stdout] 681 | pub fn add(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/cpu/main.rs:686:26 [INFO] [stdout] | [INFO] [stdout] 686 | pub fn sub(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/cpu/main.rs:691:26 [INFO] [stdout] | [INFO] [stdout] 691 | pub fn mul(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/cpu/main.rs:696:26 [INFO] [stdout] | [INFO] [stdout] 696 | pub fn div(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/cpu/mod.rs:12:50 [INFO] [stdout] | [INFO] [stdout] 12 | pub static CPU_ERROR_COUNT: RefCell = RefCell::new(0usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(0usize) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/cpu/mod.rs:13:52 [INFO] [stdout] | [INFO] [stdout] 13 | pub static LEXER_ERROR_COUNT: RefCell = RefCell::new(0usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(0usize) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:45:26 [INFO] [stdout] | [INFO] [stdout] 45 | PrintT::Error => format!("[Error]: ").red(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Error]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:46:25 [INFO] [stdout] | [INFO] [stdout] 46 | PrintT::Info => format!("[Info]: ").green(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Info]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:47:26 [INFO] [stdout] | [INFO] [stdout] 47 | PrintT::Lexer => format!("[Lexer]: ").blue(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Lexer]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | PrintT::Cpu => format!("[Cpu]: ").yellow(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Cpu]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cpu/mod.rs:49:27 [INFO] [stdout] | [INFO] [stdout] 49 | PrintT::Syntax => format!("[Syntax]: ").yellow(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"[Syntax]: ".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/cpu/mod.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | print!("{}{}\n", prefix, message); [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] 57 - print!("{}{}\n", prefix, message); [INFO] [stdout] 57 + println!("{}{}", prefix, message); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lexer.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 136 | if !string_iter.peek().is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `string_iter.peek().is_none()` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/lexer.rs:192:29 [INFO] [stdout] | [INFO] [stdout] 192 | ... string.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `string.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/lexer.rs:235:29 [INFO] [stdout] | [INFO] [stdout] 235 | ... comment.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `comment.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/lexer.rs:299:20 [INFO] [stdout] | [INFO] [stdout] 299 | if function_name != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!function_name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/lexer.rs:368:12 [INFO] [stdout] | [INFO] [stdout] 368 | if function_name != "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!function_name.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer.rs:384:24 [INFO] [stdout] | [INFO] [stdout] 384 | if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer.rs:390:24 [INFO] [stdout] | [INFO] [stdout] 390 | if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer.rs:399:12 [INFO] [stdout] | [INFO] [stdout] 399 | if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lexer.rs:456:5 [INFO] [stdout] | [INFO] [stdout] 456 | / if line.tokens.len() != 0 { [INFO] [stdout] 457 | | if line.tokens[0].value == "fn" { [INFO] [stdout] 458 | | return true; [INFO] [stdout] 459 | | } [INFO] [stdout] 460 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 456 ~ if line.tokens.len() != 0 [INFO] [stdout] 457 ~ && line.tokens[0].value == "fn" { [INFO] [stdout] 458 | return true; [INFO] [stdout] 459 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer.rs:456:8 [INFO] [stdout] | [INFO] [stdout] 456 | if line.tokens.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!line.tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer_new.rs:164:32 [INFO] [stdout] | [INFO] [stdout] 164 | ... if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer_new.rs:171:32 [INFO] [stdout] | [INFO] [stdout] 171 | ... if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer_new.rs:180:20 [INFO] [stdout] | [INFO] [stdout] 180 | if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i32` which implements the `Copy` trait [INFO] [stdout] --> src/lexer_new.rs:198:71 [INFO] [stdout] | [INFO] [stdout] 198 | lines: self.low_level(func.tmp_lines.clone(), func.start_ln.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `func.start_ln` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/lexer_new.rs:484:44 [INFO] [stdout] | [INFO] [stdout] 484 | ... if let Some(_) = string_iter.peek() { [INFO] [stdout] | -------^^^^^^^--------------------- help: try: `if string_iter.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer_new.rs:164:32 [INFO] [stdout] | [INFO] [stdout] 164 | ... if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer_new.rs:171:32 [INFO] [stdout] | [INFO] [stdout] 171 | ... if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lexer_new.rs:180:20 [INFO] [stdout] | [INFO] [stdout] 180 | if temp_string.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!temp_string.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i32` which implements the `Copy` trait [INFO] [stdout] --> src/lexer_new.rs:198:71 [INFO] [stdout] | [INFO] [stdout] 198 | lines: self.low_level(func.tmp_lines.clone(), func.start_ln.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `func.start_ln` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/lexer_new.rs:484:44 [INFO] [stdout] | [INFO] [stdout] 484 | ... if let Some(_) = string_iter.peek() { [INFO] [stdout] | -------^^^^^^^--------------------- help: try: `if string_iter.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/test/main.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | fn add() -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/test/main.rs:79:11 [INFO] [stdout] | [INFO] [stdout] 79 | fn minus() -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/test/main.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | fn set_bit() -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/test/main.rs:103:15 [INFO] [stdout] | [INFO] [stdout] 103 | fn max_usize() -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/test/main.rs:115:15 [INFO] [stdout] | [INFO] [stdout] 115 | fn lexer_new() -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.20s [INFO] running `Command { std: "docker" "inspect" "829b21a6a88a601dffe1aedf23bc9d985be89c2eea45c9d370325f965f5c4164", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "829b21a6a88a601dffe1aedf23bc9d985be89c2eea45c9d370325f965f5c4164", kill_on_drop: false }` [INFO] [stdout] 829b21a6a88a601dffe1aedf23bc9d985be89c2eea45c9d370325f965f5c4164