[INFO] updating cached repository bon-chi/rust_emu [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/bon-chi/rust_emu [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/bon-chi/rust_emu" "work/ex/clippy-test-run/sources/stable/gh/bon-chi/rust_emu"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/bon-chi/rust_emu'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/bon-chi/rust_emu" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bon-chi/rust_emu"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bon-chi/rust_emu'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 5995967e6db23f0a03c4b47d48e75e463d2fa681 [INFO] sha for GitHub repo bon-chi/rust_emu: 5995967e6db23f0a03c4b47d48e75e463d2fa681 [INFO] validating manifest of bon-chi/rust_emu on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of bon-chi/rust_emu on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing bon-chi/rust_emu [INFO] finished frobbing bon-chi/rust_emu [INFO] frobbed toml for bon-chi/rust_emu written to work/ex/clippy-test-run/sources/stable/gh/bon-chi/rust_emu/Cargo.toml [INFO] started frobbing bon-chi/rust_emu [INFO] finished frobbing bon-chi/rust_emu [INFO] frobbed toml for bon-chi/rust_emu written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bon-chi/rust_emu/Cargo.toml [INFO] crate bon-chi/rust_emu has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting bon-chi/rust_emu against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bon-chi/rust_emu:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 582541fca3b4542e029a559fc240be697881dc2e313ad06dab426da44447bc3a [INFO] running `"docker" "start" "-a" "582541fca3b4542e029a559fc240be697881dc2e313ad06dab426da44447bc3a"` [INFO] [stderr] Checking rust_emu v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/emulator/mod.rs:610:13 [INFO] [stderr] | [INFO] [stderr] 610 | registers: registers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registers` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/emulator/mod.rs:612:13 [INFO] [stderr] | [INFO] [stderr] 612 | memory: memory, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `memory` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/emulator/mod.rs:613:13 [INFO] [stderr] | [INFO] [stderr] 613 | eip: eip, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `eip` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/emulator/mod.rs:610:13 [INFO] [stderr] | [INFO] [stderr] 610 | registers: registers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registers` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/emulator/mod.rs:612:13 [INFO] [stderr] | [INFO] [stderr] 612 | memory: memory, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `memory` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/emulator/mod.rs:613:13 [INFO] [stderr] | [INFO] [stderr] 613 | eip: eip, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `eip` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `Disp` [INFO] [stderr] --> src/emulator/mod.rs:12:19 [INFO] [stderr] | [INFO] [stderr] 12 | use self::modrm::{Disp, Function as ModRMFunction, ModRM}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/emulator/mod.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/emulator/mod.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/emulator/mod.rs:117:45 [INFO] [stderr] | [INFO] [stderr] 117 | let r = self.registers[index] & 0xffffff00; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ff00` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/emulator/mod.rs:120:49 [INFO] [stderr] | [INFO] [stderr] 120 | let r = self.registers[index - 4] & 0xffff00ff; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_00ff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/emulator/mod.rs:682:9 [INFO] [stderr] | [INFO] [stderr] 682 | return self.get_register8(modrm.get_reg_index() as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_register8(modrm.get_reg_index() as usize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `Disp` [INFO] [stderr] --> src/emulator/mod.rs:12:19 [INFO] [stderr] | [INFO] [stderr] 12 | use self::modrm::{Disp, Function as ModRMFunction, ModRM}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/emulator/mod.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/emulator/mod.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/emulator/mod.rs:117:45 [INFO] [stderr] | [INFO] [stderr] 117 | let r = self.registers[index] & 0xffffff00; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ff00` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/emulator/mod.rs:120:49 [INFO] [stderr] | [INFO] [stderr] 120 | let r = self.registers[index - 4] & 0xffff00ff; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_00ff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/emulator/mod.rs:682:9 [INFO] [stderr] | [INFO] [stderr] 682 | return self.get_register8(modrm.get_reg_index() as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.get_register8(modrm.get_reg_index() as usize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/emulator/io.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | / match address { [INFO] [stderr] 20 | | 0x03f8 => { [INFO] [stderr] 21 | | print!("{}", value as char); [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | _ => {} [INFO] [stderr] 24 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | if let 0x03f8 = address { [INFO] [stderr] 20 | print!("{}", value as char); [INFO] [stderr] 21 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `emulator::modrm::ModRM` [INFO] [stderr] --> src/emulator/modrm.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new() -> ModRM { [INFO] [stderr] 23 | | ModRM { [INFO] [stderr] 24 | | mode: 0, [INFO] [stderr] 25 | | reg: Reg { opecode: 0 }, [INFO] [stderr] ... | [INFO] [stderr] 29 | | } [INFO] [stderr] 30 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 21 | impl Default for emulator::modrm::ModRM { [INFO] [stderr] 22 | fn default() -> Self { [INFO] [stderr] 23 | Self::new() [INFO] [stderr] 24 | } [INFO] [stderr] 25 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:72:20 [INFO] [stderr] | [INFO] [stderr] 72 | ret |= (self.get_code8(index + i) as u32) << (i * 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.get_code8(index + i))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | self.memory[address] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.memory[address])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:118:41 [INFO] [stderr] | [INFO] [stderr] 118 | self.registers[index] = r | (value as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:121:46 [INFO] [stderr] | [INFO] [stderr] 121 | self.registers[index - 4] = r | ((value as u32) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/emulator/mod.rs:324:9 [INFO] [stderr] | [INFO] [stderr] 324 | / let sum: u32; [INFO] [stderr] 325 | | if imm8 > 0 { [INFO] [stderr] 326 | | sum = rm32 + imm8 as u32; [INFO] [stderr] 327 | | } else { [INFO] [stderr] 328 | | sum = rm32 - (imm8.abs() as u32); [INFO] [stderr] 329 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let sum = if imm8 > 0 { rm32 + imm8 as u32 } else { rm32 - (imm8.abs() as u32) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:321:20 [INFO] [stderr] | [INFO] [stderr] 321 | let imm8 = self.get_sign_code8(0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.get_sign_code8(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:335:20 [INFO] [stderr] | [INFO] [stderr] 335 | let imm8 = self.get_sign_code8(0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.get_sign_code8(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:340:51 [INFO] [stderr] | [INFO] [stderr] 340 | self.update_eflags_sub(rm32, imm8 as u32, result as u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:345:20 [INFO] [stderr] | [INFO] [stderr] 345 | let imm8 = self.get_sign_code8(0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.get_sign_code8(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:348:51 [INFO] [stderr] | [INFO] [stderr] 348 | self.update_eflags_sub(rm32, imm8 as u32, result as u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:357:13 [INFO] [stderr] | [INFO] [stderr] 357 | r32 as u64 - rm32 as u64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(r32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:357:26 [INFO] [stderr] | [INFO] [stderr] 357 | r32 as u64 - rm32 as u64 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(rm32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:359:14 [INFO] [stderr] | [INFO] [stderr] 359 | (r32 as i64 - rm32 as i64).abs() as u64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(r32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:359:27 [INFO] [stderr] | [INFO] [stderr] 359 | (r32 as i64 - rm32 as i64).abs() as u64 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(rm32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:368:13 [INFO] [stderr] | [INFO] [stderr] 368 | al as u64 - value as u64 [INFO] [stderr] | ^^^^^^^^^ help: try: `u64::from(al)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:368:25 [INFO] [stderr] | [INFO] [stderr] 368 | al as u64 - value as u64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:370:14 [INFO] [stderr] | [INFO] [stderr] 370 | (al as i32 - value as i32).abs() as u64 [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(al)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:370:26 [INFO] [stderr] | [INFO] [stderr] 370 | (al as i32 - value as i32).abs() as u64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:372:32 [INFO] [stderr] | [INFO] [stderr] 372 | self.update_eflags_sub(al as u32, value as u32, result); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(al)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:372:43 [INFO] [stderr] | [INFO] [stderr] 372 | self.update_eflags_sub(al as u32, value as u32, result); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:379:22 [INFO] [stderr] | [INFO] [stderr] 379 | let result = eax as u64 - value as u64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(eax)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:379:35 [INFO] [stderr] | [INFO] [stderr] 379 | let result = eax as u64 - value as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the `opecode @ _` pattern can be written as just `opecode` [INFO] [stderr] --> src/emulator/mod.rs:391:13 [INFO] [stderr] | [INFO] [stderr] 391 | opecode @ _ => panic!("not implemented: 83 /{}", opecode), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `opecode @ _` pattern can be written as just `opecode` [INFO] [stderr] --> src/emulator/mod.rs:412:13 [INFO] [stderr] | [INFO] [stderr] 412 | opecode @ _ => panic!("not implemented: FF /{}", opecode), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:426:21 [INFO] [stderr] | [INFO] [stderr] 426 | self.push32(value as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/emulator/mod.rs:469:9 [INFO] [stderr] | [INFO] [stderr] 469 | / match diff > 0 { [INFO] [stderr] 470 | | true => { [INFO] [stderr] 471 | | self.eip += diff as u32; [INFO] [stderr] 472 | | } [INFO] [stderr] ... | [INFO] [stderr] 475 | | } [INFO] [stderr] 476 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 469 | if diff > 0 { [INFO] [stderr] 470 | self.eip += diff as u32; [INFO] [stderr] 471 | } else { [INFO] [stderr] 472 | self.eip -= diff.abs() as u32; [INFO] [stderr] 473 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/emulator/mod.rs:481:9 [INFO] [stderr] | [INFO] [stderr] 481 | / match diff > 0 { [INFO] [stderr] 482 | | true => { [INFO] [stderr] 483 | | self.eip += diff as u32; [INFO] [stderr] 484 | | } [INFO] [stderr] ... | [INFO] [stderr] 487 | | } [INFO] [stderr] 488 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 481 | if diff > 0 { [INFO] [stderr] 482 | self.eip += diff as u32; [INFO] [stderr] 483 | } else { [INFO] [stderr] 484 | self.eip -= diff.abs() as u32; [INFO] [stderr] 485 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `REGISTERS_NAME` [INFO] [stderr] --> src/emulator/mod.rs:621:18 [INFO] [stderr] | [INFO] [stderr] 621 | for i in 0..Register::RegistersCount as usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 621 | for (i, ) in REGISTERS_NAME.iter().enumerate().take(Register::RegistersCount as usize) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:720:48 [INFO] [stderr] | [INFO] [stderr] 720 | self.set_memory8(address as usize, value as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/emulator/io.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | / match address { [INFO] [stderr] 20 | | 0x03f8 => { [INFO] [stderr] 21 | | print!("{}", value as char); [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | _ => {} [INFO] [stderr] 24 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | if let 0x03f8 = address { [INFO] [stderr] 20 | print!("{}", value as char); [INFO] [stderr] 21 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `emulator::modrm::ModRM` [INFO] [stderr] --> src/emulator/modrm.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new() -> ModRM { [INFO] [stderr] 23 | | ModRM { [INFO] [stderr] 24 | | mode: 0, [INFO] [stderr] 25 | | reg: Reg { opecode: 0 }, [INFO] [stderr] ... | [INFO] [stderr] 29 | | } [INFO] [stderr] 30 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 21 | impl Default for emulator::modrm::ModRM { [INFO] [stderr] 22 | fn default() -> Self { [INFO] [stderr] 23 | Self::new() [INFO] [stderr] 24 | } [INFO] [stderr] 25 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:72:20 [INFO] [stderr] | [INFO] [stderr] 72 | ret |= (self.get_code8(index + i) as u32) << (i * 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.get_code8(index + i))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | self.memory[address] as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.memory[address])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:118:41 [INFO] [stderr] | [INFO] [stderr] 118 | self.registers[index] = r | (value as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:121:46 [INFO] [stderr] | [INFO] [stderr] 121 | self.registers[index - 4] = r | ((value as u32) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/emulator/mod.rs:324:9 [INFO] [stderr] | [INFO] [stderr] 324 | / let sum: u32; [INFO] [stderr] 325 | | if imm8 > 0 { [INFO] [stderr] 326 | | sum = rm32 + imm8 as u32; [INFO] [stderr] 327 | | } else { [INFO] [stderr] 328 | | sum = rm32 - (imm8.abs() as u32); [INFO] [stderr] 329 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let sum = if imm8 > 0 { rm32 + imm8 as u32 } else { rm32 - (imm8.abs() as u32) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:321:20 [INFO] [stderr] | [INFO] [stderr] 321 | let imm8 = self.get_sign_code8(0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.get_sign_code8(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:335:20 [INFO] [stderr] | [INFO] [stderr] 335 | let imm8 = self.get_sign_code8(0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.get_sign_code8(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:340:51 [INFO] [stderr] | [INFO] [stderr] 340 | self.update_eflags_sub(rm32, imm8 as u32, result as u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:345:20 [INFO] [stderr] | [INFO] [stderr] 345 | let imm8 = self.get_sign_code8(0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.get_sign_code8(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:348:51 [INFO] [stderr] | [INFO] [stderr] 348 | self.update_eflags_sub(rm32, imm8 as u32, result as u64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:357:13 [INFO] [stderr] | [INFO] [stderr] 357 | r32 as u64 - rm32 as u64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(r32)` [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/main.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | let quiet = args.iter().find(|&arg| *arg == "-q".to_string()).is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|&arg| *arg == "-q".to_string()).is_some()` with `any(|&arg| *arg == "-q".to_string())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:10:41 [INFO] [stderr] | [INFO] [stderr] 10 | let quiet = args.iter().find(|&arg| *arg == "-q".to_string()).is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:11:27 [INFO] [stderr] | [INFO] [stderr] 11 | args.retain(|ref arg| **arg != "-q".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:357:26 [INFO] [stderr] | [INFO] [stderr] 357 | r32 as u64 - rm32 as u64 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(rm32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:359:14 [INFO] [stderr] | [INFO] [stderr] 359 | (r32 as i64 - rm32 as i64).abs() as u64 [INFO] [stderr] | ^^^^^^^^^^ help: try: `i64::from(r32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:359:27 [INFO] [stderr] | [INFO] [stderr] 359 | (r32 as i64 - rm32 as i64).abs() as u64 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(rm32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:368:13 [INFO] [stderr] | [INFO] [stderr] 368 | al as u64 - value as u64 [INFO] [stderr] | ^^^^^^^^^ help: try: `u64::from(al)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:368:25 [INFO] [stderr] | [INFO] [stderr] 368 | al as u64 - value as u64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:370:14 [INFO] [stderr] | [INFO] [stderr] 370 | (al as i32 - value as i32).abs() as u64 [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(al)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:370:26 [INFO] [stderr] | [INFO] [stderr] 370 | (al as i32 - value as i32).abs() as u64 [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:372:32 [INFO] [stderr] | [INFO] [stderr] 372 | self.update_eflags_sub(al as u32, value as u32, result); [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(al)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:372:43 [INFO] [stderr] | [INFO] [stderr] 372 | self.update_eflags_sub(al as u32, value as u32, result); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:379:22 [INFO] [stderr] | [INFO] [stderr] 379 | let result = eax as u64 - value as u64; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u64::from(eax)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:379:35 [INFO] [stderr] | [INFO] [stderr] 379 | let result = eax as u64 - value as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the `opecode @ _` pattern can be written as just `opecode` [INFO] [stderr] --> src/emulator/mod.rs:391:13 [INFO] [stderr] | [INFO] [stderr] 391 | opecode @ _ => panic!("not implemented: 83 /{}", opecode), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `opecode @ _` pattern can be written as just `opecode` [INFO] [stderr] --> src/emulator/mod.rs:412:13 [INFO] [stderr] | [INFO] [stderr] 412 | opecode @ _ => panic!("not implemented: FF /{}", opecode), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:426:21 [INFO] [stderr] | [INFO] [stderr] 426 | self.push32(value as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/emulator/mod.rs:469:9 [INFO] [stderr] | [INFO] [stderr] 469 | / match diff > 0 { [INFO] [stderr] 470 | | true => { [INFO] [stderr] 471 | | self.eip += diff as u32; [INFO] [stderr] 472 | | } [INFO] [stderr] ... | [INFO] [stderr] 475 | | } [INFO] [stderr] 476 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 469 | if diff > 0 { [INFO] [stderr] 470 | self.eip += diff as u32; [INFO] [stderr] 471 | } else { [INFO] [stderr] 472 | self.eip -= diff.abs() as u32; [INFO] [stderr] 473 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/emulator/mod.rs:481:9 [INFO] [stderr] | [INFO] [stderr] 481 | / match diff > 0 { [INFO] [stderr] 482 | | true => { [INFO] [stderr] 483 | | self.eip += diff as u32; [INFO] [stderr] 484 | | } [INFO] [stderr] ... | [INFO] [stderr] 487 | | } [INFO] [stderr] 488 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 481 | if diff > 0 { [INFO] [stderr] 482 | self.eip += diff as u32; [INFO] [stderr] 483 | } else { [INFO] [stderr] 484 | self.eip -= diff.abs() as u32; [INFO] [stderr] 485 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `REGISTERS_NAME` [INFO] [stderr] --> src/emulator/mod.rs:621:18 [INFO] [stderr] | [INFO] [stderr] 621 | for i in 0..Register::RegistersCount as usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 621 | for (i, ) in REGISTERS_NAME.iter().enumerate().take(Register::RegistersCount as usize) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/emulator/mod.rs:720:48 [INFO] [stderr] | [INFO] [stderr] 720 | self.set_memory8(address as usize, value as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/main.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | let quiet = args.iter().find(|&arg| *arg == "-q".to_string()).is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|&arg| *arg == "-q".to_string()).is_some()` with `any(|&arg| *arg == "-q".to_string())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:10:41 [INFO] [stderr] | [INFO] [stderr] 10 | let quiet = args.iter().find(|&arg| *arg == "-q".to_string()).is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:11:27 [INFO] [stderr] | [INFO] [stderr] 11 | args.retain(|ref arg| **arg != "-q".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.58s [INFO] running `"docker" "inspect" "582541fca3b4542e029a559fc240be697881dc2e313ad06dab426da44447bc3a"` [INFO] running `"docker" "rm" "-f" "582541fca3b4542e029a559fc240be697881dc2e313ad06dab426da44447bc3a"` [INFO] [stdout] 582541fca3b4542e029a559fc240be697881dc2e313ad06dab426da44447bc3a