[INFO] updating cached repository Darksecond/gbm-rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Darksecond/gbm-rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Darksecond/gbm-rust" "work/ex/clippy-test-run/sources/stable/gh/Darksecond/gbm-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Darksecond/gbm-rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Darksecond/gbm-rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Darksecond/gbm-rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Darksecond/gbm-rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9b83b0baa79ed6dcaf23eceab005b1ca4b09e6cf [INFO] sha for GitHub repo Darksecond/gbm-rust: 9b83b0baa79ed6dcaf23eceab005b1ca4b09e6cf [INFO] validating manifest of Darksecond/gbm-rust 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 Darksecond/gbm-rust 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 Darksecond/gbm-rust [INFO] finished frobbing Darksecond/gbm-rust [INFO] frobbed toml for Darksecond/gbm-rust written to work/ex/clippy-test-run/sources/stable/gh/Darksecond/gbm-rust/Cargo.toml [INFO] started frobbing Darksecond/gbm-rust [INFO] finished frobbing Darksecond/gbm-rust [INFO] frobbed toml for Darksecond/gbm-rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Darksecond/gbm-rust/Cargo.toml [INFO] crate Darksecond/gbm-rust 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 Darksecond/gbm-rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Darksecond/gbm-rust:/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] 475991a3041fa89811681c7170aa296597e5ae77b2dd99d2719e49eb5c54881d [INFO] running `"docker" "start" "-a" "475991a3041fa89811681c7170aa296597e5ae77b2dd99d2719e49eb5c54881d"` [INFO] [stderr] Checking gbm-rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mmu.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | cart: cart, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cart` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cpu/mod.rs:215:13 [INFO] [stderr] | [INFO] [stderr] 215 | mmu: mmu [INFO] [stderr] | ^^^^^^^^ help: replace it with: `mmu` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mmu.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | cart: cart, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cart` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cpu/mod.rs:215:13 [INFO] [stderr] | [INFO] [stderr] 215 | mmu: mmu [INFO] [stderr] | ^^^^^^^^ help: replace it with: `mmu` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu/registers.rs:5:19 [INFO] [stderr] | [INFO] [stderr] 5 | const Z = 0b1000000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b100_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/cpu/registers.rs:6:19 [INFO] [stderr] | [INFO] [stderr] 6 | const N = 0b0100000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu/registers.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | const H = 0b0010000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu/registers.rs:8:19 [INFO] [stderr] | [INFO] [stderr] 8 | const C = 0b0001000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:58:30 [INFO] [stderr] | [INFO] [stderr] 58 | const BG_ON = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:59:30 [INFO] [stderr] | [INFO] [stderr] 59 | const OBJ_ON = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:60:30 [INFO] [stderr] | [INFO] [stderr] 60 | const OBJ_SIZE = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | const BG_MAP_BASE = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:62:30 [INFO] [stderr] | [INFO] [stderr] 62 | const BG_TILE_BASE = 0b00010000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:63:30 [INFO] [stderr] | [INFO] [stderr] 63 | const WND_ON = 0b00100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:64:30 [INFO] [stderr] | [INFO] [stderr] 64 | const WND_MAP_BASE = 0b01000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:65:30 [INFO] [stderr] | [INFO] [stderr] 65 | const LCD_ON = 0b10000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:94:44 [INFO] [stderr] | [INFO] [stderr] 94 | bg_palette: Palette::from_u8(0b11111100), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:95:44 [INFO] [stderr] | [INFO] [stderr] 95 | obj0_palette: Palette::from_u8(0b11111111), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:96:44 [INFO] [stderr] | [INFO] [stderr] 96 | obj1_palette: Palette::from_u8(0b11111111), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | VBlank = 0b00000001, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:5:15 [INFO] [stderr] | [INFO] [stderr] 5 | LcdStat = 0b00000010, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:6:15 [INFO] [stderr] | [INFO] [stderr] 6 | Timer = 0b00000100, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:7:15 [INFO] [stderr] | [INFO] [stderr] 7 | Serial = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:8:15 [INFO] [stderr] | [INFO] [stderr] 8 | Joypad = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:14:13 [INFO] [stderr] | [INFO] [stderr] 14 | 0b00000001 => Some(Interrupt::VBlank), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | 0b00000010 => Some(Interrupt::LcdStat), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | 0b00000100 => Some(Interrupt::Timer), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | 0b00001000 => Some(Interrupt::Serial), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | 0b00010000 => Some(Interrupt::Joypad), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | const INT_VBLANK = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:37:29 [INFO] [stderr] | [INFO] [stderr] 37 | const INT_LCDSTAT = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | const INT_TIMER = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:39:29 [INFO] [stderr] | [INFO] [stderr] 39 | const INT_SERIAL = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:40:29 [INFO] [stderr] | [INFO] [stderr] 40 | const INT_JOYPAD = 0b00010000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu/registers.rs:5:19 [INFO] [stderr] | [INFO] [stderr] 5 | const Z = 0b1000000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b100_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/cpu/registers.rs:6:19 [INFO] [stderr] | [INFO] [stderr] 6 | const N = 0b0100000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu/registers.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | const H = 0b0010000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu/registers.rs:8:19 [INFO] [stderr] | [INFO] [stderr] 8 | const C = 0b0001000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:58:30 [INFO] [stderr] | [INFO] [stderr] 58 | const BG_ON = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:59:30 [INFO] [stderr] | [INFO] [stderr] 59 | const OBJ_ON = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:60:30 [INFO] [stderr] | [INFO] [stderr] 60 | const OBJ_SIZE = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:61:30 [INFO] [stderr] | [INFO] [stderr] 61 | const BG_MAP_BASE = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:62:30 [INFO] [stderr] | [INFO] [stderr] 62 | const BG_TILE_BASE = 0b00010000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:63:30 [INFO] [stderr] | [INFO] [stderr] 63 | const WND_ON = 0b00100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:64:30 [INFO] [stderr] | [INFO] [stderr] 64 | const WND_MAP_BASE = 0b01000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:65:30 [INFO] [stderr] | [INFO] [stderr] 65 | const LCD_ON = 0b10000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:94:44 [INFO] [stderr] | [INFO] [stderr] 94 | bg_palette: Palette::from_u8(0b11111100), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:95:44 [INFO] [stderr] | [INFO] [stderr] 95 | obj0_palette: Palette::from_u8(0b11111111), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/gpu/mod.rs:96:44 [INFO] [stderr] | [INFO] [stderr] 96 | obj1_palette: Palette::from_u8(0b11111111), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | VBlank = 0b00000001, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:5:15 [INFO] [stderr] | [INFO] [stderr] 5 | LcdStat = 0b00000010, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:6:15 [INFO] [stderr] | [INFO] [stderr] 6 | Timer = 0b00000100, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:7:15 [INFO] [stderr] | [INFO] [stderr] 7 | Serial = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:8:15 [INFO] [stderr] | [INFO] [stderr] 8 | Joypad = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:14:13 [INFO] [stderr] | [INFO] [stderr] 14 | 0b00000001 => Some(Interrupt::VBlank), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | 0b00000010 => Some(Interrupt::LcdStat), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | 0b00000100 => Some(Interrupt::Timer), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | 0b00001000 => Some(Interrupt::Serial), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | 0b00010000 => Some(Interrupt::Joypad), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | const INT_VBLANK = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:37:29 [INFO] [stderr] | [INFO] [stderr] 37 | const INT_LCDSTAT = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | const INT_TIMER = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:39:29 [INFO] [stderr] | [INFO] [stderr] 39 | const INT_SERIAL = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/irq.rs:40:29 [INFO] [stderr] | [INFO] [stderr] 40 | const INT_JOYPAD = 0b00010000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_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: unused variable: `opcode` [INFO] [stderr] --> src/cpu/mod.rs:237:18 [INFO] [stderr] | [INFO] [stderr] 237 | let (opcode, instruction) = Opcode::decode(self, opcode); [INFO] [stderr] | ^^^^^^ help: consider using `_opcode` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Immediate` [INFO] [stderr] --> src/cpu/mod.rs:144:1 [INFO] [stderr] | [INFO] [stderr] 144 | pub struct Immediate; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `read_u16` [INFO] [stderr] --> src/cpu/mod.rs:265:5 [INFO] [stderr] | [INFO] [stderr] 265 | pub fn read_u16(&mut self, addr: u16) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `write_u16` [INFO] [stderr] --> src/cpu/mod.rs:271:5 [INFO] [stderr] | [INFO] [stderr] 271 | pub fn write_u16(&mut self, addr: u16, value: u16) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `black` [INFO] [stderr] --> src/gpu/mod.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | black: Color, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `dark` [INFO] [stderr] --> src/gpu/mod.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | dark: Color, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `light` [INFO] [stderr] --> src/gpu/mod.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | light: Color, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `white` [INFO] [stderr] --> src/gpu/mod.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | white: Color, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/rom.rs:8:27 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn new(filename : &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/cartridge.rs:29:27 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn new(filename : &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cpu/registers.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn test(&self, test: bool) -> Flags { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/opcodes.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | _ => Opcode::Unknown(opcode as u16), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(opcode)` [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/opcodes.rs:320:10 [INFO] [stderr] | [INFO] [stderr] 320 | (opcode as u16, instruction) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(opcode)` [INFO] [stderr] | [INFO] [stderr] = help: 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/opcodes.rs:325:36 [INFO] [stderr] | [INFO] [stderr] 325 | let full_opcode = 0xCB00 | opcode as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(opcode)` [INFO] [stderr] | [INFO] [stderr] = help: 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/mod.rs:54:20 [INFO] [stderr] | [INFO] [stderr] 54 | HL => ((cpu.regs.h as u16) << 8) | (cpu.regs.l as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:54:48 [INFO] [stderr] | [INFO] [stderr] 54 | HL => ((cpu.regs.h as u16) << 8) | (cpu.regs.l as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.l)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:55:20 [INFO] [stderr] | [INFO] [stderr] 55 | AF => ((cpu.regs.a as u16) << 8) | (cpu.regs.f.bits() as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.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/mod.rs:55:48 [INFO] [stderr] | [INFO] [stderr] 55 | AF => ((cpu.regs.a as u16) << 8) | (cpu.regs.f.bits() as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.f.bits())` [INFO] [stderr] | [INFO] [stderr] = help: 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/mod.rs:56:20 [INFO] [stderr] | [INFO] [stderr] 56 | BC => ((cpu.regs.b as u16) << 8) | (cpu.regs.c as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:56:48 [INFO] [stderr] | [INFO] [stderr] 56 | BC => ((cpu.regs.b as u16) << 8) | (cpu.regs.c as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:57:20 [INFO] [stderr] | [INFO] [stderr] 57 | DE => ((cpu.regs.d as u16) << 8) | (cpu.regs.e as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.d)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:57:48 [INFO] [stderr] | [INFO] [stderr] 57 | DE => ((cpu.regs.d as u16) << 8) | (cpu.regs.e as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.e)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/mod.rs:167:20 [INFO] [stderr] | [INFO] [stderr] 167 | let addr = match self { [INFO] [stderr] | ____________________^ [INFO] [stderr] 168 | | &Memory::HL | &Memory::HLI | &Memory::HLD => Reg16::HL.read(cpu), [INFO] [stderr] 169 | | &Memory::DE => Reg16::DE.read(cpu), [INFO] [stderr] 170 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 167 | let addr = match *self { [INFO] [stderr] 168 | Memory::HL | Memory::HLI | Memory::HLD => Reg16::HL.read(cpu), [INFO] [stderr] 169 | Memory::DE => Reg16::DE.read(cpu), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/mod.rs:172:9 [INFO] [stderr] | [INFO] [stderr] 172 | / match self { [INFO] [stderr] 173 | | &Memory::HLI => Reg16::HL.inc(cpu), [INFO] [stderr] 174 | | &Memory::HLD => Reg16::HL.dec(cpu), [INFO] [stderr] 175 | | _ => (), [INFO] [stderr] 176 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 172 | match *self { [INFO] [stderr] 173 | Memory::HLI => Reg16::HL.inc(cpu), [INFO] [stderr] 174 | Memory::HLD => Reg16::HL.dec(cpu), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/mod.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | let addr = match self { [INFO] [stderr] | ____________________^ [INFO] [stderr] 183 | | &Memory::HL | &Memory::HLI | &Memory::HLD => Reg16::HL.read(cpu), [INFO] [stderr] 184 | | &Memory::DE => Reg16::DE.read(cpu), [INFO] [stderr] 185 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 182 | let addr = match *self { [INFO] [stderr] 183 | Memory::HL | Memory::HLI | Memory::HLD => Reg16::HL.read(cpu), [INFO] [stderr] 184 | Memory::DE => Reg16::DE.read(cpu), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/mod.rs:187:9 [INFO] [stderr] | [INFO] [stderr] 187 | / match self { [INFO] [stderr] 188 | | &Memory::HLI => Reg16::HL.inc(cpu), [INFO] [stderr] 189 | | &Memory::HLD => Reg16::HL.dec(cpu), [INFO] [stderr] 190 | | _ => (), [INFO] [stderr] 191 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 187 | match *self { [INFO] [stderr] 188 | Memory::HLI => Reg16::HL.inc(cpu), [INFO] [stderr] 189 | Memory::HLD => Reg16::HL.dec(cpu), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/cpu/mod.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match self.ime { [INFO] [stderr] 228 | | Ime::Enabling => self.ime = Ime::Enabled, [INFO] [stderr] 229 | | _ => (), [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ help: try this: `if let Ime::Enabling = self.ime { self.ime = Ime::Enabled }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:268:10 [INFO] [stderr] | [INFO] [stderr] 268 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:268:29 [INFO] [stderr] | [INFO] [stderr] 268 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(l)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:290:10 [INFO] [stderr] | [INFO] [stderr] 290 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:290:29 [INFO] [stderr] | [INFO] [stderr] 290 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(l)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:314:10 [INFO] [stderr] | [INFO] [stderr] 314 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:314:29 [INFO] [stderr] | [INFO] [stderr] 314 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(l)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:379:69 [INFO] [stderr] | [INFO] [stderr] 379 | Op8::Memory(Addr::ZeroPage(addr)) => cpu.read_u8(0xFF00|(addr as u16)), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(addr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:397:71 [INFO] [stderr] | [INFO] [stderr] 397 | Op8::Memory(Addr::ZeroPage(addr)) => {cpu.write_u8(0xFF00|(addr as u16), value);}, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(addr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:398:55 [INFO] [stderr] | [INFO] [stderr] 398 | Op8::Memory(Addr::ZeroPageC) => { let c = Reg8::C.read(cpu) as u16; cpu.write_u8(0xFF00|c, value)}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(Reg8::C.read(cpu))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: unused variable: `opcode` [INFO] [stderr] --> src/cpu/mod.rs:237:18 [INFO] [stderr] | [INFO] [stderr] 237 | let (opcode, instruction) = Opcode::decode(self, opcode); [INFO] [stderr] | ^^^^^^ help: consider using `_opcode` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:478:31 [INFO] [stderr] | [INFO] [stderr] 478 | Reg16::PC.write(self, addr as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(addr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:527:31 [INFO] [stderr] | [INFO] [stderr] 527 | registers::C.test((self.regs.a as u16) < (value as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.regs.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/mod.rs:527:54 [INFO] [stderr] | [INFO] [stderr] 527 | registers::C.test((self.regs.a as u16) < (value as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/cpu/mod.rs:532:9 [INFO] [stderr] | [INFO] [stderr] 532 | self.regs.a = self.regs.a & value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.regs.a &= value` [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: manual implementation of an assign operation [INFO] [stderr] --> src/cpu/mod.rs:539:9 [INFO] [stderr] | [INFO] [stderr] 539 | self.regs.a = self.regs.a | value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.regs.a |= value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/cpu/mod.rs:545:9 [INFO] [stderr] | [INFO] [stderr] 545 | self.regs.a = self.regs.a ^ value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.regs.a ^= value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:587:31 [INFO] [stderr] | [INFO] [stderr] 587 | registers::C.test(original as u16 + value as u16 + c as u16 > 0xff) | [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(original)` [INFO] [stderr] | [INFO] [stderr] = help: 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/mod.rs:587:49 [INFO] [stderr] | [INFO] [stderr] 587 | registers::C.test(original as u16 + value as u16 + c as u16 > 0xff) | [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:587:64 [INFO] [stderr] | [INFO] [stderr] 587 | registers::C.test(original as u16 + value as u16 + c as u16 > 0xff) | [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(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: the operation is ineffective. Consider reducing it to `value` [INFO] [stderr] --> src/gpu/mod.rs:43:35 [INFO] [stderr] | [INFO] [stderr] 43 | white: Color::from_u8((value >> 0) & 0x3), [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/irq.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn addr(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/irq.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | / match self { [INFO] [stderr] 25 | | &Interrupt::VBlank => 0x40, [INFO] [stderr] 26 | | &Interrupt::LcdStat => 0x48, [INFO] [stderr] 27 | | &Interrupt::Timer => 0x50, [INFO] [stderr] 28 | | &Interrupt::Serial => 0x58, [INFO] [stderr] 29 | | &Interrupt::Joypad => 0x60, [INFO] [stderr] 30 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 24 | match *self { [INFO] [stderr] 25 | Interrupt::VBlank => 0x40, [INFO] [stderr] 26 | Interrupt::LcdStat => 0x48, [INFO] [stderr] 27 | Interrupt::Timer => 0x50, [INFO] [stderr] 28 | Interrupt::Serial => 0x58, [INFO] [stderr] 29 | Interrupt::Joypad => 0x60, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Immediate` [INFO] [stderr] --> src/cpu/mod.rs:144:1 [INFO] [stderr] | [INFO] [stderr] 144 | pub struct Immediate; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `read_u16` [INFO] [stderr] --> src/cpu/mod.rs:265:5 [INFO] [stderr] | [INFO] [stderr] 265 | pub fn read_u16(&mut self, addr: u16) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `write_u16` [INFO] [stderr] --> src/cpu/mod.rs:271:5 [INFO] [stderr] | [INFO] [stderr] 271 | pub fn write_u16(&mut self, addr: u16, value: u16) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `black` [INFO] [stderr] --> src/gpu/mod.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | black: Color, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `dark` [INFO] [stderr] --> src/gpu/mod.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | dark: Color, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `light` [INFO] [stderr] --> src/gpu/mod.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | light: Color, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `white` [INFO] [stderr] --> src/gpu/mod.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | white: Color, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/rom.rs:8:27 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn new(filename : &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/cartridge.rs:29:27 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn new(filename : &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cpu/registers.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn test(&self, test: bool) -> Flags { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/opcodes.rs:318:34 [INFO] [stderr] | [INFO] [stderr] 318 | _ => Opcode::Unknown(opcode as u16), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(opcode)` [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/opcodes.rs:320:10 [INFO] [stderr] | [INFO] [stderr] 320 | (opcode as u16, instruction) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(opcode)` [INFO] [stderr] | [INFO] [stderr] = help: 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/opcodes.rs:325:36 [INFO] [stderr] | [INFO] [stderr] 325 | let full_opcode = 0xCB00 | opcode as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(opcode)` [INFO] [stderr] | [INFO] [stderr] = help: 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/mod.rs:54:20 [INFO] [stderr] | [INFO] [stderr] 54 | HL => ((cpu.regs.h as u16) << 8) | (cpu.regs.l as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:54:48 [INFO] [stderr] | [INFO] [stderr] 54 | HL => ((cpu.regs.h as u16) << 8) | (cpu.regs.l as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.l)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:55:20 [INFO] [stderr] | [INFO] [stderr] 55 | AF => ((cpu.regs.a as u16) << 8) | (cpu.regs.f.bits() as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.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/mod.rs:55:48 [INFO] [stderr] | [INFO] [stderr] 55 | AF => ((cpu.regs.a as u16) << 8) | (cpu.regs.f.bits() as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.f.bits())` [INFO] [stderr] | [INFO] [stderr] = help: 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/mod.rs:56:20 [INFO] [stderr] | [INFO] [stderr] 56 | BC => ((cpu.regs.b as u16) << 8) | (cpu.regs.c as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:56:48 [INFO] [stderr] | [INFO] [stderr] 56 | BC => ((cpu.regs.b as u16) << 8) | (cpu.regs.c as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:57:20 [INFO] [stderr] | [INFO] [stderr] 57 | DE => ((cpu.regs.d as u16) << 8) | (cpu.regs.e as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.d)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:57:48 [INFO] [stderr] | [INFO] [stderr] 57 | DE => ((cpu.regs.d as u16) << 8) | (cpu.regs.e as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(cpu.regs.e)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/mod.rs:167:20 [INFO] [stderr] | [INFO] [stderr] 167 | let addr = match self { [INFO] [stderr] | ____________________^ [INFO] [stderr] 168 | | &Memory::HL | &Memory::HLI | &Memory::HLD => Reg16::HL.read(cpu), [INFO] [stderr] 169 | | &Memory::DE => Reg16::DE.read(cpu), [INFO] [stderr] 170 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 167 | let addr = match *self { [INFO] [stderr] 168 | Memory::HL | Memory::HLI | Memory::HLD => Reg16::HL.read(cpu), [INFO] [stderr] 169 | Memory::DE => Reg16::DE.read(cpu), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/mod.rs:172:9 [INFO] [stderr] | [INFO] [stderr] 172 | / match self { [INFO] [stderr] 173 | | &Memory::HLI => Reg16::HL.inc(cpu), [INFO] [stderr] 174 | | &Memory::HLD => Reg16::HL.dec(cpu), [INFO] [stderr] 175 | | _ => (), [INFO] [stderr] 176 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 172 | match *self { [INFO] [stderr] 173 | Memory::HLI => Reg16::HL.inc(cpu), [INFO] [stderr] 174 | Memory::HLD => Reg16::HL.dec(cpu), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/mod.rs:182:20 [INFO] [stderr] | [INFO] [stderr] 182 | let addr = match self { [INFO] [stderr] | ____________________^ [INFO] [stderr] 183 | | &Memory::HL | &Memory::HLI | &Memory::HLD => Reg16::HL.read(cpu), [INFO] [stderr] 184 | | &Memory::DE => Reg16::DE.read(cpu), [INFO] [stderr] 185 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 182 | let addr = match *self { [INFO] [stderr] 183 | Memory::HL | Memory::HLI | Memory::HLD => Reg16::HL.read(cpu), [INFO] [stderr] 184 | Memory::DE => Reg16::DE.read(cpu), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/mod.rs:187:9 [INFO] [stderr] | [INFO] [stderr] 187 | / match self { [INFO] [stderr] 188 | | &Memory::HLI => Reg16::HL.inc(cpu), [INFO] [stderr] 189 | | &Memory::HLD => Reg16::HL.dec(cpu), [INFO] [stderr] 190 | | _ => (), [INFO] [stderr] 191 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 187 | match *self { [INFO] [stderr] 188 | Memory::HLI => Reg16::HL.inc(cpu), [INFO] [stderr] 189 | Memory::HLD => Reg16::HL.dec(cpu), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/cpu/mod.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match self.ime { [INFO] [stderr] 228 | | Ime::Enabling => self.ime = Ime::Enabled, [INFO] [stderr] 229 | | _ => (), [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ help: try this: `if let Ime::Enabling = self.ime { self.ime = Ime::Enabled }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:268:10 [INFO] [stderr] | [INFO] [stderr] 268 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:268:29 [INFO] [stderr] | [INFO] [stderr] 268 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(l)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:290:10 [INFO] [stderr] | [INFO] [stderr] 290 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:290:29 [INFO] [stderr] | [INFO] [stderr] 290 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(l)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:314:10 [INFO] [stderr] | [INFO] [stderr] 314 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:314:29 [INFO] [stderr] | [INFO] [stderr] 314 | ((h as u16) << 8) | (l as u16) [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(l)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:379:69 [INFO] [stderr] | [INFO] [stderr] 379 | Op8::Memory(Addr::ZeroPage(addr)) => cpu.read_u8(0xFF00|(addr as u16)), [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(addr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:397:71 [INFO] [stderr] | [INFO] [stderr] 397 | Op8::Memory(Addr::ZeroPage(addr)) => {cpu.write_u8(0xFF00|(addr as u16), value);}, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(addr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:398:55 [INFO] [stderr] | [INFO] [stderr] 398 | Op8::Memory(Addr::ZeroPageC) => { let c = Reg8::C.read(cpu) as u16; cpu.write_u8(0xFF00|c, value)}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(Reg8::C.read(cpu))` [INFO] [stderr] | [INFO] [stderr] = help: 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/mod.rs:478:31 [INFO] [stderr] | [INFO] [stderr] 478 | Reg16::PC.write(self, addr as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(addr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:527:31 [INFO] [stderr] | [INFO] [stderr] 527 | registers::C.test((self.regs.a as u16) < (value as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.regs.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/mod.rs:527:54 [INFO] [stderr] | [INFO] [stderr] 527 | registers::C.test((self.regs.a as u16) < (value as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/cpu/mod.rs:532:9 [INFO] [stderr] | [INFO] [stderr] 532 | self.regs.a = self.regs.a & value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.regs.a &= value` [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: manual implementation of an assign operation [INFO] [stderr] --> src/cpu/mod.rs:539:9 [INFO] [stderr] | [INFO] [stderr] 539 | self.regs.a = self.regs.a | value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.regs.a |= value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/cpu/mod.rs:545:9 [INFO] [stderr] | [INFO] [stderr] 545 | self.regs.a = self.regs.a ^ value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.regs.a ^= value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:587:31 [INFO] [stderr] | [INFO] [stderr] 587 | registers::C.test(original as u16 + value as u16 + c as u16 > 0xff) | [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(original)` [INFO] [stderr] | [INFO] [stderr] = help: 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/mod.rs:587:49 [INFO] [stderr] | [INFO] [stderr] 587 | registers::C.test(original as u16 + value as u16 + c as u16 > 0xff) | [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(value)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/mod.rs:587:64 [INFO] [stderr] | [INFO] [stderr] 587 | registers::C.test(original as u16 + value as u16 + c as u16 > 0xff) | [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(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: the operation is ineffective. Consider reducing it to `value` [INFO] [stderr] --> src/gpu/mod.rs:43:35 [INFO] [stderr] | [INFO] [stderr] 43 | white: Color::from_u8((value >> 0) & 0x3), [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/irq.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn addr(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/irq.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | / match self { [INFO] [stderr] 25 | | &Interrupt::VBlank => 0x40, [INFO] [stderr] 26 | | &Interrupt::LcdStat => 0x48, [INFO] [stderr] 27 | | &Interrupt::Timer => 0x50, [INFO] [stderr] 28 | | &Interrupt::Serial => 0x58, [INFO] [stderr] 29 | | &Interrupt::Joypad => 0x60, [INFO] [stderr] 30 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 24 | match *self { [INFO] [stderr] 25 | Interrupt::VBlank => 0x40, [INFO] [stderr] 26 | Interrupt::LcdStat => 0x48, [INFO] [stderr] 27 | Interrupt::Timer => 0x50, [INFO] [stderr] 28 | Interrupt::Serial => 0x58, [INFO] [stderr] 29 | Interrupt::Joypad => 0x60, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.89s [INFO] running `"docker" "inspect" "475991a3041fa89811681c7170aa296597e5ae77b2dd99d2719e49eb5c54881d"` [INFO] running `"docker" "rm" "-f" "475991a3041fa89811681c7170aa296597e5ae77b2dd99d2719e49eb5c54881d"` [INFO] [stdout] 475991a3041fa89811681c7170aa296597e5ae77b2dd99d2719e49eb5c54881d