[INFO] crate intel-8080-emu 0.2.0 is already in cache [INFO] extracting crate intel-8080-emu 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/intel-8080-emu/0.2.0 [INFO] extracting crate intel-8080-emu 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/intel-8080-emu/0.2.0 [INFO] validating manifest of intel-8080-emu-0.2.0 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 intel-8080-emu-0.2.0 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 intel-8080-emu-0.2.0 [INFO] finished frobbing intel-8080-emu-0.2.0 [INFO] frobbed toml for intel-8080-emu-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/intel-8080-emu/0.2.0/Cargo.toml [INFO] started frobbing intel-8080-emu-0.2.0 [INFO] finished frobbing intel-8080-emu-0.2.0 [INFO] frobbed toml for intel-8080-emu-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/intel-8080-emu/0.2.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 intel-8080-emu-0.2.0 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-0/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/reg/intel-8080-emu/0.2.0:/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] 3e41daeb022f6da707636b996d8ca02886e40132c7a5afc137de2dadda1d691c [INFO] running `"docker" "start" "-a" "3e41daeb022f6da707636b996d8ca02886e40132c7a5afc137de2dadda1d691c"` [INFO] [stderr] Checking intel-8080-emu v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1159:39 [INFO] [stderr] | [INFO] [stderr] 1159 | .with_regs(Registers { a: 0b01101110, b: 0b01101001, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1110` [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/proc_state/mod.rs:1159:54 [INFO] [stderr] | [INFO] [stderr] 1159 | .with_regs(Registers { a: 0b01101110, b: 0b01101001, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1001` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1161:33 [INFO] [stderr] | [INFO] [stderr] 1161 | .should_have_reg(A, 0b01101000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1000` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1167:35 [INFO] [stderr] | [INFO] [stderr] 1167 | .with_regs(Registers { a: 0b11101110, b: 0b11101001, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1110_1110` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1167:50 [INFO] [stderr] | [INFO] [stderr] 1167 | .with_regs(Registers { a: 0b11101110, b: 0b11101001, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1110_1001` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1187:39 [INFO] [stderr] | [INFO] [stderr] 1187 | .with_regs(Registers { a: 0b01101110, h: 0x00, l: 0x02, ..Default::default() }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1110` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1188:50 [INFO] [stderr] | [INFO] [stderr] 1188 | .with_mem_at_index(0, &[0x00, 0x00 , 0b11101001, 0xf4]) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1110_1001` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1190:33 [INFO] [stderr] | [INFO] [stderr] 1190 | .should_have_reg(A, 0b01101000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1000` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1197:26 [INFO] [stderr] | [INFO] [stderr] 1197 | .with_reg(A, 0b01101110) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1110` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1198:26 [INFO] [stderr] | [INFO] [stderr] 1198 | .with_op(Ani(0b11100000)) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1110_0000` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1199:33 [INFO] [stderr] | [INFO] [stderr] 1199 | .should_have_reg(A, 0b01100000) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_0000` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1206:39 [INFO] [stderr] | [INFO] [stderr] 1206 | .with_regs(Registers { a: 0b01101110, l: 0b01101001, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1110` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1206:54 [INFO] [stderr] | [INFO] [stderr] 1206 | .with_regs(Registers { a: 0b01101110, l: 0b01101001, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1001` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1208:33 [INFO] [stderr] | [INFO] [stderr] 1208 | .should_have_reg(A, 0b00000111); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0111` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1214:39 [INFO] [stderr] | [INFO] [stderr] 1214 | .with_regs(Registers { a: 0b01101110, h: 0x00, l: 0x12, ..Default::default() }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1110` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1215:40 [INFO] [stderr] | [INFO] [stderr] 1215 | .with_mem_at_index(0x12, &[0b00101001]) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_1001` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1217:33 [INFO] [stderr] | [INFO] [stderr] 1217 | .should_have_reg(A, 0b01000111); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0111` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1223:26 [INFO] [stderr] | [INFO] [stderr] 1223 | .with_reg(A, 0b01101110) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1110` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1224:26 [INFO] [stderr] | [INFO] [stderr] 1224 | .with_op(Xri(0b00101001)) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_1001` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1225:33 [INFO] [stderr] | [INFO] [stderr] 1225 | .should_have_reg(A, 0b01000111); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0111` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1231:39 [INFO] [stderr] | [INFO] [stderr] 1231 | .with_regs(Registers { a: 0b01101110, l: 0b01101001, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1110` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1231:54 [INFO] [stderr] | [INFO] [stderr] 1231 | .with_regs(Registers { a: 0b01101110, l: 0b01101001, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1001` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1233:33 [INFO] [stderr] | [INFO] [stderr] 1233 | .should_have_reg(A, 0b01101111); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1111` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1239:39 [INFO] [stderr] | [INFO] [stderr] 1239 | .with_regs(Registers { a: 0b01101110, h: 0x00, l: 0x12, ..Default::default() }) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1110` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1240:40 [INFO] [stderr] | [INFO] [stderr] 1240 | .with_mem_at_index(0x12, &[0b00101001]) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_1001` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1242:33 [INFO] [stderr] | [INFO] [stderr] 1242 | .should_have_reg(A, 0b01101111); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1111` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1248:26 [INFO] [stderr] | [INFO] [stderr] 1248 | .with_reg(A, 0b01101110) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1110` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1249:26 [INFO] [stderr] | [INFO] [stderr] 1249 | .with_op(Ori(0b00101001)) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_1001` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1250:33 [INFO] [stderr] | [INFO] [stderr] 1250 | .should_have_reg(A, 0b01101111); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_1111` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1300:26 [INFO] [stderr] | [INFO] [stderr] 1300 | .with_reg(A, 0b10010101) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1001_0101` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1302:33 [INFO] [stderr] | [INFO] [stderr] 1302 | .should_have_reg(A, 0b000101011) [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b0_0010_1011` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1309:26 [INFO] [stderr] | [INFO] [stderr] 1309 | .with_reg(A, 0b00010101) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0101` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1311:33 [INFO] [stderr] | [INFO] [stderr] 1311 | .should_have_reg(A, 0b10001010) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_1010` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1338:26 [INFO] [stderr] | [INFO] [stderr] 1338 | .with_reg(A, 0b01100101) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0110_0101` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1340:33 [INFO] [stderr] | [INFO] [stderr] 1340 | .should_have_reg(A, 0b10011010); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1001_1010` [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: long literal lacking separators [INFO] [stderr] --> src/proc_state/mod.rs:1653:38 [INFO] [stderr] | [INFO] [stderr] 1653 | .should_have_mem(0xff06, 0b10010011) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1001_0011` [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: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/flags.rs:31:63 [INFO] [stderr] | [INFO] [stderr] 31 | self.ac = (operand1 & 0x000f) + ((result.wrapping_sub(operand1 as i16)) & 0x000f) as u8 > 0x0f; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i16::from(operand1)` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/flags.rs:38:63 [INFO] [stderr] | [INFO] [stderr] 38 | self.ac = (operand1 & 0x000f) + ((result.wrapping_sub(operand1 as i16)) & 0x000f) as u8 > 0x0f; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i16::from(operand1)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:53:27 [INFO] [stderr] | [INFO] [stderr] 53 | Reg16::B => ((self.b as u16) << 8) + self.c as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.b)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:53:51 [INFO] [stderr] | [INFO] [stderr] 53 | Reg16::B => ((self.b as u16) << 8) + self.c as u16, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(self.c)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:54:26 [INFO] [stderr] | [INFO] [stderr] 54 | Reg16::D => ((self.d as u16) << 8) + self.e as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.d)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:54:50 [INFO] [stderr] | [INFO] [stderr] 54 | Reg16::D => ((self.d as u16) << 8) + self.e as u16, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(self.e)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:55:26 [INFO] [stderr] | [INFO] [stderr] 55 | Reg16::H => ((self.h as u16) << 8) + self.l as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.h)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:55:50 [INFO] [stderr] | [INFO] [stderr] 55 | Reg16::H => ((self.h as u16) << 8) + self.l as u16, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(self.l)` [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 loop variable `i` is only used to index `bytes`. [INFO] [stderr] --> src/proc_state/mod.rs:128:18 [INFO] [stderr] | [INFO] [stderr] 128 | for i in 0..3 { [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] 128 | for in &mut bytes { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/proc_state/mod.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | / fn apply_op(&mut self, op: OpCode) { [INFO] [stderr] 136 | | let pc_before = self.registers.pc; [INFO] [stderr] 137 | | match op { [INFO] [stderr] 138 | | Nop => (), [INFO] [stderr] ... | [INFO] [stderr] 248 | | self.states += op.states(pc_before != self.registers().pc); [INFO] [stderr] 249 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:160:51 [INFO] [stderr] | [INFO] [stderr] 160 | Adi(value) => self.add_to_accumulator(value as i16), [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:166:52 [INFO] [stderr] | [INFO] [stderr] 166 | Sui(value) => self.add_to_accumulator(-(value as i16)), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:228:43 [INFO] [stderr] | [INFO] [stderr] 228 | Rst(value) => self.apply_call((value * 8) as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(value * 8)` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:290:33 [INFO] [stderr] | [INFO] [stderr] 290 | self.add_to_accumulator(value as i16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:295:33 [INFO] [stderr] | [INFO] [stderr] 295 | self.add_to_accumulator(value as i16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:302:33 [INFO] [stderr] | [INFO] [stderr] 302 | self.add_to_accumulator(value.wrapping_add(carry) as i16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:308:33 [INFO] [stderr] | [INFO] [stderr] 308 | self.add_to_accumulator(value.wrapping_add(carry) as i16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:313:33 [INFO] [stderr] | [INFO] [stderr] 313 | self.add_to_accumulator(value.wrapping_add(carry) as i16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | self.add_to_accumulator(-(value as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:323:34 [INFO] [stderr] | [INFO] [stderr] 323 | self.add_to_accumulator(-(value as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:329:34 [INFO] [stderr] | [INFO] [stderr] 329 | self.add_to_accumulator(-(value.wrapping_add(carry) as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:336:34 [INFO] [stderr] | [INFO] [stderr] 336 | self.add_to_accumulator(-(value.wrapping_add(carry) as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:341:34 [INFO] [stderr] | [INFO] [stderr] 341 | self.add_to_accumulator(-(value.wrapping_add(carry) as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:346:27 [INFO] [stderr] | [INFO] [stderr] 346 | let result: i16 = (a as i16).wrapping_add(value) ; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i16::from(a)` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:354:22 [INFO] [stderr] | [INFO] [stderr] 354 | let result = (value as i16) + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:364:55 [INFO] [stderr] | [INFO] [stderr] 364 | self.flags.set_flags_except_carry_for(result, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:369:22 [INFO] [stderr] | [INFO] [stderr] 369 | let result = (value as i16).wrapping_sub(1); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:379:55 [INFO] [stderr] | [INFO] [stderr] 379 | self.flags.set_flags_except_carry_for(result, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:395:17 [INFO] [stderr] | [INFO] [stderr] 395 | let h = self.registers.reg_16_val(Reg16::H) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.registers.reg_16_val(Reg16::H))` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:396:21 [INFO] [stderr] | [INFO] [stderr] 396 | let value = self.registers.reg_16_val(reg) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.registers.reg_16_val(reg))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:410:17 [INFO] [stderr] | [INFO] [stderr] 410 | let a = self.registers.reg_val(Register::A) as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(self.registers.reg_val(Register::A))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:419:17 [INFO] [stderr] | [INFO] [stderr] 419 | let a = self.registers.reg_val(Register::A) as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(self.registers.reg_val(Register::A))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:447:37 [INFO] [stderr] | [INFO] [stderr] 447 | self.flags.set_flags_for(a, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:464:37 [INFO] [stderr] | [INFO] [stderr] 464 | self.flags.set_flags_for(a, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:482:37 [INFO] [stderr] | [INFO] [stderr] 482 | self.flags.set_flags_for(a, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:498:37 [INFO] [stderr] | [INFO] [stderr] 498 | self.flags.set_flags_for(a, a as i16 - value as i16); [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(a)` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:498:48 [INFO] [stderr] | [INFO] [stderr] 498 | self.flags.set_flags_for(a, a as i16 - value as i16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i16::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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:543:30 [INFO] [stderr] | [INFO] [stderr] 543 | self.registers.pc = ((high as u16) << 8) + low as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(high)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:543:52 [INFO] [stderr] | [INFO] [stderr] 543 | self.registers.pc = ((high as u16) << 8) + low as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(low)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:573:9 [INFO] [stderr] | [INFO] [stderr] 573 | self.memory[addr as usize] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.memory[addr as usize])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:574:13 [INFO] [stderr] | [INFO] [stderr] 574 | + ((self.memory[addr.wrapping_add(1) as usize] as u16) << 8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.memory[addr.wrapping_add(1) as usize])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:579:22 [INFO] [stderr] | [INFO] [stderr] 579 | let value = ((self.registers.reg_val(Register::A) as u16) << 8) + self.flags.to_processor_status_word() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.registers.reg_val(Register::A))` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:579:75 [INFO] [stderr] | [INFO] [stderr] 579 | let value = ((self.registers.reg_val(Register::A) as u16) << 8) + self.flags.to_processor_status_word() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.flags.to_processor_status_word())` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/opcode/opcodes.rs:152:17 [INFO] [stderr] | [INFO] [stderr] 152 | pub fn size(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/opcode/opcodes.rs:196:19 [INFO] [stderr] | [INFO] [stderr] 196 | pub fn cycles(&self, jumped: bool) -> u64 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/opcode/opcodes.rs:286:19 [INFO] [stderr] | [INFO] [stderr] 286 | pub fn states(&self, jumped: bool) -> u64 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/opcode/mod.rs:19:32 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn read_opcode_safe(bytes: &[u8;3]) -> OpCode { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `[u8;3]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/opcode/mod.rs:82:45 [INFO] [stderr] | [INFO] [stderr] 82 | 0x36 => expect_data_byte(bytes).map(|v| MviM(v)), [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `MviM` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/opcode/mod.rs:289:45 [INFO] [stderr] | [INFO] [stderr] 289 | expect_2_data_bytes(bytes).map(|(a,b)| ((b as u16) << 8) | a as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(b)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/opcode/mod.rs:289:64 [INFO] [stderr] | [INFO] [stderr] 289 | expect_2_data_bytes(bytes).map(|(a,b)| ((b as u16) << 8) | a as u16) [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(a)` [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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/opcode/mod.rs:299:5 [INFO] [stderr] | [INFO] [stderr] 299 | bytes.get(1).map(|a| *a).ok_or(UnexpectedEndOfInput) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `bytes.get(1).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/bin/disassembler.rs:12:37 [INFO] [stderr] | [INFO] [stderr] 12 | let file_path: Option = std::env::args().skip(1).next(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/bin/disassembler.rs:12:37 [INFO] [stderr] | [INFO] [stderr] 12 | let file_path: Option = std::env::args().skip(1).next(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/flags.rs:31:63 [INFO] [stderr] | [INFO] [stderr] 31 | self.ac = (operand1 & 0x000f) + ((result.wrapping_sub(operand1 as i16)) & 0x000f) as u8 > 0x0f; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i16::from(operand1)` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/flags.rs:38:63 [INFO] [stderr] | [INFO] [stderr] 38 | self.ac = (operand1 & 0x000f) + ((result.wrapping_sub(operand1 as i16)) & 0x000f) as u8 > 0x0f; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i16::from(operand1)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:53:27 [INFO] [stderr] | [INFO] [stderr] 53 | Reg16::B => ((self.b as u16) << 8) + self.c as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.b)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:53:51 [INFO] [stderr] | [INFO] [stderr] 53 | Reg16::B => ((self.b as u16) << 8) + self.c as u16, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(self.c)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:54:26 [INFO] [stderr] | [INFO] [stderr] 54 | Reg16::D => ((self.d as u16) << 8) + self.e as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.d)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:54:50 [INFO] [stderr] | [INFO] [stderr] 54 | Reg16::D => ((self.d as u16) << 8) + self.e as u16, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(self.e)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:55:26 [INFO] [stderr] | [INFO] [stderr] 55 | Reg16::H => ((self.h as u16) << 8) + self.l as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.h)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/registers.rs:55:50 [INFO] [stderr] | [INFO] [stderr] 55 | Reg16::H => ((self.h as u16) << 8) + self.l as u16, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(self.l)` [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 loop variable `i` is only used to index `bytes`. [INFO] [stderr] --> src/proc_state/mod.rs:128:18 [INFO] [stderr] | [INFO] [stderr] 128 | for i in 0..3 { [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] 128 | for in &mut bytes { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/proc_state/mod.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | / fn apply_op(&mut self, op: OpCode) { [INFO] [stderr] 136 | | let pc_before = self.registers.pc; [INFO] [stderr] 137 | | match op { [INFO] [stderr] 138 | | Nop => (), [INFO] [stderr] ... | [INFO] [stderr] 248 | | self.states += op.states(pc_before != self.registers().pc); [INFO] [stderr] 249 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:160:51 [INFO] [stderr] | [INFO] [stderr] 160 | Adi(value) => self.add_to_accumulator(value as i16), [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:166:52 [INFO] [stderr] | [INFO] [stderr] 166 | Sui(value) => self.add_to_accumulator(-(value as i16)), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:228:43 [INFO] [stderr] | [INFO] [stderr] 228 | Rst(value) => self.apply_call((value * 8) as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(value * 8)` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:290:33 [INFO] [stderr] | [INFO] [stderr] 290 | self.add_to_accumulator(value as i16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:295:33 [INFO] [stderr] | [INFO] [stderr] 295 | self.add_to_accumulator(value as i16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:302:33 [INFO] [stderr] | [INFO] [stderr] 302 | self.add_to_accumulator(value.wrapping_add(carry) as i16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:308:33 [INFO] [stderr] | [INFO] [stderr] 308 | self.add_to_accumulator(value.wrapping_add(carry) as i16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:313:33 [INFO] [stderr] | [INFO] [stderr] 313 | self.add_to_accumulator(value.wrapping_add(carry) as i16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | self.add_to_accumulator(-(value as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:323:34 [INFO] [stderr] | [INFO] [stderr] 323 | self.add_to_accumulator(-(value as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:329:34 [INFO] [stderr] | [INFO] [stderr] 329 | self.add_to_accumulator(-(value.wrapping_add(carry) as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:336:34 [INFO] [stderr] | [INFO] [stderr] 336 | self.add_to_accumulator(-(value.wrapping_add(carry) as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:341:34 [INFO] [stderr] | [INFO] [stderr] 341 | self.add_to_accumulator(-(value.wrapping_add(carry) as i16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value.wrapping_add(carry))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:346:27 [INFO] [stderr] | [INFO] [stderr] 346 | let result: i16 = (a as i16).wrapping_add(value) ; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i16::from(a)` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:354:22 [INFO] [stderr] | [INFO] [stderr] 354 | let result = (value as i16) + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:364:55 [INFO] [stderr] | [INFO] [stderr] 364 | self.flags.set_flags_except_carry_for(result, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:369:22 [INFO] [stderr] | [INFO] [stderr] 369 | let result = (value as i16).wrapping_sub(1); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:379:55 [INFO] [stderr] | [INFO] [stderr] 379 | self.flags.set_flags_except_carry_for(result, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:395:17 [INFO] [stderr] | [INFO] [stderr] 395 | let h = self.registers.reg_16_val(Reg16::H) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.registers.reg_16_val(Reg16::H))` [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 u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:396:21 [INFO] [stderr] | [INFO] [stderr] 396 | let value = self.registers.reg_16_val(reg) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.registers.reg_16_val(reg))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:410:17 [INFO] [stderr] | [INFO] [stderr] 410 | let a = self.registers.reg_val(Register::A) as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(self.registers.reg_val(Register::A))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:419:17 [INFO] [stderr] | [INFO] [stderr] 419 | let a = self.registers.reg_val(Register::A) as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(self.registers.reg_val(Register::A))` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:447:37 [INFO] [stderr] | [INFO] [stderr] 447 | self.flags.set_flags_for(a, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:464:37 [INFO] [stderr] | [INFO] [stderr] 464 | self.flags.set_flags_for(a, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:482:37 [INFO] [stderr] | [INFO] [stderr] 482 | self.flags.set_flags_for(a, result as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::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 u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:498:37 [INFO] [stderr] | [INFO] [stderr] 498 | self.flags.set_flags_for(a, a as i16 - value as i16); [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(a)` [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:498:48 [INFO] [stderr] | [INFO] [stderr] 498 | self.flags.set_flags_for(a, a as i16 - value as i16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i16::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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:543:30 [INFO] [stderr] | [INFO] [stderr] 543 | self.registers.pc = ((high as u16) << 8) + low as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(high)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:543:52 [INFO] [stderr] | [INFO] [stderr] 543 | self.registers.pc = ((high as u16) << 8) + low as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(low)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:573:9 [INFO] [stderr] | [INFO] [stderr] 573 | self.memory[addr as usize] as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.memory[addr as usize])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:574:13 [INFO] [stderr] | [INFO] [stderr] 574 | + ((self.memory[addr.wrapping_add(1) as usize] as u16) << 8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.memory[addr.wrapping_add(1) as usize])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:579:22 [INFO] [stderr] | [INFO] [stderr] 579 | let value = ((self.registers.reg_val(Register::A) as u16) << 8) + self.flags.to_processor_status_word() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.registers.reg_val(Register::A))` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/proc_state/mod.rs:579:75 [INFO] [stderr] | [INFO] [stderr] 579 | let value = ((self.registers.reg_val(Register::A) as u16) << 8) + self.flags.to_processor_status_word() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.flags.to_processor_status_word())` [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: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> tests/cpudiag.rs:48:80 [INFO] [stderr] | [INFO] [stderr] 48 | let message: String = cpu.memory()[(char_addr as usize)..].into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> tests/cpudiag.rs:49:56 [INFO] [stderr] | [INFO] [stderr] 49 | .take_while(|value| **value != '$' as u8).map(|v| char::from(*v)).collect(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'$' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/opcode/opcodes.rs:152:17 [INFO] [stderr] | [INFO] [stderr] 152 | pub fn size(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/opcode/opcodes.rs:196:19 [INFO] [stderr] | [INFO] [stderr] 196 | pub fn cycles(&self, jumped: bool) -> u64 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/opcode/opcodes.rs:286:19 [INFO] [stderr] | [INFO] [stderr] 286 | pub fn states(&self, jumped: bool) -> u64 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/opcode/mod.rs:19:32 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn read_opcode_safe(bytes: &[u8;3]) -> OpCode { [INFO] [stderr] | ^^^^^^^ help: consider passing by value instead: `[u8;3]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/opcode/mod.rs:82:45 [INFO] [stderr] | [INFO] [stderr] 82 | 0x36 => expect_data_byte(bytes).map(|v| MviM(v)), [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `MviM` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/opcode/mod.rs:289:45 [INFO] [stderr] | [INFO] [stderr] 289 | expect_2_data_bytes(bytes).map(|(a,b)| ((b as u16) << 8) | a as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(b)` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/opcode/mod.rs:289:64 [INFO] [stderr] | [INFO] [stderr] 289 | expect_2_data_bytes(bytes).map(|(a,b)| ((b as u16) << 8) | a as u16) [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(a)` [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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/opcode/mod.rs:299:5 [INFO] [stderr] | [INFO] [stderr] 299 | bytes.get(1).map(|a| *a).ok_or(UnexpectedEndOfInput) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `bytes.get(1).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.43s [INFO] running `"docker" "inspect" "3e41daeb022f6da707636b996d8ca02886e40132c7a5afc137de2dadda1d691c"` [INFO] running `"docker" "rm" "-f" "3e41daeb022f6da707636b996d8ca02886e40132c7a5afc137de2dadda1d691c"` [INFO] [stdout] 3e41daeb022f6da707636b996d8ca02886e40132c7a5afc137de2dadda1d691c