[INFO] updating cached repository ltriant/nes [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ltriant/nes [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ltriant/nes" "work/ex/clippy-test-run/sources/stable/gh/ltriant/nes"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ltriant/nes'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ltriant/nes" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ltriant/nes"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ltriant/nes'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e215f1880da20498946630878aef9c46785b419e [INFO] sha for GitHub repo ltriant/nes: e215f1880da20498946630878aef9c46785b419e [INFO] validating manifest of ltriant/nes 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 ltriant/nes 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 ltriant/nes [INFO] finished frobbing ltriant/nes [INFO] frobbed toml for ltriant/nes written to work/ex/clippy-test-run/sources/stable/gh/ltriant/nes/Cargo.toml [INFO] started frobbing ltriant/nes [INFO] finished frobbing ltriant/nes [INFO] frobbed toml for ltriant/nes written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ltriant/nes/Cargo.toml [INFO] crate ltriant/nes 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 ltriant/nes 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/ltriant/nes:/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] 15de9c0df5adf75936605117f394b213c68cb8ef2ada2970ccea3dca689402f0 [INFO] running `"docker" "start" "-a" "15de9c0df5adf75936605117f394b213c68cb8ef2ada2970ccea3dca689402f0"` [INFO] [stderr] Checking env_logger v0.5.13 [INFO] [stderr] Checking nes v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cpu.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | mem: mem, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `mem` [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/mem.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | ppu: ppu, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ppu` [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:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | mem: mem, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `mem` [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/mem.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | ppu: ppu, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ppu` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/cpu.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | val [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/cpu.rs:147:19 [INFO] [stderr] | [INFO] [stderr] 147 | let val = self.mem.read(addr) [INFO] [stderr] | ___________________^ [INFO] [stderr] 148 | | .expect("unable to read from stack"); [INFO] [stderr] | |________________________________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/cpu.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | val [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/cpu.rs:147:19 [INFO] [stderr] | [INFO] [stderr] 147 | let val = self.mem.read(addr) [INFO] [stderr] | ___________________^ [INFO] [stderr] 148 | | .expect("unable to read from stack"); [INFO] [stderr] | |________________________________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `SpriteSize` [INFO] [stderr] --> src/ppu/ctrl.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub enum SpriteSize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `generate_nmi` [INFO] [stderr] --> src/ppu/ctrl.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn generate_nmi(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sprite_size` [INFO] [stderr] --> src/ppu/ctrl.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn sprite_size(&self) -> SpriteSize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `background_pattern_table_addr` [INFO] [stderr] --> src/ppu/ctrl.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn background_pattern_table_addr(&self) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sprite_pattern_table_addr` [INFO] [stderr] --> src/ppu/ctrl.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn sprite_pattern_table_addr(&self) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `base_nametable_addr` [INFO] [stderr] --> src/ppu/ctrl.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn base_nametable_addr(&self) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `emphasize_blue` [INFO] [stderr] --> src/ppu/mask.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn emphasize_blue(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `emphasize_green` [INFO] [stderr] --> src/ppu/mask.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn emphasize_green(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `emphasize_red` [INFO] [stderr] --> src/ppu/mask.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn emphasize_red(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `show_sprites` [INFO] [stderr] --> src/ppu/mask.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn show_sprites(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `show_background` [INFO] [stderr] --> src/ppu/mask.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn show_background(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `show_sprites_leftmost` [INFO] [stderr] --> src/ppu/mask.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn show_sprites_leftmost(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `show_background_leftmost` [INFO] [stderr] --> src/ppu/mask.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn show_background_leftmost(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `greyscale` [INFO] [stderr] --> src/ppu/mask.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn greyscale(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `vblank_started` [INFO] [stderr] --> src/ppu/status.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn vblank_started(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sprite_zero_hit` [INFO] [stderr] --> src/ppu/status.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn sprite_zero_hit(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sprite_overflow` [INFO] [stderr] --> src/ppu/status.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn sprite_overflow(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:62:18 [INFO] [stderr] | [INFO] [stderr] 62 | let lo = self.mem.read(0xFFFC).expect("low PC byte") as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.mem.read(0xFFFC).expect("low PC byte"))` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | let hi = self.mem.read(0xFFFD).expect("high PC byte") as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.mem.read(0xFFFD).expect("high PC byte"))` [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/cpu.rs:98:16 [INFO] [stderr] | [INFO] [stderr] 98 | if let Err(_) = addr_mode.n_bytes() { [INFO] [stderr] | _________- ^^^^^^ [INFO] [stderr] 99 | | let opcode = self.mem.read(self.pc).unwrap(); [INFO] [stderr] 100 | | panic!("unsupported addressing mode {:?} at PC {:04X}, opcode {:02X}", [INFO] [stderr] 101 | | addr_mode, [INFO] [stderr] 102 | | self.pc, [INFO] [stderr] 103 | | opcode); [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________- help: try this: `if addr_mode.n_bytes().is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/cpu.rs:108:24 [INFO] [stderr] | [INFO] [stderr] 108 | .map(|arg| String::from(format!("{:02X}", arg))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{:02X}", arg)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:132:34 [INFO] [stderr] | [INFO] [stderr] 132 | let addr = (0x01 << 8) | self.sp as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(self.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/cpu.rs:146:34 [INFO] [stderr] | [INFO] [stderr] 146 | let addr = (0x01 << 8) | self.sp as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(self.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/cpu.rs:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | let lo = self.stack_pop8() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.stack_pop8())` [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:163:18 [INFO] [stderr] | [INFO] [stderr] 163 | let hi = self.stack_pop8() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.stack_pop8())` [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:218:17 [INFO] [stderr] | [INFO] [stderr] 218 | let n = (val as u16) + (self.a as u16) + (self.c as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(val)` [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:218:32 [INFO] [stderr] | [INFO] [stderr] 218 | let n = (val as u16) + (self.a as u16) + (self.c as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.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: the operation is ineffective. Consider reducing it to `(val << 1)` [INFO] [stderr] --> src/cpu.rs:242:17 [INFO] [stderr] | [INFO] [stderr] 242 | let n = (val << 1) & 0xff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `SpriteSize` [INFO] [stderr] --> src/ppu/ctrl.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub enum SpriteSize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sprite_size` [INFO] [stderr] --> src/ppu/ctrl.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn sprite_size(&self) -> SpriteSize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `background_pattern_table_addr` [INFO] [stderr] --> src/ppu/ctrl.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn background_pattern_table_addr(&self) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sprite_pattern_table_addr` [INFO] [stderr] --> src/ppu/ctrl.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn sprite_pattern_table_addr(&self) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `emphasize_blue` [INFO] [stderr] --> src/ppu/mask.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn emphasize_blue(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `emphasize_green` [INFO] [stderr] --> src/ppu/mask.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn emphasize_green(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `emphasize_red` [INFO] [stderr] --> src/ppu/mask.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn emphasize_red(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `show_sprites` [INFO] [stderr] --> src/ppu/mask.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn show_sprites(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `show_background` [INFO] [stderr] --> src/ppu/mask.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn show_background(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `show_sprites_leftmost` [INFO] [stderr] --> src/ppu/mask.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn show_sprites_leftmost(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `show_background_leftmost` [INFO] [stderr] --> src/ppu/mask.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn show_background_leftmost(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `greyscale` [INFO] [stderr] --> src/ppu/mask.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn greyscale(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `vblank_started` [INFO] [stderr] --> src/ppu/status.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn vblank_started(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sprite_zero_hit` [INFO] [stderr] --> src/ppu/status.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn sprite_zero_hit(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sprite_overflow` [INFO] [stderr] --> src/ppu/status.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn sprite_overflow(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:62:18 [INFO] [stderr] | [INFO] [stderr] 62 | let lo = self.mem.read(0xFFFC).expect("low PC byte") as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.mem.read(0xFFFC).expect("low PC byte"))` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | let hi = self.mem.read(0xFFFD).expect("high PC byte") as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.mem.read(0xFFFD).expect("high PC byte"))` [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/cpu.rs:98:16 [INFO] [stderr] | [INFO] [stderr] 98 | if let Err(_) = addr_mode.n_bytes() { [INFO] [stderr] | _________- ^^^^^^ [INFO] [stderr] 99 | | let opcode = self.mem.read(self.pc).unwrap(); [INFO] [stderr] 100 | | panic!("unsupported addressing mode {:?} at PC {:04X}, opcode {:02X}", [INFO] [stderr] 101 | | addr_mode, [INFO] [stderr] 102 | | self.pc, [INFO] [stderr] 103 | | opcode); [INFO] [stderr] 104 | | } [INFO] [stderr] | |_________- help: try this: `if addr_mode.n_bytes().is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/cpu.rs:108:24 [INFO] [stderr] | [INFO] [stderr] 108 | .map(|arg| String::from(format!("{:02X}", arg))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{:02X}", arg)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:132:34 [INFO] [stderr] | [INFO] [stderr] 132 | let addr = (0x01 << 8) | self.sp as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(self.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/cpu.rs:146:34 [INFO] [stderr] | [INFO] [stderr] 146 | let addr = (0x01 << 8) | self.sp as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(self.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/cpu.rs:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | let lo = self.stack_pop8() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.stack_pop8())` [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:163:18 [INFO] [stderr] | [INFO] [stderr] 163 | let hi = self.stack_pop8() as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.stack_pop8())` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/mem.rs:67:38 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn load_rom(&mut self, data: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:218:17 [INFO] [stderr] | [INFO] [stderr] 218 | let n = (val as u16) + (self.a as u16) + (self.c as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(val)` [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:218:32 [INFO] [stderr] | [INFO] [stderr] 218 | let n = (val as u16) + (self.a as u16) + (self.c as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.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/mem.rs:72:25 [INFO] [stderr] | [INFO] [stderr] 72 | let addr_base = (val as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(val)` [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 operation is ineffective. Consider reducing it to `(val << 1)` [INFO] [stderr] --> src/cpu.rs:242:17 [INFO] [stderr] | [INFO] [stderr] 242 | let n = (val << 1) & 0xff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:67:26 [INFO] [stderr] | [INFO] [stderr] 67 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 68 | | .expect("Absolute arg 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 67 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 68 | .expect("Absolute arg 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:69:26 [INFO] [stderr] | [INFO] [stderr] 69 | let hi = cpu.mem.read(pc + 2) [INFO] [stderr] | __________________________^ [INFO] [stderr] 70 | | .expect("Absolute arg 2") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 69 | let hi = u16::from(cpu.mem.read(pc + 2) [INFO] [stderr] 70 | .expect("Absolute arg 2")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/mem.rs:67:38 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn load_rom(&mut self, data: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/mem.rs:72:25 [INFO] [stderr] | [INFO] [stderr] 72 | let addr_base = (val as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(val)` [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/addr.rs:79:26 [INFO] [stderr] | [INFO] [stderr] 79 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 80 | | .expect("ZeroPageIndexed arg") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 79 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 80 | .expect("ZeroPageIndexed arg")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `lo` [INFO] [stderr] --> src/addr.rs:81:28 [INFO] [stderr] | [INFO] [stderr] 81 | let addr = (0x00 << 8) | lo; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:87:30 [INFO] [stderr] | [INFO] [stderr] 87 | let offset = cpu.mem.read(pc + 1) [INFO] [stderr] | ______________________________^ [INFO] [stderr] 88 | | .expect("Relative arg") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 87 | let offset = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 88 | .expect("Relative arg")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:95:40 [INFO] [stderr] | [INFO] [stderr] 95 | Ok((((cpu.pc as i16) + (offset as i8 as i16)) as u16, 0, false)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(offset as i8)` [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/addr.rs:98:26 [INFO] [stderr] | [INFO] [stderr] 98 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 99 | | .expect("AbsoluteX arg 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 98 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 99 | .expect("AbsoluteX arg 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:100:26 [INFO] [stderr] | [INFO] [stderr] 100 | let hi = cpu.mem.read(pc + 2) [INFO] [stderr] | __________________________^ [INFO] [stderr] 101 | | .expect("AbsoluteX arg 2") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 100 | let hi = u16::from(cpu.mem.read(pc + 2) [INFO] [stderr] 101 | .expect("AbsoluteX arg 2")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:103:48 [INFO] [stderr] | [INFO] [stderr] 103 | let n_addr = addr.wrapping_add(cpu.x as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(cpu.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/addr.rs:109:26 [INFO] [stderr] | [INFO] [stderr] 109 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 110 | | .expect("AbsoluteY arg 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 109 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 110 | .expect("AbsoluteY arg 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | let hi = cpu.mem.read(pc + 2) [INFO] [stderr] | __________________________^ [INFO] [stderr] 112 | | .expect("AbsoluteY arg 2") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 111 | let hi = u16::from(cpu.mem.read(pc + 2) [INFO] [stderr] 112 | .expect("AbsoluteY arg 2")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:114:48 [INFO] [stderr] | [INFO] [stderr] 114 | let n_addr = addr.wrapping_add(cpu.y as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(cpu.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/addr.rs:120:26 [INFO] [stderr] | [INFO] [stderr] 120 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 121 | | .expect("Indirect arg 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 120 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 121 | .expect("Indirect arg 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:122:26 [INFO] [stderr] | [INFO] [stderr] 122 | let hi = cpu.mem.read(pc + 2) [INFO] [stderr] | __________________________^ [INFO] [stderr] 123 | | .expect("Indirect arg 2") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 122 | let hi = u16::from(cpu.mem.read(pc + 2) [INFO] [stderr] 123 | .expect("Indirect arg 2")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:126:26 [INFO] [stderr] | [INFO] [stderr] 126 | let lo = cpu.mem.read(addr) [INFO] [stderr] | __________________________^ [INFO] [stderr] 127 | | .expect("Indirect addr 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 126 | let lo = u16::from(cpu.mem.read(addr) [INFO] [stderr] 127 | .expect("Indirect addr 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:131:25 [INFO] [stderr] | [INFO] [stderr] 131 | / cpu.mem.read(addr & 0xff00) [INFO] [stderr] 132 | | .expect("Indirect addr 2 bug") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 131 | u16::from(cpu.mem.read(addr & 0xff00) [INFO] [stderr] 132 | .expect("Indirect addr 2 bug")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:135:25 [INFO] [stderr] | [INFO] [stderr] 135 | / cpu.mem.read(addr + 1) [INFO] [stderr] 136 | | .expect("Indirect addr 2") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 135 | u16::from(cpu.mem.read(addr + 1) [INFO] [stderr] 136 | .expect("Indirect addr 2")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:146:26 [INFO] [stderr] | [INFO] [stderr] 146 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 147 | | .expect("ZeroPageX arg 1") [INFO] [stderr] 148 | | .wrapping_add(cpu.x) as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 146 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 147 | .expect("ZeroPageX arg 1") [INFO] [stderr] 148 | .wrapping_add(cpu.x)); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `lo` [INFO] [stderr] --> src/addr.rs:149:28 [INFO] [stderr] | [INFO] [stderr] 149 | let addr = (0 << 8) | lo; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:155:26 [INFO] [stderr] | [INFO] [stderr] 155 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 156 | | .expect("ZeroPageY arg 1") [INFO] [stderr] 157 | | .wrapping_add(cpu.y) as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 155 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 156 | .expect("ZeroPageY arg 1") [INFO] [stderr] 157 | .wrapping_add(cpu.y)); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `lo` [INFO] [stderr] --> src/addr.rs:158:28 [INFO] [stderr] | [INFO] [stderr] 158 | let addr = (0 << 8) | lo; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:166:28 [INFO] [stderr] | [INFO] [stderr] 166 | let addr = lo.wrapping_add(cpu.x) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(lo.wrapping_add(cpu.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/addr.rs:168:26 [INFO] [stderr] | [INFO] [stderr] 168 | let lo = cpu.mem.read(addr) [INFO] [stderr] | __________________________^ [INFO] [stderr] 169 | | .expect("IndexedIndirect lo val") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 168 | let lo = u16::from(cpu.mem.read(addr) [INFO] [stderr] 169 | .expect("IndexedIndirect lo val")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:173:25 [INFO] [stderr] | [INFO] [stderr] 173 | / cpu.mem.read(addr & 0xff00) [INFO] [stderr] 174 | | .expect("IndexedIndirect hi val bug") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 173 | u16::from(cpu.mem.read(addr & 0xff00) [INFO] [stderr] 174 | .expect("IndexedIndirect hi val bug")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:177:25 [INFO] [stderr] | [INFO] [stderr] 177 | / cpu.mem.read(addr + 1) [INFO] [stderr] 178 | | .expect("IndexedIndirect hi val") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 177 | u16::from(cpu.mem.read(addr + 1) [INFO] [stderr] 178 | .expect("IndexedIndirect hi val")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:187:28 [INFO] [stderr] | [INFO] [stderr] 187 | let addr = cpu.mem.read(pc + 1) [INFO] [stderr] | ____________________________^ [INFO] [stderr] 188 | | .expect("IndirectIndexed addr") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 187 | let addr = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 188 | .expect("IndirectIndexed addr")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:190:26 [INFO] [stderr] | [INFO] [stderr] 190 | let lo = cpu.mem.read(addr) [INFO] [stderr] | __________________________^ [INFO] [stderr] 191 | | .expect("IndirectIndexed lo val") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 190 | let lo = u16::from(cpu.mem.read(addr) [INFO] [stderr] 191 | .expect("IndirectIndexed lo val")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:195:25 [INFO] [stderr] | [INFO] [stderr] 195 | / cpu.mem.read(addr & 0xff00) [INFO] [stderr] 196 | | .expect("IndexedIndirect hi val bug") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 195 | u16::from(cpu.mem.read(addr & 0xff00) [INFO] [stderr] 196 | .expect("IndexedIndirect hi val bug")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:199:25 [INFO] [stderr] | [INFO] [stderr] 199 | / cpu.mem.read(addr + 1) [INFO] [stderr] 200 | | .expect("IndexedIndirect hi val") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 199 | u16::from(cpu.mem.read(addr + 1) [INFO] [stderr] 200 | .expect("IndexedIndirect hi val")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:204:48 [INFO] [stderr] | [INFO] [stderr] 204 | let n_addr = addr.wrapping_add(cpu.y as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(cpu.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/ppu/addr.rs:34:27 [INFO] [stderr] | [INFO] [stderr] 34 | let val = val as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(val)` [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/ppu/addr.rs:39:27 [INFO] [stderr] | [INFO] [stderr] 39 | let val = (val as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(val)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/ppu/data.rs:53:39 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn load_vrom(&mut self, data: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:67:26 [INFO] [stderr] | [INFO] [stderr] 67 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 68 | | .expect("Absolute arg 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 67 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 68 | .expect("Absolute arg 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:69:26 [INFO] [stderr] | [INFO] [stderr] 69 | let hi = cpu.mem.read(pc + 2) [INFO] [stderr] | __________________________^ [INFO] [stderr] 70 | | .expect("Absolute arg 2") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 69 | let hi = u16::from(cpu.mem.read(pc + 2) [INFO] [stderr] 70 | .expect("Absolute arg 2")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:79:26 [INFO] [stderr] | [INFO] [stderr] 79 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 80 | | .expect("ZeroPageIndexed arg") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 79 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 80 | .expect("ZeroPageIndexed arg")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `lo` [INFO] [stderr] --> src/addr.rs:81:28 [INFO] [stderr] | [INFO] [stderr] 81 | let addr = (0x00 << 8) | lo; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:87:30 [INFO] [stderr] | [INFO] [stderr] 87 | let offset = cpu.mem.read(pc + 1) [INFO] [stderr] | ______________________________^ [INFO] [stderr] 88 | | .expect("Relative arg") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 87 | let offset = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 88 | .expect("Relative arg")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:95:40 [INFO] [stderr] | [INFO] [stderr] 95 | Ok((((cpu.pc as i16) + (offset as i8 as i16)) as u16, 0, false)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(offset as i8)` [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/addr.rs:98:26 [INFO] [stderr] | [INFO] [stderr] 98 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 99 | | .expect("AbsoluteX arg 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 98 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 99 | .expect("AbsoluteX arg 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:100:26 [INFO] [stderr] | [INFO] [stderr] 100 | let hi = cpu.mem.read(pc + 2) [INFO] [stderr] | __________________________^ [INFO] [stderr] 101 | | .expect("AbsoluteX arg 2") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 100 | let hi = u16::from(cpu.mem.read(pc + 2) [INFO] [stderr] 101 | .expect("AbsoluteX arg 2")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:103:48 [INFO] [stderr] | [INFO] [stderr] 103 | let n_addr = addr.wrapping_add(cpu.x as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(cpu.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/addr.rs:109:26 [INFO] [stderr] | [INFO] [stderr] 109 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 110 | | .expect("AbsoluteY arg 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 109 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 110 | .expect("AbsoluteY arg 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | let hi = cpu.mem.read(pc + 2) [INFO] [stderr] | __________________________^ [INFO] [stderr] 112 | | .expect("AbsoluteY arg 2") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 111 | let hi = u16::from(cpu.mem.read(pc + 2) [INFO] [stderr] 112 | .expect("AbsoluteY arg 2")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:114:48 [INFO] [stderr] | [INFO] [stderr] 114 | let n_addr = addr.wrapping_add(cpu.y as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(cpu.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/addr.rs:120:26 [INFO] [stderr] | [INFO] [stderr] 120 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 121 | | .expect("Indirect arg 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 120 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 121 | .expect("Indirect arg 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:122:26 [INFO] [stderr] | [INFO] [stderr] 122 | let hi = cpu.mem.read(pc + 2) [INFO] [stderr] | __________________________^ [INFO] [stderr] 123 | | .expect("Indirect arg 2") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 122 | let hi = u16::from(cpu.mem.read(pc + 2) [INFO] [stderr] 123 | .expect("Indirect arg 2")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:126:26 [INFO] [stderr] | [INFO] [stderr] 126 | let lo = cpu.mem.read(addr) [INFO] [stderr] | __________________________^ [INFO] [stderr] 127 | | .expect("Indirect addr 1") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 126 | let lo = u16::from(cpu.mem.read(addr) [INFO] [stderr] 127 | .expect("Indirect addr 1")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:131:25 [INFO] [stderr] | [INFO] [stderr] 131 | / cpu.mem.read(addr & 0xff00) [INFO] [stderr] 132 | | .expect("Indirect addr 2 bug") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 131 | u16::from(cpu.mem.read(addr & 0xff00) [INFO] [stderr] 132 | .expect("Indirect addr 2 bug")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:135:25 [INFO] [stderr] | [INFO] [stderr] 135 | / cpu.mem.read(addr + 1) [INFO] [stderr] 136 | | .expect("Indirect addr 2") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 135 | u16::from(cpu.mem.read(addr + 1) [INFO] [stderr] 136 | .expect("Indirect addr 2")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:146:26 [INFO] [stderr] | [INFO] [stderr] 146 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 147 | | .expect("ZeroPageX arg 1") [INFO] [stderr] 148 | | .wrapping_add(cpu.x) as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 146 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 147 | .expect("ZeroPageX arg 1") [INFO] [stderr] 148 | .wrapping_add(cpu.x)); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `lo` [INFO] [stderr] --> src/addr.rs:149:28 [INFO] [stderr] | [INFO] [stderr] 149 | let addr = (0 << 8) | lo; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:155:26 [INFO] [stderr] | [INFO] [stderr] 155 | let lo = cpu.mem.read(pc + 1) [INFO] [stderr] | __________________________^ [INFO] [stderr] 156 | | .expect("ZeroPageY arg 1") [INFO] [stderr] 157 | | .wrapping_add(cpu.y) as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 155 | let lo = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 156 | .expect("ZeroPageY arg 1") [INFO] [stderr] 157 | .wrapping_add(cpu.y)); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `lo` [INFO] [stderr] --> src/addr.rs:158:28 [INFO] [stderr] | [INFO] [stderr] 158 | let addr = (0 << 8) | lo; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:166:28 [INFO] [stderr] | [INFO] [stderr] 166 | let addr = lo.wrapping_add(cpu.x) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(lo.wrapping_add(cpu.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/addr.rs:168:26 [INFO] [stderr] | [INFO] [stderr] 168 | let lo = cpu.mem.read(addr) [INFO] [stderr] | __________________________^ [INFO] [stderr] 169 | | .expect("IndexedIndirect lo val") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 168 | let lo = u16::from(cpu.mem.read(addr) [INFO] [stderr] 169 | .expect("IndexedIndirect lo val")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:173:25 [INFO] [stderr] | [INFO] [stderr] 173 | / cpu.mem.read(addr & 0xff00) [INFO] [stderr] 174 | | .expect("IndexedIndirect hi val bug") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 173 | u16::from(cpu.mem.read(addr & 0xff00) [INFO] [stderr] 174 | .expect("IndexedIndirect hi val bug")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:177:25 [INFO] [stderr] | [INFO] [stderr] 177 | / cpu.mem.read(addr + 1) [INFO] [stderr] 178 | | .expect("IndexedIndirect hi val") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 177 | u16::from(cpu.mem.read(addr + 1) [INFO] [stderr] 178 | .expect("IndexedIndirect hi val")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:187:28 [INFO] [stderr] | [INFO] [stderr] 187 | let addr = cpu.mem.read(pc + 1) [INFO] [stderr] | ____________________________^ [INFO] [stderr] 188 | | .expect("IndirectIndexed addr") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 187 | let addr = u16::from(cpu.mem.read(pc + 1) [INFO] [stderr] 188 | .expect("IndirectIndexed addr")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:190:26 [INFO] [stderr] | [INFO] [stderr] 190 | let lo = cpu.mem.read(addr) [INFO] [stderr] | __________________________^ [INFO] [stderr] 191 | | .expect("IndirectIndexed lo val") as u16; [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] help: try [INFO] [stderr] | [INFO] [stderr] 190 | let lo = u16::from(cpu.mem.read(addr) [INFO] [stderr] 191 | .expect("IndirectIndexed lo val")); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:195:25 [INFO] [stderr] | [INFO] [stderr] 195 | / cpu.mem.read(addr & 0xff00) [INFO] [stderr] 196 | | .expect("IndexedIndirect hi val bug") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 195 | u16::from(cpu.mem.read(addr & 0xff00) [INFO] [stderr] 196 | .expect("IndexedIndirect hi val bug")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:199:25 [INFO] [stderr] | [INFO] [stderr] 199 | / cpu.mem.read(addr + 1) [INFO] [stderr] 200 | | .expect("IndexedIndirect hi val") as u16 [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] help: try [INFO] [stderr] | [INFO] [stderr] 199 | u16::from(cpu.mem.read(addr + 1) [INFO] [stderr] 200 | .expect("IndexedIndirect hi val")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/ppu/mod.rs:81:32 [INFO] [stderr] | [INFO] [stderr] 81 | self.oam.write(self.oam_addr as u16, val)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.oam_addr)` [INFO] [stderr] | [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/addr.rs:204:48 [INFO] [stderr] | [INFO] [stderr] 204 | let n_addr = addr.wrapping_add(cpu.y as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(cpu.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] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/ppu/mod.rs:117:39 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn load_vrom(&mut self, data: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/ppu/addr.rs:34:27 [INFO] [stderr] | [INFO] [stderr] 34 | let val = val as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(val)` [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/ppu/addr.rs:39:27 [INFO] [stderr] | [INFO] [stderr] 39 | let val = (val as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(val)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/ppu/data.rs:53:39 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn load_vrom(&mut self, data: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/ppu/mod.rs:81:32 [INFO] [stderr] | [INFO] [stderr] 81 | self.oam.write(self.oam_addr as u16, val)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.oam_addr)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/ppu/mod.rs:117:39 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn load_vrom(&mut self, data: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.63s [INFO] running `"docker" "inspect" "15de9c0df5adf75936605117f394b213c68cb8ef2ada2970ccea3dca689402f0"` [INFO] running `"docker" "rm" "-f" "15de9c0df5adf75936605117f394b213c68cb8ef2ada2970ccea3dca689402f0"` [INFO] [stdout] 15de9c0df5adf75936605117f394b213c68cb8ef2ada2970ccea3dca689402f0