[INFO] cloning repository https://github.com/ncalibey/iridium [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ncalibey/iridium" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fncalibey%2Firidium", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fncalibey%2Firidium'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d17bd47eaf9b400f636f5c92349fa51e12ec8259 [INFO] linting ncalibey/iridium against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fncalibey%2Firidium" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ncalibey/iridium [INFO] finished tweaking git repo https://github.com/ncalibey/iridium [INFO] tweaked toml for git repo https://github.com/ncalibey/iridium written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ncalibey/iridium 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/ncalibey/iridium 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] Downloading crates ... [INFO] [stderr] Downloaded env_logger v0.5.13 [INFO] [stderr] Downloaded hermit-abi v0.1.12 [INFO] [stderr] Downloaded nom v4.2.3 [INFO] [stderr] Downloaded regex v1.3.7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] f42781dd1fa6b8721f70e0bb6ef6cb244c7aca334d4dd71e8f8b83dd6bf42c2f [INFO] running `Command { std: "docker" "start" "-a" "f42781dd1fa6b8721f70e0bb6ef6cb244c7aca334d4dd71e8f8b83dd6bf42c2f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f42781dd1fa6b8721f70e0bb6ef6cb244c7aca334d4dd71e8f8b83dd6bf42c2f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f42781dd1fa6b8721f70e0bb6ef6cb244c7aca334d4dd71e8f8b83dd6bf42c2f", kill_on_drop: false }` [INFO] [stdout] f42781dd1fa6b8721f70e0bb6ef6cb244c7aca334d4dd71e8f8b83dd6bf42c2f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] c3034314780ebb3bc24562e6205437b13193e8ade66d6de75b63538c5284881f [INFO] running `Command { std: "docker" "start" "-a" "c3034314780ebb3bc24562e6205437b13193e8ade66d6de75b63538c5284881f", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.70 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling version_check v0.1.5 [INFO] [stderr] Checking regex-syntax v0.6.17 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Checking thread_local v1.0.1 [INFO] [stderr] Checking aho-corasick v0.7.10 [INFO] [stderr] Compiling nom v4.2.3 [INFO] [stderr] Compiling num-traits v0.2.11 [INFO] [stderr] Compiling num-integer v0.1.42 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking time v0.1.43 [INFO] [stderr] Checking clap v2.33.1 [INFO] [stderr] Checking regex v1.3.7 [INFO] [stderr] Checking env_logger v0.5.13 [INFO] [stderr] Checking chrono v0.4.11 [INFO] [stderr] Checking uuid v0.7.4 [INFO] [stderr] Checking iridium v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/assembler/program_parsers.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | instructions: instructions [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `instructions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PIE_HEADER_LENGTH` [INFO] [stdout] --> src/vm.rs:1:24 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::assembler::{PIE_HEADER_LENGTH, PIE_HEADER_PREFIX}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `extract_labels` is never used [INFO] [stdout] --> src/assembler/mod.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 95 | impl Assembler { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 302 | fn extract_labels(&mut self, p: &Program) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `symbol_type` is never read [INFO] [stdout] --> src/assembler/symbols.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Symbol { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 8 | symbol_type: SymbolType, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Symbol` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `next_pid` and `max_pid` are never read [INFO] [stdout] --> src/scheduler/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Scheduler { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 6 | next_pid: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 7 | max_pid: u32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `event`, `at`, and `application_id` are never read [INFO] [stdout] --> src/vm.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct VMEvent { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 17 | /// The type of event that occured. [INFO] [stdout] 18 | event: VMEventType, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | /// The time at which the event occured. [INFO] [stdout] 20 | at: DateTime, [INFO] [stdout] | ^^ [INFO] [stdout] 21 | application_id: Uuid, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VMEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ro_data` is never read [INFO] [stdout] --> src/vm.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct VM { [INFO] [stdout] | -- field in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | ro_data: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VM` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | / match operand { [INFO] [stdout] 31 | | Some(t) => AssemblerInstruction::extract_operand(t, &mut results, symbols), [INFO] [stdout] 32 | | None => {} [INFO] [stdout] 33 | | } [INFO] [stdout] | |_____________^ help: try: `if let Some(t) = operand { AssemblerInstruction::extract_operand(t, &mut results, symbols) }` [INFO] [stdout] | [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] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:64:24 [INFO] [stdout] | [INFO] [stdout] 64 | Some(o) => match o { [INFO] [stdout] | ________________________^ [INFO] [stdout] 65 | | Token::IrString { name} => Some(name.clone()), [INFO] [stdout] 66 | | _ => None, [INFO] [stdout] 67 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/assembler/instruction_parsers.rs:64:18 [INFO] [stdout] | [INFO] [stdout] 64 | Some(o) => match o { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 65 | Token::IrString { name} => Some(name.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:74:24 [INFO] [stdout] | [INFO] [stdout] 74 | Some(d) => match d { [INFO] [stdout] | ________________________^ [INFO] [stdout] 75 | | Token::Directive { name } => Some(name.clone()), [INFO] [stdout] 76 | | _ => None, [INFO] [stdout] 77 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/assembler/instruction_parsers.rs:74:18 [INFO] [stdout] | [INFO] [stdout] 74 | Some(d) => match d { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 75 | Token::Directive { name } => Some(name.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:84:24 [INFO] [stdout] | [INFO] [stdout] 84 | Some(l) => match l { [INFO] [stdout] | ________________________^ [INFO] [stdout] 85 | | Token::LabelDeclaration { name } => Some(name.clone()), [INFO] [stdout] 86 | | _ => None, [INFO] [stdout] 87 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/assembler/instruction_parsers.rs:84:18 [INFO] [stdout] | [INFO] [stdout] 84 | Some(l) => match l { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 85 | Token::LabelDeclaration { name } => Some(name.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/assembler/program_parsers.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | instructions: instructions [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `instructions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::vm::VM` [INFO] [stdout] --> src/assembler/symbols.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | use crate::vm::VM; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SymbolTable` [INFO] [stdout] --> src/assembler/symbols.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / pub fn new() -> SymbolTable { [INFO] [stdout] 52 | | SymbolTable { symbols: vec![] } [INFO] [stdout] 53 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 49 + impl Default for SymbolTable { [INFO] [stdout] 50 + fn default() -> Self { [INFO] [stdout] 51 + Self::new() [INFO] [stdout] 52 + } [INFO] [stdout] 53 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/assembler/mod.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | / impl Default for AssemblerPhase { [INFO] [stdout] 42 | | fn default() -> Self { [INFO] [stdout] 43 | | AssemblerPhase::First [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 36 + #[derive(Default)] [INFO] [stdout] 37 | pub enum AssemblerPhase { [INFO] [stdout] 38 ~ #[default] [INFO] [stdout] 39 ~ First, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/assembler/mod.rs:54:6 [INFO] [stdout] | [INFO] [stdout] 54 | impl<'a> From<&'a str> for AssemblerSection { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 54 - impl<'a> From<&'a str> for AssemblerSection { [INFO] [stdout] 54 + impl From<&str> for AssemblerSection { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Assembler` [INFO] [stdout] --> src/assembler/mod.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | / pub fn new() -> Assembler { [INFO] [stdout] 98 | | Assembler { [INFO] [stdout] 99 | | phase: AssemblerPhase::First, [INFO] [stdout] 100 | | symbols: SymbolTable::new(), [INFO] [stdout] ... | [INFO] [stdout] 109 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 95 + impl Default for Assembler { [INFO] [stdout] 96 + fn default() -> Self { [INFO] [stdout] 97 + Self::new() [INFO] [stdout] 98 + } [INFO] [stdout] 99 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/assembler/mod.rs:157:52 [INFO] [stdout] | [INFO] [stdout] 157 | self.process_label_declaration(&i); [INFO] [stdout] | ^^ help: change this to: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/assembler/mod.rs:244:21 [INFO] [stdout] | [INFO] [stdout] 244 | return; [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] 243 - }); [INFO] [stdout] 244 - return; [INFO] [stdout] 243 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/assembler/mod.rs:306:17 [INFO] [stdout] | [INFO] [stdout] 306 | / match i.get_label_name() { [INFO] [stdout] 307 | | Some(name) => { [INFO] [stdout] 308 | | let symbol = Symbol::new_with_offset(name, SymbolType::Label, c); [INFO] [stdout] 309 | | self.symbols.add_symbol(symbol); [INFO] [stdout] 310 | | } [INFO] [stdout] 311 | | None => {} [INFO] [stdout] 312 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 306 ~ if let Some(name) = i.get_label_name() { [INFO] [stdout] 307 + let symbol = Symbol::new_with_offset(name, SymbolType::Label, c); [INFO] [stdout] 308 + self.symbols.add_symbol(symbol); [INFO] [stdout] 309 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/assembler/mod.rs:323:25 [INFO] [stdout] | [INFO] [stdout] 323 | header.push(byte.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*byte` [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: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> src/assembler/mod.rs:326:25 [INFO] [stdout] | [INFO] [stdout] 326 | header.push(0 as u8); [INFO] [stdout] | ^^^^^^^ help: try: `0_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `REPL` [INFO] [stdout] --> src/repl/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / pub fn new() -> REPL { [INFO] [stdout] 22 | | REPL { [INFO] [stdout] 23 | | vm: VM::new(), [INFO] [stdout] 24 | | command_buffer: vec![], [INFO] [stdout] ... | [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 19 + impl Default for REPL { [INFO] [stdout] 20 + fn default() -> Self { [INFO] [stdout] 21 + Self::new() [INFO] [stdout] 22 + } [INFO] [stdout] 23 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/repl/mod.rs:113:24 [INFO] [stdout] | [INFO] [stdout] 113 | if !parsed_program.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parsed_program.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: the borrowed expression implements the required traits [INFO] [stdout] --> src/repl/mod.rs:144:38 [INFO] [stdout] | [INFO] [stdout] 144 | let mut f = match File::open(&filename) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `filename` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/repl/mod.rs:168:43 [INFO] [stdout] | [INFO] [stdout] 168 | let byte = u8::from_str_radix(&hex_string, 16); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `hex_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `VM` [INFO] [stdout] --> src/vm.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | / pub fn new() -> VM { [INFO] [stdout] 51 | | VM { [INFO] [stdout] 52 | | registers: [0; 32], [INFO] [stdout] 53 | | program: vec![], [INFO] [stdout] ... | [INFO] [stdout] 62 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 48 + impl Default for VM { [INFO] [stdout] 49 + fn default() -> Self { [INFO] [stdout] 50 + Self::new() [INFO] [stdout] 51 + } [INFO] [stdout] 52 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/vm.rs:69:33 [INFO] [stdout] | [INFO] [stdout] 69 | application_id: self.id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.id` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/vm.rs:85:29 [INFO] [stdout] | [INFO] [stdout] 85 | application_id: self.id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.id` [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: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/vm.rs:109:30 [INFO] [stdout] | [INFO] [stdout] 109 | let number = self.next_16_bits() as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.next_16_bits()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | / match program { [INFO] [stdout] 31 | | Ok(p) => { [INFO] [stdout] 32 | | vm.add_bytes(p); [INFO] [stdout] 33 | | let events = vm.run(); [INFO] [stdout] ... | [INFO] [stdout] 41 | | _ => {} [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 30 ~ if let Ok(p) = program { [INFO] [stdout] 31 + vm.add_bytes(p); [INFO] [stdout] 32 + let events = vm.run(); [INFO] [stdout] 33 + println!("VM Events"); [INFO] [stdout] 34 + println!("--------------------------"); [INFO] [stdout] 35 + for event in &events { [INFO] [stdout] 36 + println!("{:#?}", event); [INFO] [stdout] 37 + } [INFO] [stdout] 38 + std::process::exit(0); [INFO] [stdout] 39 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | return contents; [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] 62 - return contents; [INFO] [stdout] 62 + contents [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:29:24 [INFO] [stdout] | [INFO] [stdout] 29 | for operand in vec![&self.operand1, &self.operand2, &self.operand3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[&self.operand1, &self.operand2, &self.operand3]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `extract_labels` is never used [INFO] [stdout] --> src/assembler/mod.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 95 | impl Assembler { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 302 | fn extract_labels(&mut self, p: &Program) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `symbol_type` is never read [INFO] [stdout] --> src/assembler/symbols.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Symbol { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 8 | symbol_type: SymbolType, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Symbol` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `next_pid` and `max_pid` are never read [INFO] [stdout] --> src/scheduler/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Scheduler { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 6 | next_pid: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 7 | max_pid: u32, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `event`, `at`, and `application_id` are never read [INFO] [stdout] --> src/vm.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct VMEvent { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 17 | /// The type of event that occured. [INFO] [stdout] 18 | event: VMEventType, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 19 | /// The time at which the event occured. [INFO] [stdout] 20 | at: DateTime, [INFO] [stdout] | ^^ [INFO] [stdout] 21 | application_id: Uuid, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VMEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ro_data` is never read [INFO] [stdout] --> src/vm.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct VM { [INFO] [stdout] | -- field in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | ro_data: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VM` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/directive_parsers.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 60 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 60 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | / match operand { [INFO] [stdout] 31 | | Some(t) => AssemblerInstruction::extract_operand(t, &mut results, symbols), [INFO] [stdout] 32 | | None => {} [INFO] [stdout] 33 | | } [INFO] [stdout] | |_____________^ help: try: `if let Some(t) = operand { AssemblerInstruction::extract_operand(t, &mut results, symbols) }` [INFO] [stdout] | [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] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:64:24 [INFO] [stdout] | [INFO] [stdout] 64 | Some(o) => match o { [INFO] [stdout] | ________________________^ [INFO] [stdout] 65 | | Token::IrString { name} => Some(name.clone()), [INFO] [stdout] 66 | | _ => None, [INFO] [stdout] 67 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/assembler/instruction_parsers.rs:64:18 [INFO] [stdout] | [INFO] [stdout] 64 | Some(o) => match o { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 65 | Token::IrString { name} => Some(name.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:74:24 [INFO] [stdout] | [INFO] [stdout] 74 | Some(d) => match d { [INFO] [stdout] | ________________________^ [INFO] [stdout] 75 | | Token::Directive { name } => Some(name.clone()), [INFO] [stdout] 76 | | _ => None, [INFO] [stdout] 77 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/assembler/instruction_parsers.rs:74:18 [INFO] [stdout] | [INFO] [stdout] 74 | Some(d) => match d { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 75 | Token::Directive { name } => Some(name.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:84:24 [INFO] [stdout] | [INFO] [stdout] 84 | Some(l) => match l { [INFO] [stdout] | ________________________^ [INFO] [stdout] 85 | | Token::LabelDeclaration { name } => Some(name.clone()), [INFO] [stdout] 86 | | _ => None, [INFO] [stdout] 87 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/assembler/instruction_parsers.rs:84:18 [INFO] [stdout] | [INFO] [stdout] 84 | Some(l) => match l { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 85 | Token::LabelDeclaration { name } => Some(name.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/instruction_parsers.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 161 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 161 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/instruction_parsers.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 180 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 180 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/instruction_parsers.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 199 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 199 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/label_parsers.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 41 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 41 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/label_parsers.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | assert_eq!(result.is_ok(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 50 - assert_eq!(result.is_ok(), false); [INFO] [stdout] 50 + assert!(!result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/label_parsers.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 56 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 56 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/label_parsers.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | assert_eq!(result.is_ok(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 65 - assert_eq!(result.is_ok(), false); [INFO] [stdout] 65 + assert!(!result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/opcode_parsers.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 25 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 25 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/operand_parsers.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 51 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 51 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/operand_parsers.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | assert_eq!(result.is_ok(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 57 - assert_eq!(result.is_ok(), false); [INFO] [stdout] 57 + assert!(!result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/operand_parsers.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 63 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 63 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/program_parsers.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 41 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 41 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/program_parsers.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 50 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 50 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/program_parsers.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 61 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 61 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/register_parsers.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 32 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 32 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/register_parsers.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | assert_eq!(result.is_ok(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 34 - assert_eq!(result.is_ok(), false); [INFO] [stdout] 34 + assert!(!result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/register_parsers.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | assert_eq!(result.is_ok(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 36 - assert_eq!(result.is_ok(), false); [INFO] [stdout] 36 + assert!(!result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SymbolTable` [INFO] [stdout] --> src/assembler/symbols.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / pub fn new() -> SymbolTable { [INFO] [stdout] 52 | | SymbolTable { symbols: vec![] } [INFO] [stdout] 53 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 49 + impl Default for SymbolTable { [INFO] [stdout] 50 + fn default() -> Self { [INFO] [stdout] 51 + Self::new() [INFO] [stdout] 52 + } [INFO] [stdout] 53 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/symbols.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | assert_eq!(v.is_some(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 102 - assert_eq!(v.is_some(), true); [INFO] [stdout] 102 + assert!(v.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/symbols.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | assert_eq!(v.is_some(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 106 - assert_eq!(v.is_some(), false); [INFO] [stdout] 106 + assert!(!v.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/assembler/mod.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | / impl Default for AssemblerPhase { [INFO] [stdout] 42 | | fn default() -> Self { [INFO] [stdout] 43 | | AssemblerPhase::First [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 36 + #[derive(Default)] [INFO] [stdout] 37 | pub enum AssemblerPhase { [INFO] [stdout] 38 ~ #[default] [INFO] [stdout] 39 ~ First, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/assembler/mod.rs:54:6 [INFO] [stdout] | [INFO] [stdout] 54 | impl<'a> From<&'a str> for AssemblerSection { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 54 - impl<'a> From<&'a str> for AssemblerSection { [INFO] [stdout] 54 + impl From<&str> for AssemblerSection { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Assembler` [INFO] [stdout] --> src/assembler/mod.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | / pub fn new() -> Assembler { [INFO] [stdout] 98 | | Assembler { [INFO] [stdout] 99 | | phase: AssemblerPhase::First, [INFO] [stdout] 100 | | symbols: SymbolTable::new(), [INFO] [stdout] ... | [INFO] [stdout] 109 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 95 + impl Default for Assembler { [INFO] [stdout] 96 + fn default() -> Self { [INFO] [stdout] 97 + Self::new() [INFO] [stdout] 98 + } [INFO] [stdout] 99 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/assembler/mod.rs:157:52 [INFO] [stdout] | [INFO] [stdout] 157 | self.process_label_declaration(&i); [INFO] [stdout] | ^^ help: change this to: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/assembler/mod.rs:244:21 [INFO] [stdout] | [INFO] [stdout] 244 | return; [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] 243 - }); [INFO] [stdout] 244 - return; [INFO] [stdout] 243 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/assembler/mod.rs:306:17 [INFO] [stdout] | [INFO] [stdout] 306 | / match i.get_label_name() { [INFO] [stdout] 307 | | Some(name) => { [INFO] [stdout] 308 | | let symbol = Symbol::new_with_offset(name, SymbolType::Label, c); [INFO] [stdout] 309 | | self.symbols.add_symbol(symbol); [INFO] [stdout] 310 | | } [INFO] [stdout] 311 | | None => {} [INFO] [stdout] 312 | | }; [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 306 ~ if let Some(name) = i.get_label_name() { [INFO] [stdout] 307 + let symbol = Symbol::new_with_offset(name, SymbolType::Label, c); [INFO] [stdout] 308 + self.symbols.add_symbol(symbol); [INFO] [stdout] 309 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/assembler/mod.rs:323:25 [INFO] [stdout] | [INFO] [stdout] 323 | header.push(byte.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*byte` [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: casting integer literal to `u8` is unnecessary [INFO] [stdout] --> src/assembler/mod.rs:326:25 [INFO] [stdout] | [INFO] [stdout] 326 | header.push(0 as u8); [INFO] [stdout] | ^^^^^^^ help: try: `0_u8` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/mod.rs:356:9 [INFO] [stdout] | [INFO] [stdout] 356 | assert_eq!(true, v.is_some()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 356 - assert_eq!(true, v.is_some()); [INFO] [stdout] 356 + assert!(v.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/mod.rs:360:9 [INFO] [stdout] | [INFO] [stdout] 360 | assert_eq!(v.is_some(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 360 - assert_eq!(v.is_some(), false); [INFO] [stdout] 360 + assert!(!v.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/mod.rs:368:9 [INFO] [stdout] | [INFO] [stdout] 368 | assert_eq!(program.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 368 - assert_eq!(program.is_ok(), true); [INFO] [stdout] 368 + assert!(program.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/mod.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | assert_eq!(program.is_ok(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 376 - assert_eq!(program.is_ok(), false); [INFO] [stdout] 376 + assert!(!program.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/mod.rs:384:9 [INFO] [stdout] | [INFO] [stdout] 384 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 384 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 384 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/assembler/mod.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | assert_eq!(result.is_ok(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 395 - assert_eq!(result.is_ok(), true); [INFO] [stdout] 395 + assert!(result.is_ok()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `REPL` [INFO] [stdout] --> src/repl/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | / pub fn new() -> REPL { [INFO] [stdout] 22 | | REPL { [INFO] [stdout] 23 | | vm: VM::new(), [INFO] [stdout] 24 | | command_buffer: vec![], [INFO] [stdout] ... | [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 19 + impl Default for REPL { [INFO] [stdout] 20 + fn default() -> Self { [INFO] [stdout] 21 + Self::new() [INFO] [stdout] 22 + } [INFO] [stdout] 23 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/repl/mod.rs:113:24 [INFO] [stdout] | [INFO] [stdout] 113 | if !parsed_program.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parsed_program.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: the borrowed expression implements the required traits [INFO] [stdout] --> src/repl/mod.rs:144:38 [INFO] [stdout] | [INFO] [stdout] 144 | let mut f = match File::open(&filename) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `filename` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/repl/mod.rs:168:43 [INFO] [stdout] | [INFO] [stdout] 168 | let byte = u8::from_str_radix(&hex_string, 16); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `hex_string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `VM` [INFO] [stdout] --> src/vm.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | / pub fn new() -> VM { [INFO] [stdout] 51 | | VM { [INFO] [stdout] 52 | | registers: [0; 32], [INFO] [stdout] 53 | | program: vec![], [INFO] [stdout] ... | [INFO] [stdout] 62 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 48 + impl Default for VM { [INFO] [stdout] 49 + fn default() -> Self { [INFO] [stdout] 50 + Self::new() [INFO] [stdout] 51 + } [INFO] [stdout] 52 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/vm.rs:69:33 [INFO] [stdout] | [INFO] [stdout] 69 | application_id: self.id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.id` [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: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/vm.rs:85:29 [INFO] [stdout] | [INFO] [stdout] 85 | application_id: self.id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.id` [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: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/vm.rs:109:30 [INFO] [stdout] | [INFO] [stdout] 109 | let number = self.next_16_bits() as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.next_16_bits()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `array` [INFO] [stdout] --> src/vm.rs:267:39 [INFO] [stdout] | [INFO] [stdout] 267 | for byte in PIE_HEADER_PREFIX.into_iter() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/vm.rs:268:29 [INFO] [stdout] | [INFO] [stdout] 268 | prepension.push(byte.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*byte` [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: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:394:9 [INFO] [stdout] | [INFO] [stdout] 394 | assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 394 - assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] 394 + assert!(test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:397:9 [INFO] [stdout] | [INFO] [stdout] 397 | assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 397 - assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] 397 + assert!(!test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:408:9 [INFO] [stdout] | [INFO] [stdout] 408 | assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 408 - assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] 408 + assert!(test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:411:9 [INFO] [stdout] | [INFO] [stdout] 411 | assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 411 - assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] 411 + assert!(!test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:422:9 [INFO] [stdout] | [INFO] [stdout] 422 | assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 422 - assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] 422 + assert!(test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:425:9 [INFO] [stdout] | [INFO] [stdout] 425 | assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 425 - assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] 425 + assert!(!test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:436:9 [INFO] [stdout] | [INFO] [stdout] 436 | assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 436 - assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] 436 + assert!(test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:439:9 [INFO] [stdout] | [INFO] [stdout] 439 | assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 439 - assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] 439 + assert!(!test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:450:9 [INFO] [stdout] | [INFO] [stdout] 450 | assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 450 - assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] 450 + assert!(test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:453:9 [INFO] [stdout] | [INFO] [stdout] 453 | assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 453 - assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] 453 + assert!(test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:456:9 [INFO] [stdout] | [INFO] [stdout] 456 | assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 456 - assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] 456 + assert!(!test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:467:9 [INFO] [stdout] | [INFO] [stdout] 467 | assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 467 - assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] 467 + assert!(test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 470 - assert_eq!(test_vm.equal_flag, true); [INFO] [stdout] 470 + assert!(test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/vm.rs:473:9 [INFO] [stdout] | [INFO] [stdout] 473 | assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 473 - assert_eq!(test_vm.equal_flag, false); [INFO] [stdout] 473 + assert!(!test_vm.equal_flag); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | / match program { [INFO] [stdout] 31 | | Ok(p) => { [INFO] [stdout] 32 | | vm.add_bytes(p); [INFO] [stdout] 33 | | let events = vm.run(); [INFO] [stdout] ... | [INFO] [stdout] 41 | | _ => {} [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 30 ~ if let Ok(p) = program { [INFO] [stdout] 31 + vm.add_bytes(p); [INFO] [stdout] 32 + let events = vm.run(); [INFO] [stdout] 33 + println!("VM Events"); [INFO] [stdout] 34 + println!("--------------------------"); [INFO] [stdout] 35 + for event in &events { [INFO] [stdout] 36 + println!("{:#?}", event); [INFO] [stdout] 37 + } [INFO] [stdout] 38 + std::process::exit(0); [INFO] [stdout] 39 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | return contents; [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] 62 - return contents; [INFO] [stdout] 62 + contents [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/assembler/instruction_parsers.rs:29:24 [INFO] [stdout] | [INFO] [stdout] 29 | for operand in vec![&self.operand1, &self.operand2, &self.operand3] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[&self.operand1, &self.operand2, &self.operand3]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021 [INFO] [stdout] --> src/vm.rs:267:39 [INFO] [stdout] | [INFO] [stdout] 267 | for byte in PIE_HEADER_PREFIX.into_iter() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 267 - for byte in PIE_HEADER_PREFIX.into_iter() { [INFO] [stdout] 267 + for byte in PIE_HEADER_PREFIX.iter() { [INFO] [stdout] | [INFO] [stdout] help: or remove `.into_iter()` to iterate by value [INFO] [stdout] | [INFO] [stdout] 267 - for byte in PIE_HEADER_PREFIX.into_iter() { [INFO] [stdout] 267 + for byte in PIE_HEADER_PREFIX { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.94s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v4.2.3 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4` [INFO] running `Command { std: "docker" "inspect" "c3034314780ebb3bc24562e6205437b13193e8ade66d6de75b63538c5284881f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c3034314780ebb3bc24562e6205437b13193e8ade66d6de75b63538c5284881f", kill_on_drop: false }` [INFO] [stdout] c3034314780ebb3bc24562e6205437b13193e8ade66d6de75b63538c5284881f