[INFO] updating cached repository bikefrivolously/futilenes [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/bikefrivolously/futilenes [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/bikefrivolously/futilenes" "work/ex/clippy-test-run/sources/stable/gh/bikefrivolously/futilenes"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/bikefrivolously/futilenes'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/bikefrivolously/futilenes" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bikefrivolously/futilenes"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bikefrivolously/futilenes'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7e73c5286b499d0f0ef7cf722fb3581c9a6b26a7 [INFO] sha for GitHub repo bikefrivolously/futilenes: 7e73c5286b499d0f0ef7cf722fb3581c9a6b26a7 [INFO] validating manifest of bikefrivolously/futilenes 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 bikefrivolously/futilenes 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 bikefrivolously/futilenes [INFO] finished frobbing bikefrivolously/futilenes [INFO] frobbed toml for bikefrivolously/futilenes written to work/ex/clippy-test-run/sources/stable/gh/bikefrivolously/futilenes/Cargo.toml [INFO] started frobbing bikefrivolously/futilenes [INFO] finished frobbing bikefrivolously/futilenes [INFO] frobbed toml for bikefrivolously/futilenes written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bikefrivolously/futilenes/Cargo.toml [INFO] crate bikefrivolously/futilenes 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 bikefrivolously/futilenes against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/bikefrivolously/futilenes:/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" "-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] 486560b117314b8c4c62f8ffc323c923cb7deba99540d206dafba42252f38234 [INFO] running `"docker" "start" "-a" "486560b117314b8c4c62f8ffc323c923cb7deba99540d206dafba42252f38234"` [INFO] [stderr] Checking futilenes v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/rom.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | has_trainer: has_trainer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `has_trainer` [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/rom.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | mapper: mapper, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `mapper` [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/rom.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | prg_rom_size: prg_rom_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prg_rom_size` [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/rom.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | prg_rom_cnt: prg_rom_cnt, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prg_rom_cnt` [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/rom.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | chr_rom_size: chr_rom_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `chr_rom_size` [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/rom.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | flags6: flags6, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `flags6` [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/rom.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | flags7: flags7, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `flags7` [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/rom.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | prg_ram_size: prg_ram_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prg_ram_size` [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/rom.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | flags9: flags9, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `flags9` [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/rom.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | flags10: flags10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `flags10` [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/rom.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | zeros: zeros, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `zeros` [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/rom.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | trainer: trainer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `trainer` [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/rom.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | prg_rom: prg_rom, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `prg_rom` [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/cpu.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | reg_pc: reg_pc, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reg_pc` [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/cpu.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | reg_sp: reg_sp, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reg_sp` [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/cpu.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | reg_p: reg_p, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `reg_p` [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/cpu.rs:1003:32 [INFO] [stderr] | [INFO] [stderr] 1003 | MemoryAddressingMode { address: address } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [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/memory.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | mapper: mapper, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `mapper` [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/mapper.rs:16:50 [INFO] [stderr] | [INFO] [stderr] 16 | Mapper { upper_bank: up, lower_bank: lo, rom: rom } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rom` [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/rom.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | has_trainer: has_trainer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `has_trainer` [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/rom.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | mapper: mapper, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `mapper` [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/rom.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | prg_rom_size: prg_rom_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prg_rom_size` [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/rom.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | prg_rom_cnt: prg_rom_cnt, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prg_rom_cnt` [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/rom.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | chr_rom_size: chr_rom_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `chr_rom_size` [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/rom.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | flags6: flags6, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `flags6` [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/rom.rs:83:13 [INFO] [stderr] | [INFO] [stderr] 83 | flags7: flags7, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `flags7` [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/rom.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | prg_ram_size: prg_ram_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prg_ram_size` [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/rom.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | flags9: flags9, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `flags9` [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/rom.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | flags10: flags10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `flags10` [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/rom.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | zeros: zeros, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `zeros` [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/rom.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | trainer: trainer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `trainer` [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/rom.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | prg_rom: prg_rom, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `prg_rom` [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/cpu.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | reg_pc: reg_pc, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reg_pc` [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/cpu.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | reg_sp: reg_sp, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reg_sp` [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/cpu.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | reg_p: reg_p, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `reg_p` [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/cpu.rs:1003:32 [INFO] [stderr] | [INFO] [stderr] 1003 | MemoryAddressingMode { address: address } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `address` [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/memory.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | mapper: mapper, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `mapper` [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/mapper.rs:16:50 [INFO] [stderr] | [INFO] [stderr] 16 | Mapper { upper_bank: up, lower_bank: lo, rom: rom } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rom` [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/rom.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | if m[0] != 'N' as u8 || m[1] != 'E' as u8 || m[2] != 'S' as u8 || m[3] != 0x1A { [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'N' [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/rom.rs:30:41 [INFO] [stderr] | [INFO] [stderr] 30 | if m[0] != 'N' as u8 || m[1] != 'E' as u8 || m[2] != 'S' as u8 || m[3] != 0x1A { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'E' [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/rom.rs:30:62 [INFO] [stderr] | [INFO] [stderr] 30 | if m[0] != 'N' as u8 || m[1] != 'E' as u8 || m[2] != 'S' as u8 || m[3] != 0x1A { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'S' [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:34:28 [INFO] [stderr] | [INFO] [stderr] 34 | let prg_rom_size = prg_rom_cnt as u32 * 16384; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(prg_rom_cnt)` [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/rom.rs:37:28 [INFO] [stderr] | [INFO] [stderr] 37 | let chr_rom_size = chr_rom_cnt as u32 * 8192; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(chr_rom_cnt)` [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/rom.rs:41:28 [INFO] [stderr] | [INFO] [stderr] 41 | let prg_ram_size = header[8] as u32 * 8192; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(header[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: the loop variable `i` is only used to index `trainer`. [INFO] [stderr] --> src/rom.rs:55:22 [INFO] [stderr] | [INFO] [stderr] 55 | for i in 0..0x200 { [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] 55 | for in &mut trainer { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/rom.rs:57:17 [INFO] [stderr] | [INFO] [stderr] 57 | pos = pos + 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `pos += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `page`. [INFO] [stderr] --> src/rom.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | for j in 0..0x4000 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [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] 66 | for in &mut page { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/rom.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | pos = pos + 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `pos += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [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] --> src/rom.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | if m[0] != 'N' as u8 || m[1] != 'E' as u8 || m[2] != 'S' as u8 || m[3] != 0x1A { [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'N' [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/rom.rs:30:41 [INFO] [stderr] | [INFO] [stderr] 30 | if m[0] != 'N' as u8 || m[1] != 'E' as u8 || m[2] != 'S' as u8 || m[3] != 0x1A { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'E' [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: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/rom.rs:30:62 [INFO] [stderr] | [INFO] [stderr] 30 | if m[0] != 'N' as u8 || m[1] != 'E' as u8 || m[2] != 'S' as u8 || m[3] != 0x1A { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'S' [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/rom.rs:34:28 [INFO] [stderr] | [INFO] [stderr] 34 | let prg_rom_size = prg_rom_cnt as u32 * 16384; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(prg_rom_cnt)` [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/rom.rs:37:28 [INFO] [stderr] | [INFO] [stderr] 37 | let chr_rom_size = chr_rom_cnt as u32 * 8192; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u32::from(chr_rom_cnt)` [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/rom.rs:41:28 [INFO] [stderr] | [INFO] [stderr] 41 | let prg_ram_size = header[8] as u32 * 8192; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(header[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: the loop variable `i` is only used to index `trainer`. [INFO] [stderr] --> src/rom.rs:55:22 [INFO] [stderr] | [INFO] [stderr] 55 | for i in 0..0x200 { [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] 55 | for in &mut trainer { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/rom.rs:57:17 [INFO] [stderr] | [INFO] [stderr] 57 | pos = pos + 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `pos += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `page`. [INFO] [stderr] --> src/rom.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | for j in 0..0x4000 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [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] 66 | for in &mut page { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/rom.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | pos = pos + 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `pos += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:496:23 [INFO] [stderr] | [INFO] [stderr] 496 | let result = (value as u16 + 1) as u8; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::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/cpu.rs:502:23 [INFO] [stderr] | [INFO] [stderr] 502 | let result = (value as i16 - 1) as u8; [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:525:20 [INFO] [stderr] | [INFO] [stderr] 525 | let bit0 = match self.reg_p.carry { [INFO] [stderr] | ____________________^ [INFO] [stderr] 526 | | true => 0x01, [INFO] [stderr] 527 | | false => 0x00, [INFO] [stderr] 528 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.reg_p.carry { 0x01 } else { 0x00 }` [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] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:537:20 [INFO] [stderr] | [INFO] [stderr] 537 | let bit7 = match self.reg_p.carry { [INFO] [stderr] | ____________________^ [INFO] [stderr] 538 | | true => 0x80, [INFO] [stderr] 539 | | false => 0x00, [INFO] [stderr] 540 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.reg_p.carry { 0x80 } else { 0x00 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:552:23 [INFO] [stderr] | [INFO] [stderr] 552 | self.reg_pc = (pch as u16) << 8 | pcl as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(pch)` [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/cpu.rs:552:43 [INFO] [stderr] | [INFO] [stderr] 552 | self.reg_pc = (pch as u16) << 8 | pcl as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(pcl)` [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/cpu.rs:603:22 [INFO] [stderr] | [INFO] [stderr] 603 | let result = self.reg_x as u16 + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_x)` [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/cpu.rs:607:22 [INFO] [stderr] | [INFO] [stderr] 607 | let result = self.reg_y as u16 + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_y)` [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/cpu.rs:611:22 [INFO] [stderr] | [INFO] [stderr] 611 | let result = self.reg_x as i16 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i16::from(self.reg_x)` [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/cpu.rs:615:22 [INFO] [stderr] | [INFO] [stderr] 615 | let result = self.reg_y as i16 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i16::from(self.reg_y)` [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/cpu.rs:620:30 [INFO] [stderr] | [INFO] [stderr] 620 | let mut tmp_result = self.reg_a as u16 + value as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_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/cpu.rs:620:50 [INFO] [stderr] | [INFO] [stderr] 620 | let mut tmp_result = self.reg_a as u16 + value as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::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] error: this `if` has identical blocks [INFO] [stderr] --> src/cpu.rs:632:89 [INFO] [stderr] | [INFO] [stderr] 632 | else if (self.reg_a & 0x80) != 0 && (value & 0x80) != 0 && (result & 0x80) == 0 { [INFO] [stderr] | _________________________________________________________________________________________^ [INFO] [stderr] 633 | | self.reg_p.overflow = true; [INFO] [stderr] 634 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/cpu.rs:629:84 [INFO] [stderr] | [INFO] [stderr] 629 | if (self.reg_a & 0x80) == 0 && (value & 0x80) == 0 && (result & 0x80) != 0 { [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 630 | | self.reg_p.overflow = true; [INFO] [stderr] 631 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:643:26 [INFO] [stderr] | [INFO] [stderr] 643 | let mut result = a as i16 - m 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/cpu.rs:643:37 [INFO] [stderr] | [INFO] [stderr] 643 | let mut result = a as i16 - m as i16; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(m)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/cpu.rs:654:76 [INFO] [stderr] | [INFO] [stderr] 654 | else if (a & 0x80) != 0 && (m & 0x80) == 0 && (result & 0x80) == 0 { [INFO] [stderr] | ____________________________________________________________________________^ [INFO] [stderr] 655 | | self.reg_p.overflow = true; [INFO] [stderr] 656 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/cpu.rs:651:71 [INFO] [stderr] | [INFO] [stderr] 651 | if (a & 0x80) == 0 && (m & 0x80) != 0 && (result & 0x80) != 0 { [INFO] [stderr] | _______________________________________________________________________^ [INFO] [stderr] 652 | | self.reg_p.overflow = true; [INFO] [stderr] 653 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/cpu.rs:668:9 [INFO] [stderr] | [INFO] [stderr] 668 | / let address: u16; [INFO] [stderr] 669 | | if indirect_address & 0x00FF == 0x00FF { [INFO] [stderr] 670 | | // implement CPU bug [INFO] [stderr] 671 | | let page = indirect_address & 0xFF00; [INFO] [stderr] ... | [INFO] [stderr] 677 | | address = self.memory.readw(indirect_address); [INFO] [stderr] 678 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let address = if indirect_address & 0x00FF == 0x00FF { ..; ((msb as u16) << 8) | lsb as u16 } else { self.memory.readw(indirect_address) };` [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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:674:24 [INFO] [stderr] | [INFO] [stderr] 674 | address = ((msb as u16) << 8) | lsb as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(msb)` [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/cpu.rs:674:45 [INFO] [stderr] | [INFO] [stderr] 674 | address = ((msb as u16) << 8) | lsb as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(lsb)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:683:9 [INFO] [stderr] | [INFO] [stderr] 683 | self.reg_pc = self.reg_pc - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_pc -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:693:25 [INFO] [stderr] | [INFO] [stderr] 693 | self.reg_pc = (((pc_hi as u16) << 8) | pc_lo as u16) + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(pc_hi)` [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/cpu.rs:693:48 [INFO] [stderr] | [INFO] [stderr] 693 | self.reg_pc = (((pc_hi as u16) << 8) | pc_lo as u16) + 1; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(pc_lo)` [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/cpu.rs:768:17 [INFO] [stderr] | [INFO] [stderr] 768 | let v = (register as i16) - (value as i16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i16::from(register)` [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/cpu.rs:768:37 [INFO] [stderr] | [INFO] [stderr] 768 | let v = (register 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: equality checks against true are unnecessary [INFO] [stderr] --> src/cpu.rs:789:12 [INFO] [stderr] | [INFO] [stderr] 789 | if self.reg_p.carry == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.reg_p.carry` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cpu.rs:795:12 [INFO] [stderr] | [INFO] [stderr] 795 | if self.reg_p.carry == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.reg_p.carry` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cpu.rs:801:12 [INFO] [stderr] | [INFO] [stderr] 801 | if self.reg_p.zero == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.reg_p.zero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cpu.rs:807:12 [INFO] [stderr] | [INFO] [stderr] 807 | if self.reg_p.zero == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.reg_p.zero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cpu.rs:813:12 [INFO] [stderr] | [INFO] [stderr] 813 | if self.reg_p.negative == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.reg_p.negative` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cpu.rs:819:12 [INFO] [stderr] | [INFO] [stderr] 819 | if self.reg_p.negative == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.reg_p.negative` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cpu.rs:825:12 [INFO] [stderr] | [INFO] [stderr] 825 | if self.reg_p.overflow == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.reg_p.overflow` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cpu.rs:831:12 [INFO] [stderr] | [INFO] [stderr] 831 | if self.reg_p.overflow == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.reg_p.overflow` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:846:23 [INFO] [stderr] | [INFO] [stderr] 846 | let result = (value as i16 - 1) as u8; [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/cpu.rs:856:23 [INFO] [stderr] | [INFO] [stderr] 856 | let result = (value as u16 + 1) as u8; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::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/cpu.rs:862:26 [INFO] [stderr] | [INFO] [stderr] 862 | let mut result = a as i16 - m 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/cpu.rs:862:37 [INFO] [stderr] | [INFO] [stderr] 862 | let mut result = a as i16 - m as i16; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(m)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/cpu.rs:873:76 [INFO] [stderr] | [INFO] [stderr] 873 | else if (a & 0x80) != 0 && (m & 0x80) == 0 && (result & 0x80) == 0 { [INFO] [stderr] | ____________________________________________________________________________^ [INFO] [stderr] 874 | | self.reg_p.overflow = true; [INFO] [stderr] 875 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/cpu.rs:870:71 [INFO] [stderr] | [INFO] [stderr] 870 | if (a & 0x80) == 0 && (m & 0x80) != 0 && (result & 0x80) != 0 { [INFO] [stderr] | _______________________________________________________________________^ [INFO] [stderr] 871 | | self.reg_p.overflow = true; [INFO] [stderr] 872 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:890:20 [INFO] [stderr] | [INFO] [stderr] 890 | let bit0 = match self.reg_p.carry { [INFO] [stderr] | ____________________^ [INFO] [stderr] 891 | | true => 0x01, [INFO] [stderr] 892 | | false => 0x00, [INFO] [stderr] 893 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.reg_p.carry { 0x01 } else { 0x00 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:907:20 [INFO] [stderr] | [INFO] [stderr] 907 | let bit7 = match self.reg_p.carry { [INFO] [stderr] | ____________________^ [INFO] [stderr] 908 | | true => 0x80, [INFO] [stderr] 909 | | false => 0x00, [INFO] [stderr] 910 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.reg_p.carry { 0x80 } else { 0x00 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:919:30 [INFO] [stderr] | [INFO] [stderr] 919 | let mut tmp_result = self.reg_a as u16 + value as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_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/cpu.rs:919:50 [INFO] [stderr] | [INFO] [stderr] 919 | let mut tmp_result = self.reg_a as u16 + value as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::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] error: this `if` has identical blocks [INFO] [stderr] --> src/cpu.rs:931:89 [INFO] [stderr] | [INFO] [stderr] 931 | else if (self.reg_a & 0x80) != 0 && (value & 0x80) != 0 && (result & 0x80) == 0 { [INFO] [stderr] | _________________________________________________________________________________________^ [INFO] [stderr] 932 | | self.reg_p.overflow = true; [INFO] [stderr] 933 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/cpu.rs:928:84 [INFO] [stderr] | [INFO] [stderr] 928 | if (self.reg_a & 0x80) == 0 && (value & 0x80) == 0 && (result & 0x80) != 0 { [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 929 | | self.reg_p.overflow = true; [INFO] [stderr] 930 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:980:41 [INFO] [stderr] | [INFO] [stderr] 980 | MemoryAddressingMode { address: self.read_inc_pc() as u16 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_inc_pc())` [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/cpu.rs:983:42 [INFO] [stderr] | [INFO] [stderr] 983 | MemoryAddressingMode { address: (self.read_inc_pc() as u16 + self.reg_x as u16) & 0x00FF } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_inc_pc())` [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/cpu.rs:983:70 [INFO] [stderr] | [INFO] [stderr] 983 | MemoryAddressingMode { address: (self.read_inc_pc() as u16 + self.reg_x as u16) & 0x00FF } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_x)` [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/cpu.rs:986:42 [INFO] [stderr] | [INFO] [stderr] 986 | MemoryAddressingMode { address: (self.read_inc_pc() as u16 + self.reg_y as u16) & 0x00FF } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_inc_pc())` [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/cpu.rs:986:70 [INFO] [stderr] | [INFO] [stderr] 986 | MemoryAddressingMode { address: (self.read_inc_pc() as u16 + self.reg_y as u16) & 0x00FF } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_y)` [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/cpu.rs:992:63 [INFO] [stderr] | [INFO] [stderr] 992 | MemoryAddressingMode { address: self.readw_inc_pc() + self.reg_x as u16 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_x)` [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/cpu.rs:995:42 [INFO] [stderr] | [INFO] [stderr] 995 | MemoryAddressingMode { address: (self.readw_inc_pc() as u32 + self.reg_y as u32) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.readw_inc_pc())` [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/cpu.rs:995:71 [INFO] [stderr] | [INFO] [stderr] 995 | MemoryAddressingMode { address: (self.readw_inc_pc() as u32 + self.reg_y as u32) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.reg_y)` [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/cpu.rs:998:17 [INFO] [stderr] | [INFO] [stderr] 998 | let x = self.reg_x as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_x)` [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/cpu.rs:999:19 [INFO] [stderr] | [INFO] [stderr] 999 | let ial = self.read_inc_pc() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_inc_pc())` [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/cpu.rs:1008:23 [INFO] [stderr] | [INFO] [stderr] 1008 | let address = (self.memory.readw_zp(ial as u16) as u32) + y as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.memory.readw_zp(ial as u16))` [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/cpu.rs:1008:45 [INFO] [stderr] | [INFO] [stderr] 1008 | let address = (self.memory.readw_zp(ial as u16) as u32) + y as u32; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(ial)` [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/cpu.rs:1008:67 [INFO] [stderr] | [INFO] [stderr] 1008 | let address = (self.memory.readw_zp(ial as u16) as u32) + y as u32; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(y)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:1036:22 [INFO] [stderr] | [INFO] [stderr] 1036 | let newpc = (self.reg_pc as i32 + rel as i32) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.reg_pc)` [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/cpu.rs:1036:43 [INFO] [stderr] | [INFO] [stderr] 1036 | let newpc = (self.reg_pc as i32 + rel as i32) as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(rel)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:1041:9 [INFO] [stderr] | [INFO] [stderr] 1041 | self.reg_pc = self.reg_pc + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_pc += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:1046:9 [INFO] [stderr] | [INFO] [stderr] 1046 | self.reg_pc = self.reg_pc + 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_pc += 2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:1055:32 [INFO] [stderr] | [INFO] [stderr] 1055 | let address = 0x0100 | self.reg_sp as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_sp)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:1057:9 [INFO] [stderr] | [INFO] [stderr] 1057 | self.reg_sp = self.reg_sp - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_sp -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:1060:9 [INFO] [stderr] | [INFO] [stderr] 1060 | self.reg_sp = self.reg_sp + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_sp += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:1061:32 [INFO] [stderr] | [INFO] [stderr] 1061 | let address = 0x0100 | self.reg_sp as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_sp)` [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/memory.rs:50:11 [INFO] [stderr] | [INFO] [stderr] 50 | ((self.read(address + 1) as u16) << 8) | (self.read(address) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(address + 1))` [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/memory.rs:50:51 [INFO] [stderr] | [INFO] [stderr] 50 | ((self.read(address + 1) as u16) << 8) | (self.read(address) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(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 u16 may become silently lossy if types change [INFO] [stderr] --> src/memory.rs:57:14 [INFO] [stderr] | [INFO] [stderr] 57 | ((self.read(0x0000) as u16) << 8) | (self.read(0x00FF) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(0x0000))` [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/memory.rs:57:49 [INFO] [stderr] | [INFO] [stderr] 57 | ((self.read(0x0000) as u16) << 8) | (self.read(0x00FF) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(0x00FF))` [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/cpu.rs:496:23 [INFO] [stderr] | [INFO] [stderr] 496 | let result = (value as u16 + 1) as u8; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(value)` [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/memory.rs:60:14 [INFO] [stderr] | [INFO] [stderr] 60 | ((self.read(address + 1) as u16) << 8) | (self.read(address) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(address + 1))` [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] | [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/memory.rs:60:54 [INFO] [stderr] | [INFO] [stderr] 60 | ((self.read(address + 1) as u16) << 8) | (self.read(address) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(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 i16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:502:23 [INFO] [stderr] | [INFO] [stderr] 502 | let result = (value as i16 - 1) as u8; [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: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | Err(_) => panic!("problem reading from ROM.") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:525:20 [INFO] [stderr] | [INFO] [stderr] 525 | let bit0 = match self.reg_p.carry { [INFO] [stderr] | ____________________^ [INFO] [stderr] 526 | | true => 0x01, [INFO] [stderr] 527 | | false => 0x00, [INFO] [stderr] 528 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.reg_p.carry { 0x01 } else { 0x00 }` [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] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:537:20 [INFO] [stderr] | [INFO] [stderr] 537 | let bit7 = match self.reg_p.carry { [INFO] [stderr] | ____________________^ [INFO] [stderr] 538 | | true => 0x80, [INFO] [stderr] 539 | | false => 0x00, [INFO] [stderr] 540 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.reg_p.carry { 0x80 } else { 0x00 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:552:23 [INFO] [stderr] | [INFO] [stderr] 552 | self.reg_pc = (pch as u16) << 8 | pcl as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(pch)` [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/cpu.rs:552:43 [INFO] [stderr] | [INFO] [stderr] 552 | self.reg_pc = (pch as u16) << 8 | pcl as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(pcl)` [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] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:603:22 [INFO] [stderr] | [INFO] [stderr] 603 | let result = self.reg_x as u16 + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_x)` [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/cpu.rs:607:22 [INFO] [stderr] | [INFO] [stderr] 607 | let result = self.reg_y as u16 + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_y)` [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/cpu.rs:611:22 [INFO] [stderr] | [INFO] [stderr] 611 | let result = self.reg_x as i16 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i16::from(self.reg_x)` [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/cpu.rs:615:22 [INFO] [stderr] | [INFO] [stderr] 615 | let result = self.reg_y as i16 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i16::from(self.reg_y)` [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/cpu.rs:620:30 [INFO] [stderr] | [INFO] [stderr] 620 | let mut tmp_result = self.reg_a as u16 + value as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_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/cpu.rs:620:50 [INFO] [stderr] | [INFO] [stderr] 620 | let mut tmp_result = self.reg_a as u16 + value as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::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] error: this `if` has identical blocks [INFO] [stderr] --> src/cpu.rs:632:89 [INFO] [stderr] | [INFO] [stderr] 632 | else if (self.reg_a & 0x80) != 0 && (value & 0x80) != 0 && (result & 0x80) == 0 { [INFO] [stderr] | _________________________________________________________________________________________^ [INFO] [stderr] 633 | | self.reg_p.overflow = true; [INFO] [stderr] 634 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/cpu.rs:629:84 [INFO] [stderr] | [INFO] [stderr] 629 | if (self.reg_a & 0x80) == 0 && (value & 0x80) == 0 && (result & 0x80) != 0 { [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 630 | | self.reg_p.overflow = true; [INFO] [stderr] 631 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] error: Could not compile `futilenes`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:643:26 [INFO] [stderr] | [INFO] [stderr] 643 | let mut result = a as i16 - m 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/cpu.rs:643:37 [INFO] [stderr] | [INFO] [stderr] 643 | let mut result = a as i16 - m as i16; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(m)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/cpu.rs:654:76 [INFO] [stderr] | [INFO] [stderr] 654 | else if (a & 0x80) != 0 && (m & 0x80) == 0 && (result & 0x80) == 0 { [INFO] [stderr] | ____________________________________________________________________________^ [INFO] [stderr] 655 | | self.reg_p.overflow = true; [INFO] [stderr] 656 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/cpu.rs:651:71 [INFO] [stderr] | [INFO] [stderr] 651 | if (a & 0x80) == 0 && (m & 0x80) != 0 && (result & 0x80) != 0 { [INFO] [stderr] | _______________________________________________________________________^ [INFO] [stderr] 652 | | self.reg_p.overflow = true; [INFO] [stderr] 653 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/cpu.rs:668:9 [INFO] [stderr] | [INFO] [stderr] 668 | / let address: u16; [INFO] [stderr] 669 | | if indirect_address & 0x00FF == 0x00FF { [INFO] [stderr] 670 | | // implement CPU bug [INFO] [stderr] 671 | | let page = indirect_address & 0xFF00; [INFO] [stderr] ... | [INFO] [stderr] 677 | | address = self.memory.readw(indirect_address); [INFO] [stderr] 678 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let address = if indirect_address & 0x00FF == 0x00FF { ..; ((msb as u16) << 8) | lsb as u16 } else { self.memory.readw(indirect_address) };` [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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:674:24 [INFO] [stderr] | [INFO] [stderr] 674 | address = ((msb as u16) << 8) | lsb as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(msb)` [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/cpu.rs:674:45 [INFO] [stderr] | [INFO] [stderr] 674 | address = ((msb as u16) << 8) | lsb as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(lsb)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:683:9 [INFO] [stderr] | [INFO] [stderr] 683 | self.reg_pc = self.reg_pc - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_pc -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:693:25 [INFO] [stderr] | [INFO] [stderr] 693 | self.reg_pc = (((pc_hi as u16) << 8) | pc_lo as u16) + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(pc_hi)` [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/cpu.rs:693:48 [INFO] [stderr] | [INFO] [stderr] 693 | self.reg_pc = (((pc_hi as u16) << 8) | pc_lo as u16) + 1; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(pc_lo)` [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/cpu.rs:768:17 [INFO] [stderr] | [INFO] [stderr] 768 | let v = (register as i16) - (value as i16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i16::from(register)` [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/cpu.rs:768:37 [INFO] [stderr] | [INFO] [stderr] 768 | let v = (register 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: equality checks against true are unnecessary [INFO] [stderr] --> src/cpu.rs:789:12 [INFO] [stderr] | [INFO] [stderr] 789 | if self.reg_p.carry == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.reg_p.carry` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cpu.rs:795:12 [INFO] [stderr] | [INFO] [stderr] 795 | if self.reg_p.carry == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.reg_p.carry` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cpu.rs:801:12 [INFO] [stderr] | [INFO] [stderr] 801 | if self.reg_p.zero == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.reg_p.zero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cpu.rs:807:12 [INFO] [stderr] | [INFO] [stderr] 807 | if self.reg_p.zero == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.reg_p.zero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cpu.rs:813:12 [INFO] [stderr] | [INFO] [stderr] 813 | if self.reg_p.negative == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.reg_p.negative` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cpu.rs:819:12 [INFO] [stderr] | [INFO] [stderr] 819 | if self.reg_p.negative == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.reg_p.negative` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cpu.rs:825:12 [INFO] [stderr] | [INFO] [stderr] 825 | if self.reg_p.overflow == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.reg_p.overflow` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cpu.rs:831:12 [INFO] [stderr] | [INFO] [stderr] 831 | if self.reg_p.overflow == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `self.reg_p.overflow` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:846:23 [INFO] [stderr] | [INFO] [stderr] 846 | let result = (value as i16 - 1) as u8; [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/cpu.rs:856:23 [INFO] [stderr] | [INFO] [stderr] 856 | let result = (value as u16 + 1) as u8; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::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/cpu.rs:862:26 [INFO] [stderr] | [INFO] [stderr] 862 | let mut result = a as i16 - m 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/cpu.rs:862:37 [INFO] [stderr] | [INFO] [stderr] 862 | let mut result = a as i16 - m as i16; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(m)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/cpu.rs:873:76 [INFO] [stderr] | [INFO] [stderr] 873 | else if (a & 0x80) != 0 && (m & 0x80) == 0 && (result & 0x80) == 0 { [INFO] [stderr] | ____________________________________________________________________________^ [INFO] [stderr] 874 | | self.reg_p.overflow = true; [INFO] [stderr] 875 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/cpu.rs:870:71 [INFO] [stderr] | [INFO] [stderr] 870 | if (a & 0x80) == 0 && (m & 0x80) != 0 && (result & 0x80) != 0 { [INFO] [stderr] | _______________________________________________________________________^ [INFO] [stderr] 871 | | self.reg_p.overflow = true; [INFO] [stderr] 872 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:890:20 [INFO] [stderr] | [INFO] [stderr] 890 | let bit0 = match self.reg_p.carry { [INFO] [stderr] | ____________________^ [INFO] [stderr] 891 | | true => 0x01, [INFO] [stderr] 892 | | false => 0x00, [INFO] [stderr] 893 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.reg_p.carry { 0x01 } else { 0x00 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:907:20 [INFO] [stderr] | [INFO] [stderr] 907 | let bit7 = match self.reg_p.carry { [INFO] [stderr] | ____________________^ [INFO] [stderr] 908 | | true => 0x80, [INFO] [stderr] 909 | | false => 0x00, [INFO] [stderr] 910 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.reg_p.carry { 0x80 } else { 0x00 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:919:30 [INFO] [stderr] | [INFO] [stderr] 919 | let mut tmp_result = self.reg_a as u16 + value as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_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/cpu.rs:919:50 [INFO] [stderr] | [INFO] [stderr] 919 | let mut tmp_result = self.reg_a as u16 + value as u16; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::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] error: this `if` has identical blocks [INFO] [stderr] --> src/cpu.rs:931:89 [INFO] [stderr] | [INFO] [stderr] 931 | else if (self.reg_a & 0x80) != 0 && (value & 0x80) != 0 && (result & 0x80) == 0 { [INFO] [stderr] | _________________________________________________________________________________________^ [INFO] [stderr] 932 | | self.reg_p.overflow = true; [INFO] [stderr] 933 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/cpu.rs:928:84 [INFO] [stderr] | [INFO] [stderr] 928 | if (self.reg_a & 0x80) == 0 && (value & 0x80) == 0 && (result & 0x80) != 0 { [INFO] [stderr] | ____________________________________________________________________________________^ [INFO] [stderr] 929 | | self.reg_p.overflow = true; [INFO] [stderr] 930 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:980:41 [INFO] [stderr] | [INFO] [stderr] 980 | MemoryAddressingMode { address: self.read_inc_pc() as u16 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_inc_pc())` [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/cpu.rs:983:42 [INFO] [stderr] | [INFO] [stderr] 983 | MemoryAddressingMode { address: (self.read_inc_pc() as u16 + self.reg_x as u16) & 0x00FF } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_inc_pc())` [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/cpu.rs:983:70 [INFO] [stderr] | [INFO] [stderr] 983 | MemoryAddressingMode { address: (self.read_inc_pc() as u16 + self.reg_x as u16) & 0x00FF } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_x)` [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/cpu.rs:986:42 [INFO] [stderr] | [INFO] [stderr] 986 | MemoryAddressingMode { address: (self.read_inc_pc() as u16 + self.reg_y as u16) & 0x00FF } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_inc_pc())` [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/cpu.rs:986:70 [INFO] [stderr] | [INFO] [stderr] 986 | MemoryAddressingMode { address: (self.read_inc_pc() as u16 + self.reg_y as u16) & 0x00FF } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_y)` [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/cpu.rs:992:63 [INFO] [stderr] | [INFO] [stderr] 992 | MemoryAddressingMode { address: self.readw_inc_pc() + self.reg_x as u16 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_x)` [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/cpu.rs:995:42 [INFO] [stderr] | [INFO] [stderr] 995 | MemoryAddressingMode { address: (self.readw_inc_pc() as u32 + self.reg_y as u32) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.readw_inc_pc())` [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/cpu.rs:995:71 [INFO] [stderr] | [INFO] [stderr] 995 | MemoryAddressingMode { address: (self.readw_inc_pc() as u32 + self.reg_y as u32) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.reg_y)` [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/cpu.rs:998:17 [INFO] [stderr] | [INFO] [stderr] 998 | let x = self.reg_x as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_x)` [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/cpu.rs:999:19 [INFO] [stderr] | [INFO] [stderr] 999 | let ial = self.read_inc_pc() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_inc_pc())` [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/cpu.rs:1008:23 [INFO] [stderr] | [INFO] [stderr] 1008 | let address = (self.memory.readw_zp(ial as u16) as u32) + y as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.memory.readw_zp(ial as u16))` [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/cpu.rs:1008:45 [INFO] [stderr] | [INFO] [stderr] 1008 | let address = (self.memory.readw_zp(ial as u16) as u32) + y as u32; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(ial)` [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/cpu.rs:1008:67 [INFO] [stderr] | [INFO] [stderr] 1008 | let address = (self.memory.readw_zp(ial as u16) as u32) + y as u32; [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(y)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:1036:22 [INFO] [stderr] | [INFO] [stderr] 1036 | let newpc = (self.reg_pc as i32 + rel as i32) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(self.reg_pc)` [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/cpu.rs:1036:43 [INFO] [stderr] | [INFO] [stderr] 1036 | let newpc = (self.reg_pc as i32 + rel as i32) as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(rel)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:1041:9 [INFO] [stderr] | [INFO] [stderr] 1041 | self.reg_pc = self.reg_pc + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_pc += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:1046:9 [INFO] [stderr] | [INFO] [stderr] 1046 | self.reg_pc = self.reg_pc + 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_pc += 2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:1055:32 [INFO] [stderr] | [INFO] [stderr] 1055 | let address = 0x0100 | self.reg_sp as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_sp)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:1057:9 [INFO] [stderr] | [INFO] [stderr] 1057 | self.reg_sp = self.reg_sp - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_sp -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/cpu.rs:1060:9 [INFO] [stderr] | [INFO] [stderr] 1060 | self.reg_sp = self.reg_sp + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.reg_sp += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:1061:32 [INFO] [stderr] | [INFO] [stderr] 1061 | let address = 0x0100 | self.reg_sp as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg_sp)` [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/memory.rs:50:11 [INFO] [stderr] | [INFO] [stderr] 50 | ((self.read(address + 1) as u16) << 8) | (self.read(address) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(address + 1))` [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/memory.rs:50:51 [INFO] [stderr] | [INFO] [stderr] 50 | ((self.read(address + 1) as u16) << 8) | (self.read(address) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(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 u16 may become silently lossy if types change [INFO] [stderr] --> src/memory.rs:57:14 [INFO] [stderr] | [INFO] [stderr] 57 | ((self.read(0x0000) as u16) << 8) | (self.read(0x00FF) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(0x0000))` [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/memory.rs:57:49 [INFO] [stderr] | [INFO] [stderr] 57 | ((self.read(0x0000) as u16) << 8) | (self.read(0x00FF) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(0x00FF))` [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/memory.rs:60:14 [INFO] [stderr] | [INFO] [stderr] 60 | ((self.read(address + 1) as u16) << 8) | (self.read(address) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(address + 1))` [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/memory.rs:60:54 [INFO] [stderr] | [INFO] [stderr] 60 | ((self.read(address + 1) as u16) << 8) | (self.read(address) as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read(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: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | Err(_) => panic!("problem reading from ROM.") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `futilenes`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "486560b117314b8c4c62f8ffc323c923cb7deba99540d206dafba42252f38234"` [INFO] running `"docker" "rm" "-f" "486560b117314b8c4c62f8ffc323c923cb7deba99540d206dafba42252f38234"` [INFO] [stdout] 486560b117314b8c4c62f8ffc323c923cb7deba99540d206dafba42252f38234