[INFO] updating cached repository SnoozeTime/nes [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/SnoozeTime/nes [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/SnoozeTime/nes" "work/ex/clippy-test-run/sources/stable/gh/SnoozeTime/nes"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/SnoozeTime/nes'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/SnoozeTime/nes" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/SnoozeTime/nes"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/SnoozeTime/nes'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b610eca7d9f89ef578f8e8005791e65b00260676 [INFO] sha for GitHub repo SnoozeTime/nes: b610eca7d9f89ef578f8e8005791e65b00260676 [INFO] validating manifest of SnoozeTime/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 SnoozeTime/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 SnoozeTime/nes [INFO] finished frobbing SnoozeTime/nes [INFO] frobbed toml for SnoozeTime/nes written to work/ex/clippy-test-run/sources/stable/gh/SnoozeTime/nes/Cargo.toml [INFO] started frobbing SnoozeTime/nes [INFO] finished frobbing SnoozeTime/nes [INFO] frobbed toml for SnoozeTime/nes written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/SnoozeTime/nes/Cargo.toml [INFO] crate SnoozeTime/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 SnoozeTime/nes against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/SnoozeTime/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] 2a06e18575b58ad629ce2b9b7d6bc00cc24986f016dfb4092e5ff58b4d3cd79f [INFO] running `"docker" "start" "-a" "2a06e18575b58ad629ce2b9b7d6bc00cc24986f016dfb4092e5ff58b4d3cd79f"` [INFO] [stderr] Compiling sdl2-sys v0.32.3 [INFO] [stderr] Checking sdl2 v0.32.0 [INFO] [stderr] Checking nes_emulator v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/cpu/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod cpu; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/cpu/cpu.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | b [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/cpu.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | let b = ((self.N as u8) << 7) [INFO] [stderr] | _________________^ [INFO] [stderr] 97 | | + ((self.V as u8) << 6) [INFO] [stderr] 98 | | + (1 << 5) + (1 << 4) // always. ignored when pulling [INFO] [stderr] 99 | | + ((self.D as u8) << 3) [INFO] [stderr] 100 | | + ((self.I as u8) << 2) [INFO] [stderr] 101 | | + ((self.Z as u8) << 1) [INFO] [stderr] 102 | | + (self.C as u8); [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/cpu.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | b [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/cpu/cpu.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | let b = ((self.N as u8) << 7) [INFO] [stderr] | _________________^ [INFO] [stderr] 110 | | + ((self.V as u8) << 6) [INFO] [stderr] 111 | | + (1 << 5) // this is to match with nestest log [INFO] [stderr] 112 | | + ((self.D as u8) << 3) [INFO] [stderr] 113 | | + ((self.I as u8) << 2) [INFO] [stderr] 114 | | + ((self.Z as u8) << 1) [INFO] [stderr] 115 | | + (self.C as u8); [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: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:374:13 [INFO] [stderr] | [INFO] [stderr] 374 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:376:13 [INFO] [stderr] | [INFO] [stderr] 376 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/cpu/addressing.rs:423:9 [INFO] [stderr] | [INFO] [stderr] 423 | address [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/cpu/addressing.rs:422:23 [INFO] [stderr] | [INFO] [stderr] 422 | let address = ((msb as u16) << 8) + (lsb as u16); [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: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:493:13 [INFO] [stderr] | [INFO] [stderr] 493 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:495:13 [INFO] [stderr] | [INFO] [stderr] 495 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::sdl2::video::Window` [INFO] [stderr] --> src/graphic/mod.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use self::sdl2::video::Window; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/graphic/mod.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/graphic/mod.rs:115:48 [INFO] [stderr] | [INFO] [stderr] 115 | (1, 0) => (attr_byte & 0b110000) >> 4, [INFO] [stderr] | ^^^^^^^^ help: consider: `0b11_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/graphic/mod.rs:116:48 [INFO] [stderr] | [INFO] [stderr] 116 | (1, 1) => (attr_byte & 0b11000000) >> 6, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/graphic/mod.rs:156:29 [INFO] [stderr] | [INFO] [stderr] 156 | let bit1 = (v1 >> 8-(xline+1)) & 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `v1 >> (8-(xline+1))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/graphic/mod.rs:157:30 [INFO] [stderr] | [INFO] [stderr] 157 | let bit2 = ((v2 >> 8-(xline+1)) & 1) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `v2 >> (8-(xline+1))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/cpu/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod cpu; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/cpu/cpu.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | b [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/cpu.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | let b = ((self.N as u8) << 7) [INFO] [stderr] | _________________^ [INFO] [stderr] 97 | | + ((self.V as u8) << 6) [INFO] [stderr] 98 | | + (1 << 5) + (1 << 4) // always. ignored when pulling [INFO] [stderr] 99 | | + ((self.D as u8) << 3) [INFO] [stderr] 100 | | + ((self.I as u8) << 2) [INFO] [stderr] 101 | | + ((self.Z as u8) << 1) [INFO] [stderr] 102 | | + (self.C as u8); [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/cpu.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | b [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/cpu/cpu.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | let b = ((self.N as u8) << 7) [INFO] [stderr] | _________________^ [INFO] [stderr] 110 | | + ((self.V as u8) << 6) [INFO] [stderr] 111 | | + (1 << 5) // this is to match with nestest log [INFO] [stderr] 112 | | + ((self.D as u8) << 3) [INFO] [stderr] 113 | | + ((self.I as u8) << 2) [INFO] [stderr] 114 | | + ((self.Z as u8) << 1) [INFO] [stderr] 115 | | + (self.C as u8); [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: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:374:13 [INFO] [stderr] | [INFO] [stderr] 374 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:376:13 [INFO] [stderr] | [INFO] [stderr] 376 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/cpu/addressing.rs:423:9 [INFO] [stderr] | [INFO] [stderr] 423 | address [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/cpu/addressing.rs:422:23 [INFO] [stderr] | [INFO] [stderr] 422 | let address = ((msb as u16) << 8) + (lsb as u16); [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: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:493:13 [INFO] [stderr] | [INFO] [stderr] 493 | return 1; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cpu/addressing.rs:495:13 [INFO] [stderr] | [INFO] [stderr] 495 | return 0; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::sdl2::video::Window` [INFO] [stderr] --> src/graphic/mod.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use self::sdl2::video::Window; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/graphic/mod.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/graphic/mod.rs:115:48 [INFO] [stderr] | [INFO] [stderr] 115 | (1, 0) => (attr_byte & 0b110000) >> 4, [INFO] [stderr] | ^^^^^^^^ help: consider: `0b11_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/graphic/mod.rs:116:48 [INFO] [stderr] | [INFO] [stderr] 116 | (1, 1) => (attr_byte & 0b11000000) >> 6, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/graphic/mod.rs:156:29 [INFO] [stderr] | [INFO] [stderr] 156 | let bit1 = (v1 >> 8-(xline+1)) & 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `v1 >> (8-(xline+1))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/graphic/mod.rs:157:30 [INFO] [stderr] | [INFO] [stderr] 157 | let bit2 = ((v2 >> 8-(xline+1)) & 1) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `v2 >> (8-(xline+1))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ppu/memory.rs:201:13 [INFO] [stderr] | [INFO] [stderr] 200 | OAMDMA => {}, //println!("OAMDMA not implemented yet!"), [INFO] [stderr] | ------ matches any value [INFO] [stderr] 201 | PPUSCROLL => {}, //println!("PPUSCROLL not implemented yet!"), [INFO] [stderr] | ^^^^^^^^^ unreachable pattern [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ppu/memory.rs:202:13 [INFO] [stderr] | [INFO] [stderr] 200 | OAMDMA => {}, //println!("OAMDMA not implemented yet!"), [INFO] [stderr] | ------ matches any value [INFO] [stderr] 201 | PPUSCROLL => {}, //println!("PPUSCROLL not implemented yet!"), [INFO] [stderr] 202 | _ => panic!("{:?} cannot be written by CPU", register_type), [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] [INFO] [stderr] warning: unused variable: `OAMDMA` [INFO] [stderr] --> src/ppu/memory.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | OAMDMA => self.oamdma, [INFO] [stderr] | ^^^^^^ help: consider using `_OAMDMA` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `OAMDMA` [INFO] [stderr] --> src/ppu/memory.rs:186:13 [INFO] [stderr] | [INFO] [stderr] 186 | OAMDMA => self.oamdma = value, [INFO] [stderr] | ^^^^^^ help: consider using `_OAMDMA` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `OAMDMA` [INFO] [stderr] --> src/ppu/memory.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | OAMDMA => {}, //println!("OAMDMA not implemented yet!"), [INFO] [stderr] | ^^^^^^ help: consider using `_OAMDMA` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `index` is never read [INFO] [stderr] --> src/graphic/mod.rs:95:21 [INFO] [stderr] | [INFO] [stderr] 95 | let mut index: usize = 0; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/memory.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | let mut ppu_mem = PpuMemory::new(ines)?; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `sdl_context` [INFO] [stderr] --> src/graphic/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | sdl_context: Sdl, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `video_subsystem` [INFO] [stderr] --> src/graphic/mod.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | video_subsystem: VideoSubsystem, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `cpu::cpu::Cpu` [INFO] [stderr] --> src/cpu/cpu.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | / pub fn new() -> Cpu { [INFO] [stderr] 45 | | Cpu { [INFO] [stderr] 46 | | PC: 0x8000,// TODO set the correct [INFO] [stderr] 47 | | SP: 0xFD, [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:82:29 [INFO] [stderr] | [INFO] [stderr] 82 | let addr = 0x0100 + (self.SP as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(self.SP)` [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/cpu.rs:89:29 [INFO] [stderr] | [INFO] [stderr] 89 | let addr = 0x0100 + (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: the operation is ineffective. Consider reducing it to `b` [INFO] [stderr] --> src/cpu/cpu.rs:126:18 [INFO] [stderr] | [INFO] [stderr] 126 | self.C = (b >> 0) & 0x1 as u8; [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/cpu/cpu.rs:153:23 [INFO] [stderr] | [INFO] [stderr] 153 | let lsb = memory.get(0xFFFA as usize) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFA as usize))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:154:23 [INFO] [stderr] | [INFO] [stderr] 154 | let msb = memory.get(0xFFFB as usize) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFB as usize))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 36 [INFO] [stderr] --> src/cpu/cpu.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | / pub fn next(&mut self, memory: &mut Memory) -> Result { [INFO] [stderr] 168 | | [INFO] [stderr] 169 | | // Hey, do we have an interrupt? [INFO] [stderr] 170 | | let interrupt_cycles = self.process_interrupt(memory); [INFO] [stderr] ... | [INFO] [stderr] 750 | | Ok(total_cycles) [INFO] [stderr] 751 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:226:36 [INFO] [stderr] | [INFO] [stderr] 226 | let shifted: u16 = (addressing.fetch(memory) as u16) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addressing.fetch(memory))` [INFO] [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/cpu.rs:247:36 [INFO] [stderr] | [INFO] [stderr] 247 | let shifted: u16 = (addressing.fetch(memory) as u16) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addressing.fetch(memory))` [INFO] [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/cpu.rs:284:27 [INFO] [stderr] | [INFO] [stderr] 284 | self.PC = lsb as u16 + ((msb as u16) << 8) + 1; [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:284:41 [INFO] [stderr] | [INFO] [stderr] 284 | self.PC = lsb as u16 + ((msb as u16) << 8) + 1; [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/cpu.rs:298:44 [INFO] [stderr] | [INFO] [stderr] 298 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:300:36 [INFO] [stderr] | [INFO] [stderr] 300 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:317:44 [INFO] [stderr] | [INFO] [stderr] 317 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:319:36 [INFO] [stderr] | [INFO] [stderr] 319 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:336:44 [INFO] [stderr] | [INFO] [stderr] 336 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:338:36 [INFO] [stderr] | [INFO] [stderr] 338 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:411:44 [INFO] [stderr] | [INFO] [stderr] 411 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:413:36 [INFO] [stderr] | [INFO] [stderr] 413 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:428:44 [INFO] [stderr] | [INFO] [stderr] 428 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:430:36 [INFO] [stderr] | [INFO] [stderr] 430 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:446:44 [INFO] [stderr] | [INFO] [stderr] 446 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:448:36 [INFO] [stderr] | [INFO] [stderr] 448 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:464:44 [INFO] [stderr] | [INFO] [stderr] 464 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:466:36 [INFO] [stderr] | [INFO] [stderr] 466 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:482:44 [INFO] [stderr] | [INFO] [stderr] 482 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:484:36 [INFO] [stderr] | [INFO] [stderr] 484 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:599:27 [INFO] [stderr] | [INFO] [stderr] 599 | let lsb = memory.get(0xFFFE-1 as usize) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFE-1 as usize))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:600:27 [INFO] [stderr] | [INFO] [stderr] 600 | let msb = memory.get(0xFFFF-1 as usize) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFF-1 as usize))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:608:27 [INFO] [stderr] | [INFO] [stderr] 608 | self.PC = lsb as u16 + ((msb as u16) << 8);// + 1; [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:608:41 [INFO] [stderr] | [INFO] [stderr] 608 | self.PC = lsb as u16 + ((msb as u16) << 8);// + 1; [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/cpu.rs:701:40 [INFO] [stderr] | [INFO] [stderr] 701 | let shifted: u16 = (addressing.fetch(memory) as u16) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addressing.fetch(memory))` [INFO] [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/cpu.rs:723:40 [INFO] [stderr] | [INFO] [stderr] 723 | let shifted: u16 = (addressing.fetch(memory) as u16) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addressing.fetch(memory))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:749:24 [INFO] [stderr] | [INFO] [stderr] 749 | self.cycles += total_cycles as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(total_cycles)` [INFO] [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/cpu.rs:775:24 [INFO] [stderr] | [INFO] [stderr] 775 | let sum: u16 = (self.A 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/cpu/cpu.rs:776:15 [INFO] [stderr] | [INFO] [stderr] 776 | + (rhs as u16) + (self.C as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(rhs)` [INFO] [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/cpu.rs:776:30 [INFO] [stderr] | [INFO] [stderr] 776 | + (rhs as u16) + (self.C as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.C)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/cpu/memory.rs:73:37 [INFO] [stderr] | [INFO] [stderr] 73 | Ok(Memory { mem, ppu_mem, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_update)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:305:24 [INFO] [stderr] | [INFO] [stderr] 305 | let 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/addressing.rs:305:45 [INFO] [stderr] | [INFO] [stderr] 305 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:348:24 [INFO] [stderr] | [INFO] [stderr] 348 | let 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/addressing.rs:348:45 [INFO] [stderr] | [INFO] [stderr] 348 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:359:48 [INFO] [stderr] | [INFO] [stderr] 359 | let target = self.address.wrapping_add(self.offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.offset)` [INFO] [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/addressing.rs:364:48 [INFO] [stderr] | [INFO] [stderr] 364 | let target = self.address.wrapping_add(self.offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.offset)` [INFO] [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/addressing.rs:401:29 [INFO] [stderr] | [INFO] [stderr] 401 | let lsb_location = ((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/addressing.rs:401:50 [INFO] [stderr] | [INFO] [stderr] 401 | let lsb_location = ((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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/cpu/addressing.rs:417:9 [INFO] [stderr] | [INFO] [stderr] 417 | / let mut next_loc = self.lsb_location + 1; [INFO] [stderr] 418 | | if (self.lsb_location & 0xFF) as u8 == 0xFF { [INFO] [stderr] 419 | | next_loc = self.lsb_location & 0xFF00; [INFO] [stderr] 420 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let next_loc = if (self.lsb_location & 0xFF) as u8 == 0xFF { self.lsb_location & 0xFF00 } else { self.lsb_location + 1 };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [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/addressing.rs:422:24 [INFO] [stderr] | [INFO] [stderr] 422 | let 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/addressing.rs:422:45 [INFO] [stderr] | [INFO] [stderr] 422 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:430:24 [INFO] [stderr] | [INFO] [stderr] 430 | let 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/addressing.rs:430:45 [INFO] [stderr] | [INFO] [stderr] 430 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:474:24 [INFO] [stderr] | [INFO] [stderr] 474 | let 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/addressing.rs:474:45 [INFO] [stderr] | [INFO] [stderr] 474 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:483:24 [INFO] [stderr] | [INFO] [stderr] 483 | let 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/addressing.rs:483:45 [INFO] [stderr] | [INFO] [stderr] 483 | let 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: the operation is ineffective. Consider reducing it to `self.address` [INFO] [stderr] --> src/cpu/addressing.rs:491:30 [INFO] [stderr] | [INFO] [stderr] 491 | let (_, overflow) = ((self.address & 0xFF) as u8).overflowing_add(self.offset); [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/cpu/addressing.rs:533:24 [INFO] [stderr] | [INFO] [stderr] 533 | let 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/addressing.rs:533:45 [INFO] [stderr] | [INFO] [stderr] 533 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:534:52 [INFO] [stderr] | [INFO] [stderr] 534 | let fetch_addr: u16 = address.wrapping_add(self.offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.offset)` [INFO] [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/addressing.rs:541:24 [INFO] [stderr] | [INFO] [stderr] 541 | let 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/addressing.rs:541:45 [INFO] [stderr] | [INFO] [stderr] 541 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:542:52 [INFO] [stderr] | [INFO] [stderr] 542 | let fetch_addr: u16 = address.wrapping_add(self.offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.offset)` [INFO] [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: variable `OAMDMA` should have a snake case name such as `oamdma` [INFO] [stderr] --> src/ppu/memory.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | OAMDMA => self.oamdma, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `OAMDMA` should have a snake case name such as `oamdma` [INFO] [stderr] --> src/ppu/memory.rs:186:13 [INFO] [stderr] | [INFO] [stderr] 186 | OAMDMA => self.oamdma = value, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `OAMDMA` should have a snake case name such as `oamdma` [INFO] [stderr] --> src/ppu/memory.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | OAMDMA => {}, //println!("OAMDMA not implemented yet!"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/ppu/memory.rs:239:28 [INFO] [stderr] | [INFO] [stderr] 239 | let old_vram_buf = self.vram_addr_buffer as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.vram_addr_buffer)` [INFO] [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/memory.rs:240:48 [INFO] [stderr] | [INFO] [stderr] 240 | self.vram_addr = (old_vram_buf << 8) + (addr_byte as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addr_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: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/ppu/palette.rs:17:32 [INFO] [stderr] | [INFO] [stderr] 17 | colors: &HashMap) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 15 | pub fn get_bg_palette(palette_number: u8, [INFO] [stderr] 16 | vram: &[u8], [INFO] [stderr] 17 | colors: &HashMap) -> Option { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ppu::Ppu` [INFO] [stderr] --> src/ppu/mod.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> Ppu { [INFO] [stderr] 27 | | let line = 0; [INFO] [stderr] 28 | | let cycle = 0; [INFO] [stderr] 29 | | let display_flag = false; [INFO] [stderr] 30 | | Ppu { line, cycle, display_flag} [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/ppu/mod.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | self.line = self.line % 262; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.line %= 262` [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: needlessly taken reference of both operands [INFO] [stderr] --> src/rom/mod.rs:27:8 [INFO] [stderr] | [INFO] [stderr] 27 | if &expected_bytes[..] != &bytes[0..4] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 27 | if expected_bytes[..] != bytes[0..4] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/rom/mod.rs:50:18 [INFO] [stderr] | [INFO] [stderr] 50 | for i in offset..offset+512 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `trainer[0..(offset+512 - offset)].clone_from_slice(&bytes[offset..offset+512])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `bytes`. [INFO] [stderr] --> src/rom/mod.rs:58:14 [INFO] [stderr] | [INFO] [stderr] 58 | for i in offset..offset+(prg_rom_size*16384) { [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] 58 | for in bytes.iter().skip(offset).take((prg_rom_size*16384)) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `bytes`. [INFO] [stderr] --> src/rom/mod.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | for i in offset..offset+(chr_rom_size*8192) { [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] 65 | for in bytes.iter().skip(offset).take((chr_rom_size*8192)) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/nes.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | let lsb = memory.get(0xFFFC) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFC))` [INFO] [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/nes.rs:25:19 [INFO] [stderr] | [INFO] [stderr] 25 | let msb = memory.get(0xFFFD) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFD))` [INFO] [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 function/method `display` doesn't need a mutable reference [INFO] [stderr] --> src/nes.rs:48:29 [INFO] [stderr] | [INFO] [stderr] 48 | self.ui.display(&mut self.memory, &mut self.ppu); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> tests/nestest.rs:38:17 [INFO] [stderr] | [INFO] [stderr] 38 | let p = u8::from_str_radix(tokens[5], 16)?; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ppu/memory.rs:201:13 [INFO] [stderr] | [INFO] [stderr] 200 | OAMDMA => {}, //println!("OAMDMA not implemented yet!"), [INFO] [stderr] | ------ matches any value [INFO] [stderr] 201 | PPUSCROLL => {}, //println!("PPUSCROLL not implemented yet!"), [INFO] [stderr] | ^^^^^^^^^ unreachable pattern [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/ppu/memory.rs:202:13 [INFO] [stderr] | [INFO] [stderr] 200 | OAMDMA => {}, //println!("OAMDMA not implemented yet!"), [INFO] [stderr] | ------ matches any value [INFO] [stderr] 201 | PPUSCROLL => {}, //println!("PPUSCROLL not implemented yet!"), [INFO] [stderr] 202 | _ => panic!("{:?} cannot be written by CPU", register_type), [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] [INFO] [stderr] warning: unused variable: `OAMDMA` [INFO] [stderr] --> src/ppu/memory.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | OAMDMA => self.oamdma, [INFO] [stderr] | ^^^^^^ help: consider using `_OAMDMA` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `OAMDMA` [INFO] [stderr] --> src/ppu/memory.rs:186:13 [INFO] [stderr] | [INFO] [stderr] 186 | OAMDMA => self.oamdma = value, [INFO] [stderr] | ^^^^^^ help: consider using `_OAMDMA` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `OAMDMA` [INFO] [stderr] --> src/ppu/memory.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | OAMDMA => {}, //println!("OAMDMA not implemented yet!"), [INFO] [stderr] | ^^^^^^ help: consider using `_OAMDMA` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `index` is never read [INFO] [stderr] --> src/graphic/mod.rs:95:21 [INFO] [stderr] | [INFO] [stderr] 95 | let mut index: usize = 0; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/memory.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | let mut ppu_mem = PpuMemory::new(ines)?; [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `sdl_context` [INFO] [stderr] --> src/graphic/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | sdl_context: Sdl, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `video_subsystem` [INFO] [stderr] --> src/graphic/mod.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | video_subsystem: VideoSubsystem, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `cpu::cpu::Cpu` [INFO] [stderr] --> src/cpu/cpu.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | / pub fn new() -> Cpu { [INFO] [stderr] 45 | | Cpu { [INFO] [stderr] 46 | | PC: 0x8000,// TODO set the correct [INFO] [stderr] 47 | | SP: 0xFD, [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:82:29 [INFO] [stderr] | [INFO] [stderr] 82 | let addr = 0x0100 + (self.SP as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(self.SP)` [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/cpu.rs:89:29 [INFO] [stderr] | [INFO] [stderr] 89 | let addr = 0x0100 + (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: the operation is ineffective. Consider reducing it to `b` [INFO] [stderr] --> src/cpu/cpu.rs:126:18 [INFO] [stderr] | [INFO] [stderr] 126 | self.C = (b >> 0) & 0x1 as u8; [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/cpu/cpu.rs:153:23 [INFO] [stderr] | [INFO] [stderr] 153 | let lsb = memory.get(0xFFFA as usize) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFA as usize))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:154:23 [INFO] [stderr] | [INFO] [stderr] 154 | let msb = memory.get(0xFFFB as usize) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFB as usize))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 36 [INFO] [stderr] --> src/cpu/cpu.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | / pub fn next(&mut self, memory: &mut Memory) -> Result { [INFO] [stderr] 168 | | [INFO] [stderr] 169 | | // Hey, do we have an interrupt? [INFO] [stderr] 170 | | let interrupt_cycles = self.process_interrupt(memory); [INFO] [stderr] ... | [INFO] [stderr] 750 | | Ok(total_cycles) [INFO] [stderr] 751 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:226:36 [INFO] [stderr] | [INFO] [stderr] 226 | let shifted: u16 = (addressing.fetch(memory) as u16) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addressing.fetch(memory))` [INFO] [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/cpu.rs:247:36 [INFO] [stderr] | [INFO] [stderr] 247 | let shifted: u16 = (addressing.fetch(memory) as u16) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addressing.fetch(memory))` [INFO] [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/cpu.rs:284:27 [INFO] [stderr] | [INFO] [stderr] 284 | self.PC = lsb as u16 + ((msb as u16) << 8) + 1; [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:284:41 [INFO] [stderr] | [INFO] [stderr] 284 | self.PC = lsb as u16 + ((msb as u16) << 8) + 1; [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/cpu.rs:298:44 [INFO] [stderr] | [INFO] [stderr] 298 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:300:36 [INFO] [stderr] | [INFO] [stderr] 300 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:317:44 [INFO] [stderr] | [INFO] [stderr] 317 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:319:36 [INFO] [stderr] | [INFO] [stderr] 319 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:336:44 [INFO] [stderr] | [INFO] [stderr] 336 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:338:36 [INFO] [stderr] | [INFO] [stderr] 338 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:411:44 [INFO] [stderr] | [INFO] [stderr] 411 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:413:36 [INFO] [stderr] | [INFO] [stderr] 413 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:428:44 [INFO] [stderr] | [INFO] [stderr] 428 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:430:36 [INFO] [stderr] | [INFO] [stderr] 430 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:446:44 [INFO] [stderr] | [INFO] [stderr] 446 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:448:36 [INFO] [stderr] | [INFO] [stderr] 448 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:464:44 [INFO] [stderr] | [INFO] [stderr] 464 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:466:36 [INFO] [stderr] | [INFO] [stderr] 466 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:482:44 [INFO] [stderr] | [INFO] [stderr] 482 | self.PC -= 0x100 - offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:484:36 [INFO] [stderr] | [INFO] [stderr] 484 | self.PC += offset as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [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/cpu.rs:599:27 [INFO] [stderr] | [INFO] [stderr] 599 | let lsb = memory.get(0xFFFE-1 as usize) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFE-1 as usize))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:600:27 [INFO] [stderr] | [INFO] [stderr] 600 | let msb = memory.get(0xFFFF-1 as usize) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFF-1 as usize))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:608:27 [INFO] [stderr] | [INFO] [stderr] 608 | self.PC = lsb as u16 + ((msb as u16) << 8);// + 1; [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:608:41 [INFO] [stderr] | [INFO] [stderr] 608 | self.PC = lsb as u16 + ((msb as u16) << 8);// + 1; [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/cpu.rs:701:40 [INFO] [stderr] | [INFO] [stderr] 701 | let shifted: u16 = (addressing.fetch(memory) as u16) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addressing.fetch(memory))` [INFO] [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/cpu.rs:723:40 [INFO] [stderr] | [INFO] [stderr] 723 | let shifted: u16 = (addressing.fetch(memory) as u16) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addressing.fetch(memory))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/cpu/cpu.rs:749:24 [INFO] [stderr] | [INFO] [stderr] 749 | self.cycles += total_cycles as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(total_cycles)` [INFO] [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/cpu.rs:775:24 [INFO] [stderr] | [INFO] [stderr] 775 | let sum: u16 = (self.A 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/cpu/cpu.rs:776:15 [INFO] [stderr] | [INFO] [stderr] 776 | + (rhs as u16) + (self.C as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(rhs)` [INFO] [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/cpu.rs:776:30 [INFO] [stderr] | [INFO] [stderr] 776 | + (rhs as u16) + (self.C as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.C)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/cpu/memory.rs:73:37 [INFO] [stderr] | [INFO] [stderr] 73 | Ok(Memory { mem, ppu_mem, ..Default::default()}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_update)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:305:24 [INFO] [stderr] | [INFO] [stderr] 305 | let 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/addressing.rs:305:45 [INFO] [stderr] | [INFO] [stderr] 305 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:348:24 [INFO] [stderr] | [INFO] [stderr] 348 | let 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/addressing.rs:348:45 [INFO] [stderr] | [INFO] [stderr] 348 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:359:48 [INFO] [stderr] | [INFO] [stderr] 359 | let target = self.address.wrapping_add(self.offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.offset)` [INFO] [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/addressing.rs:364:48 [INFO] [stderr] | [INFO] [stderr] 364 | let target = self.address.wrapping_add(self.offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.offset)` [INFO] [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/addressing.rs:401:29 [INFO] [stderr] | [INFO] [stderr] 401 | let lsb_location = ((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/addressing.rs:401:50 [INFO] [stderr] | [INFO] [stderr] 401 | let lsb_location = ((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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/cpu/addressing.rs:417:9 [INFO] [stderr] | [INFO] [stderr] 417 | / let mut next_loc = self.lsb_location + 1; [INFO] [stderr] 418 | | if (self.lsb_location & 0xFF) as u8 == 0xFF { [INFO] [stderr] 419 | | next_loc = self.lsb_location & 0xFF00; [INFO] [stderr] 420 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let next_loc = if (self.lsb_location & 0xFF) as u8 == 0xFF { self.lsb_location & 0xFF00 } else { self.lsb_location + 1 };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [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/addressing.rs:422:24 [INFO] [stderr] | [INFO] [stderr] 422 | let 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/addressing.rs:422:45 [INFO] [stderr] | [INFO] [stderr] 422 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:430:24 [INFO] [stderr] | [INFO] [stderr] 430 | let 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/addressing.rs:430:45 [INFO] [stderr] | [INFO] [stderr] 430 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:474:24 [INFO] [stderr] | [INFO] [stderr] 474 | let 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/addressing.rs:474:45 [INFO] [stderr] | [INFO] [stderr] 474 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:483:24 [INFO] [stderr] | [INFO] [stderr] 483 | let 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/addressing.rs:483:45 [INFO] [stderr] | [INFO] [stderr] 483 | let 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: the operation is ineffective. Consider reducing it to `self.address` [INFO] [stderr] --> src/cpu/addressing.rs:491:30 [INFO] [stderr] | [INFO] [stderr] 491 | let (_, overflow) = ((self.address & 0xFF) as u8).overflowing_add(self.offset); [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/cpu/addressing.rs:533:24 [INFO] [stderr] | [INFO] [stderr] 533 | let 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/addressing.rs:533:45 [INFO] [stderr] | [INFO] [stderr] 533 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:534:52 [INFO] [stderr] | [INFO] [stderr] 534 | let fetch_addr: u16 = address.wrapping_add(self.offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.offset)` [INFO] [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/addressing.rs:541:24 [INFO] [stderr] | [INFO] [stderr] 541 | let 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/addressing.rs:541:45 [INFO] [stderr] | [INFO] [stderr] 541 | let 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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/addressing.rs:542:52 [INFO] [stderr] | [INFO] [stderr] 542 | let fetch_addr: u16 = address.wrapping_add(self.offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.offset)` [INFO] [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: operator precedence can trip the unwary [INFO] [stderr] --> src/bin/pattern_tables.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | let bit1 = (v1 >> 8-(xline+1)) & 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `v1 >> (8-(xline+1))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bin/pattern_tables.rs:39:30 [INFO] [stderr] | [INFO] [stderr] 39 | let bit2 = ((v2 >> 8-(xline+1)) & 1) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `v2 >> (8-(xline+1))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: variable `OAMDMA` should have a snake case name such as `oamdma` [INFO] [stderr] --> src/ppu/memory.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | OAMDMA => self.oamdma, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `OAMDMA` should have a snake case name such as `oamdma` [INFO] [stderr] --> src/ppu/memory.rs:186:13 [INFO] [stderr] | [INFO] [stderr] 186 | OAMDMA => self.oamdma = value, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `OAMDMA` should have a snake case name such as `oamdma` [INFO] [stderr] --> src/ppu/memory.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | OAMDMA => {}, //println!("OAMDMA not implemented yet!"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/ppu/memory.rs:239:28 [INFO] [stderr] | [INFO] [stderr] 239 | let old_vram_buf = self.vram_addr_buffer as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.vram_addr_buffer)` [INFO] [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/memory.rs:240:48 [INFO] [stderr] | [INFO] [stderr] 240 | self.vram_addr = (old_vram_buf << 8) + (addr_byte as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(addr_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: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/ppu/palette.rs:17:32 [INFO] [stderr] | [INFO] [stderr] 17 | colors: &HashMap) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 15 | pub fn get_bg_palette(palette_number: u8, [INFO] [stderr] 16 | vram: &[u8], [INFO] [stderr] 17 | colors: &HashMap) -> Option { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ppu::Ppu` [INFO] [stderr] --> src/ppu/mod.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> Ppu { [INFO] [stderr] 27 | | let line = 0; [INFO] [stderr] 28 | | let cycle = 0; [INFO] [stderr] 29 | | let display_flag = false; [INFO] [stderr] 30 | | Ppu { line, cycle, display_flag} [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 14 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/ppu/mod.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | self.line = self.line % 262; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.line %= 262` [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: needlessly taken reference of both operands [INFO] [stderr] --> src/rom/mod.rs:27:8 [INFO] [stderr] | [INFO] [stderr] 27 | if &expected_bytes[..] != &bytes[0..4] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 27 | if expected_bytes[..] != bytes[0..4] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/rom/mod.rs:50:18 [INFO] [stderr] | [INFO] [stderr] 50 | for i in offset..offset+512 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `trainer[0..(offset+512 - offset)].clone_from_slice(&bytes[offset..offset+512])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `bytes`. [INFO] [stderr] --> src/rom/mod.rs:58:14 [INFO] [stderr] | [INFO] [stderr] 58 | for i in offset..offset+(prg_rom_size*16384) { [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] 58 | for in bytes.iter().skip(offset).take((prg_rom_size*16384)) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `bytes`. [INFO] [stderr] --> src/rom/mod.rs:65:14 [INFO] [stderr] | [INFO] [stderr] 65 | for i in offset..offset+(chr_rom_size*8192) { [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] 65 | for in bytes.iter().skip(offset).take((chr_rom_size*8192)) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/nes.rs:24:19 [INFO] [stderr] | [INFO] [stderr] 24 | let lsb = memory.get(0xFFFC) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFC))` [INFO] [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/nes.rs:25:19 [INFO] [stderr] | [INFO] [stderr] 25 | let msb = memory.get(0xFFFD) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFD))` [INFO] [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 function/method `display` doesn't need a mutable reference [INFO] [stderr] --> src/nes.rs:48:29 [INFO] [stderr] | [INFO] [stderr] 48 | self.ui.display(&mut self.memory, &mut self.ppu); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bin/pattern_tables.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | let bit1 = (v1 >> 8-(xline+1)) & 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `v1 >> (8-(xline+1))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bin/pattern_tables.rs:39:30 [INFO] [stderr] | [INFO] [stderr] 39 | let bit2 = ((v2 >> 8-(xline+1)) & 1) << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `v2 >> (8-(xline+1))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/bin/interrupt_handlers.rs:21:15 [INFO] [stderr] | [INFO] [stderr] 21 | let lsb = memory.get(0xFFFA) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFA))` [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/bin/interrupt_handlers.rs:22:15 [INFO] [stderr] | [INFO] [stderr] 22 | let msb = memory.get(0xFFFB) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFB))` [INFO] [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: single-character string constant used as pattern [INFO] [stderr] --> tests/nestest.rs:30:53 [INFO] [stderr] | [INFO] [stderr] 30 | let tokens: Vec<&str> = unwrapped.split(",").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/bin/interrupt_handlers.rs:21:15 [INFO] [stderr] | [INFO] [stderr] 21 | let lsb = memory.get(0xFFFA) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFA))` [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/bin/interrupt_handlers.rs:22:15 [INFO] [stderr] | [INFO] [stderr] 22 | let msb = memory.get(0xFFFB) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(memory.get(0xFFFB))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 18.47s [INFO] running `"docker" "inspect" "2a06e18575b58ad629ce2b9b7d6bc00cc24986f016dfb4092e5ff58b4d3cd79f"` [INFO] running `"docker" "rm" "-f" "2a06e18575b58ad629ce2b9b7d6bc00cc24986f016dfb4092e5ff58b4d3cd79f"` [INFO] [stdout] 2a06e18575b58ad629ce2b9b7d6bc00cc24986f016dfb4092e5ff58b4d3cd79f