[INFO] updating cached repository drdavella/rory [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/drdavella/rory [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/drdavella/rory" "work/ex/clippy-test-run/sources/stable/gh/drdavella/rory"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/drdavella/rory'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/drdavella/rory" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/drdavella/rory"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/drdavella/rory'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 3c907674ea09bdbd7d34e5a61fc903ff13ebd8d6 [INFO] sha for GitHub repo drdavella/rory: 3c907674ea09bdbd7d34e5a61fc903ff13ebd8d6 [INFO] validating manifest of drdavella/rory 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 drdavella/rory 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 drdavella/rory [INFO] finished frobbing drdavella/rory [INFO] frobbed toml for drdavella/rory written to work/ex/clippy-test-run/sources/stable/gh/drdavella/rory/Cargo.toml [INFO] started frobbing drdavella/rory [INFO] finished frobbing drdavella/rory [INFO] frobbed toml for drdavella/rory written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/drdavella/rory/Cargo.toml [INFO] crate drdavella/rory 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 drdavella/rory against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/drdavella/rory:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 4cae652392768ccb435fb788b6364000dec15ed2bab7e90a573f980aa9081634 [INFO] running `"docker" "start" "-a" "4cae652392768ccb435fb788b6364000dec15ed2bab7e90a573f980aa9081634"` [INFO] [stderr] Checking rory v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cpu/types.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | pc: pc, [INFO] [stderr] | ^^^^^^ help: replace it with: `pc` [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/types.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | sp: sp, [INFO] [stderr] | ^^^^^^ help: replace it with: `sp` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cpu/types.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | pc: pc, [INFO] [stderr] | ^^^^^^ help: replace it with: `pc` [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/types.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | sp: sp, [INFO] [stderr] | ^^^^^^ help: replace it with: `sp` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/cpu/mod.rs:45:46 [INFO] [stderr] | [INFO] [stderr] 45 | 0x80 ... 0x87 => alu::add_reg(state, (opcode & 0x0f)), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/cpu/mod.rs:47:46 [INFO] [stderr] | [INFO] [stderr] 47 | 0xa0 ... 0xa7 => alu::and_reg(state, (opcode & 0x0f)), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/cpu/mod.rs:51:45 [INFO] [stderr] | [INFO] [stderr] 51 | 0xb0 ... 0xb7 => alu::or_reg(state, (opcode & 0xf)), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/cpu/mod.rs:45:46 [INFO] [stderr] | [INFO] [stderr] 45 | 0x80 ... 0x87 => alu::add_reg(state, (opcode & 0x0f)), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/cpu/mod.rs:47:46 [INFO] [stderr] | [INFO] [stderr] 47 | 0xa0 ... 0xa7 => alu::and_reg(state, (opcode & 0x0f)), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/cpu/mod.rs:51:45 [INFO] [stderr] | [INFO] [stderr] 51 | 0xb0 ... 0xb7 => alu::or_reg(state, (opcode & 0xf)), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/types.rs:81:27 [INFO] [stderr] | [INFO] [stderr] 81 | let mut new_val = (self.read_mem(self.sp) as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_mem(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/types.rs:83:20 [INFO] [stderr] | [INFO] [stderr] 83 | new_val |= self.read_mem(self.sp) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_mem(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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/types.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / match reg { [INFO] [stderr] 102 | | &Register::A => "A", [INFO] [stderr] 103 | | &Register::B => "B", [INFO] [stderr] 104 | | &Register::C => "C", [INFO] [stderr] ... | [INFO] [stderr] 109 | | &Register::HL => "HL" [INFO] [stderr] 110 | | } [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] 101 | match *reg { [INFO] [stderr] 102 | Register::A => "A", [INFO] [stderr] 103 | Register::B => "B", [INFO] [stderr] 104 | Register::C => "C", [INFO] [stderr] 105 | Register::D => "D", [INFO] [stderr] 106 | Register::E => "E", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/types.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | / match reg { [INFO] [stderr] 115 | | &Register::A => state.regs.a = val, [INFO] [stderr] 116 | | &Register::B => state.regs.b = val, [INFO] [stderr] 117 | | &Register::C => state.regs.c = val, [INFO] [stderr] ... | [INFO] [stderr] 122 | | &Register::HL => panic!("Can't set HL as single register") [INFO] [stderr] 123 | | }; [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] 114 | match *reg { [INFO] [stderr] 115 | Register::A => state.regs.a = val, [INFO] [stderr] 116 | Register::B => state.regs.b = val, [INFO] [stderr] 117 | Register::C => state.regs.c = val, [INFO] [stderr] 118 | Register::D => state.regs.d = val, [INFO] [stderr] 119 | Register::E => state.regs.e = val, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/types.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | / match reg { [INFO] [stderr] 128 | | &Register::A => state.regs.a, [INFO] [stderr] 129 | | &Register::B => state.regs.b, [INFO] [stderr] 130 | | &Register::C => state.regs.c, [INFO] [stderr] ... | [INFO] [stderr] 135 | | &Register::HL => panic!("Can't get HL as single register") [INFO] [stderr] 136 | | } [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] 127 | match *reg { [INFO] [stderr] 128 | Register::A => state.regs.a, [INFO] [stderr] 129 | Register::B => state.regs.b, [INFO] [stderr] 130 | Register::C => state.regs.c, [INFO] [stderr] 131 | Register::D => state.regs.d, [INFO] [stderr] 132 | Register::E => state.regs.e, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/types.rs:145:6 [INFO] [stderr] | [INFO] [stderr] 145 | ((state.regs.h as u16) << 8) | (state.regs.l as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(state.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/types.rs:145:36 [INFO] [stderr] | [INFO] [stderr] 145 | ((state.regs.h as u16) << 8) | (state.regs.l as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(state.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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/memory.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / match reg { [INFO] [stderr] 44 | | &Register::HL => panic!("Load to HL not implemented"), [INFO] [stderr] 45 | | _ => { [INFO] [stderr] 46 | | types::set_register(state, reg, code_bytes[0]); [INFO] [stderr] 47 | | state.ticks += 8; [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | } [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] 43 | match *reg { [INFO] [stderr] 44 | Register::HL => panic!("Load to HL not implemented"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let msg =` [INFO] [stderr] --> src/cpu/memory.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | / let msg = match opcode { [INFO] [stderr] 78 | | 0x31 => { [INFO] [stderr] 79 | | /* Load stack pointer */ [INFO] [stderr] 80 | | state.sp = ((code_bytes[1] as u16) << 8) | (code_bytes[0] as u16); [INFO] [stderr] ... | [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/memory.rs:80:25 [INFO] [stderr] | [INFO] [stderr] 80 | state.sp = ((code_bytes[1] as u16) << 8) | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/memory.rs:80:56 [INFO] [stderr] | [INFO] [stderr] 80 | state.sp = ((code_bytes[1] as u16) << 8) | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | let addr = ((code_bytes[1] as u16) << 8) | code_bytes[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/memory.rs:133:48 [INFO] [stderr] | [INFO] [stderr] 133 | let addr = ((code_bytes[1] as u16) << 8) | code_bytes[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:144:45 [INFO] [stderr] | [INFO] [stderr] 144 | let addr = (0xff00 as u16).wrapping_add(code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:155:45 [INFO] [stderr] | [INFO] [stderr] 155 | let addr = (0xff00 as u16).wrapping_add(code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:168:45 [INFO] [stderr] | [INFO] [stderr] 168 | let addr = (0xff00 as u16).wrapping_add(regc as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(regc)` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:181:45 [INFO] [stderr] | [INFO] [stderr] 181 | let addr = (0xff00 as u16).wrapping_add(regc as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(regc)` [INFO] [stderr] | [INFO] [stderr] = help: 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/jump.rs:10:20 [INFO] [stderr] | [INFO] [stderr] 10 | let new_addr = (code_bytes[1] as u16) << 8 | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:10:50 [INFO] [stderr] | [INFO] [stderr] 10 | let new_addr = (code_bytes[1] as u16) << 8 | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/jump.rs:18:20 [INFO] [stderr] | [INFO] [stderr] 18 | let new_addr = (code_bytes[1] as u16) << 8 | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:18:50 [INFO] [stderr] | [INFO] [stderr] 18 | let new_addr = (code_bytes[1] as u16) << 8 | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:30:6 [INFO] [stderr] | [INFO] [stderr] 30 | -((value & 0x80) as i16) + ((value & 0x7f) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value & 0x80)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | -((value & 0x80) as i16) + ((value & 0x7f) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value & 0x7f)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | state.pc = (state.pc as i32 + offset as i32 + 2) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i32::from(state.pc)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:44:39 [INFO] [stderr] | [INFO] [stderr] 44 | state.pc = (state.pc as i32 + offset as i32 + 2) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/alu.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / match source { [INFO] [stderr] 12 | | &types::Register::HL => panic!("AND from HL is not implemented"), [INFO] [stderr] 13 | | _ => { [INFO] [stderr] 14 | | let op0 = types::get_register(state, &types::Register::A); [INFO] [stderr] ... | [INFO] [stderr] 19 | | } [INFO] [stderr] 20 | | } [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] 11 | match *source { [INFO] [stderr] 12 | types::Register::HL => panic!("AND from HL is not implemented"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/alu.rs:51:19 [INFO] [stderr] | [INFO] [stderr] 51 | let new_val = match reg { [INFO] [stderr] | ___________________^ [INFO] [stderr] 52 | | &types::Register::HL => panic!("DEC HL is not implemented"), [INFO] [stderr] 53 | | _ => { [INFO] [stderr] 54 | | let new_val = types::get_register(state, reg).wrapping_sub(1); [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | }; [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] 51 | let new_val = match *reg { [INFO] [stderr] 52 | types::Register::HL => panic!("DEC HL is not implemented"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/cpu/mod.rs:23:22 [INFO] [stderr] | [INFO] [stderr] 23 | fn decode(rom_array: &Vec, state: &mut types::GameState) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _msg =` [INFO] [stderr] --> src/cpu/mod.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | / let _msg = match opcode { [INFO] [stderr] 32 | | /* NOP */ [INFO] [stderr] 33 | | 0x00 => { state.pc += 1; state.ticks+= 4; debug_format!("NOP") }, [INFO] [stderr] 34 | | /* HALT (must be matched before LD REG) */ [INFO] [stderr] ... | [INFO] [stderr] 78 | | _ => panic!("Unrecognized opcode 0x{:02x} at pc 0x{:04x}", opcode, pc) [INFO] [stderr] 79 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/cpu/mod.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | 0x40 ... 0x7f => memory::load_reg(state, opcode), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/cpu/mod.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | 0x76 => panic!("HALT"), [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/types.rs:81:27 [INFO] [stderr] | [INFO] [stderr] 81 | let mut new_val = (self.read_mem(self.sp) as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_mem(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/types.rs:83:20 [INFO] [stderr] | [INFO] [stderr] 83 | new_val |= self.read_mem(self.sp) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.read_mem(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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/types.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / match reg { [INFO] [stderr] 102 | | &Register::A => "A", [INFO] [stderr] 103 | | &Register::B => "B", [INFO] [stderr] 104 | | &Register::C => "C", [INFO] [stderr] ... | [INFO] [stderr] 109 | | &Register::HL => "HL" [INFO] [stderr] 110 | | } [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] 101 | match *reg { [INFO] [stderr] 102 | Register::A => "A", [INFO] [stderr] 103 | Register::B => "B", [INFO] [stderr] 104 | Register::C => "C", [INFO] [stderr] 105 | Register::D => "D", [INFO] [stderr] 106 | Register::E => "E", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/types.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | / match reg { [INFO] [stderr] 115 | | &Register::A => state.regs.a = val, [INFO] [stderr] 116 | | &Register::B => state.regs.b = val, [INFO] [stderr] 117 | | &Register::C => state.regs.c = val, [INFO] [stderr] ... | [INFO] [stderr] 122 | | &Register::HL => panic!("Can't set HL as single register") [INFO] [stderr] 123 | | }; [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] 114 | match *reg { [INFO] [stderr] 115 | Register::A => state.regs.a = val, [INFO] [stderr] 116 | Register::B => state.regs.b = val, [INFO] [stderr] 117 | Register::C => state.regs.c = val, [INFO] [stderr] 118 | Register::D => state.regs.d = val, [INFO] [stderr] 119 | Register::E => state.regs.e = val, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/types.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | / match reg { [INFO] [stderr] 128 | | &Register::A => state.regs.a, [INFO] [stderr] 129 | | &Register::B => state.regs.b, [INFO] [stderr] 130 | | &Register::C => state.regs.c, [INFO] [stderr] ... | [INFO] [stderr] 135 | | &Register::HL => panic!("Can't get HL as single register") [INFO] [stderr] 136 | | } [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] 127 | match *reg { [INFO] [stderr] 128 | Register::A => state.regs.a, [INFO] [stderr] 129 | Register::B => state.regs.b, [INFO] [stderr] 130 | Register::C => state.regs.c, [INFO] [stderr] 131 | Register::D => state.regs.d, [INFO] [stderr] 132 | Register::E => state.regs.e, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/types.rs:145:6 [INFO] [stderr] | [INFO] [stderr] 145 | ((state.regs.h as u16) << 8) | (state.regs.l as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(state.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/types.rs:145:36 [INFO] [stderr] | [INFO] [stderr] 145 | ((state.regs.h as u16) << 8) | (state.regs.l as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(state.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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/memory.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / match reg { [INFO] [stderr] 44 | | &Register::HL => panic!("Load to HL not implemented"), [INFO] [stderr] 45 | | _ => { [INFO] [stderr] 46 | | types::set_register(state, reg, code_bytes[0]); [INFO] [stderr] 47 | | state.ticks += 8; [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | } [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] 43 | match *reg { [INFO] [stderr] 44 | Register::HL => panic!("Load to HL not implemented"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let msg =` [INFO] [stderr] --> src/cpu/memory.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | / let msg = match opcode { [INFO] [stderr] 78 | | 0x31 => { [INFO] [stderr] 79 | | /* Load stack pointer */ [INFO] [stderr] 80 | | state.sp = ((code_bytes[1] as u16) << 8) | (code_bytes[0] as u16); [INFO] [stderr] ... | [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/memory.rs:80:25 [INFO] [stderr] | [INFO] [stderr] 80 | state.sp = ((code_bytes[1] as u16) << 8) | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/memory.rs:80:56 [INFO] [stderr] | [INFO] [stderr] 80 | state.sp = ((code_bytes[1] as u16) << 8) | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | let addr = ((code_bytes[1] as u16) << 8) | code_bytes[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/memory.rs:133:48 [INFO] [stderr] | [INFO] [stderr] 133 | let addr = ((code_bytes[1] as u16) << 8) | code_bytes[0] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:144:45 [INFO] [stderr] | [INFO] [stderr] 144 | let addr = (0xff00 as u16).wrapping_add(code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:155:45 [INFO] [stderr] | [INFO] [stderr] 155 | let addr = (0xff00 as u16).wrapping_add(code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:168:45 [INFO] [stderr] | [INFO] [stderr] 168 | let addr = (0xff00 as u16).wrapping_add(regc as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(regc)` [INFO] [stderr] | [INFO] [stderr] = help: 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/memory.rs:181:45 [INFO] [stderr] | [INFO] [stderr] 181 | let addr = (0xff00 as u16).wrapping_add(regc as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(regc)` [INFO] [stderr] | [INFO] [stderr] = help: 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/jump.rs:10:20 [INFO] [stderr] | [INFO] [stderr] 10 | let new_addr = (code_bytes[1] as u16) << 8 | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:10:50 [INFO] [stderr] | [INFO] [stderr] 10 | let new_addr = (code_bytes[1] as u16) << 8 | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: 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/jump.rs:18:20 [INFO] [stderr] | [INFO] [stderr] 18 | let new_addr = (code_bytes[1] as u16) << 8 | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:18:50 [INFO] [stderr] | [INFO] [stderr] 18 | let new_addr = (code_bytes[1] as u16) << 8 | (code_bytes[0] as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(code_bytes[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:30:6 [INFO] [stderr] | [INFO] [stderr] 30 | -((value & 0x80) as i16) + ((value & 0x7f) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value & 0x80)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | -((value & 0x80) as i16) + ((value & 0x7f) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(value & 0x7f)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | state.pc = (state.pc as i32 + offset as i32 + 2) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `i32::from(state.pc)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/cpu/jump.rs:44:39 [INFO] [stderr] | [INFO] [stderr] 44 | state.pc = (state.pc as i32 + offset as i32 + 2) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/alu.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / match source { [INFO] [stderr] 12 | | &types::Register::HL => panic!("AND from HL is not implemented"), [INFO] [stderr] 13 | | _ => { [INFO] [stderr] 14 | | let op0 = types::get_register(state, &types::Register::A); [INFO] [stderr] ... | [INFO] [stderr] 19 | | } [INFO] [stderr] 20 | | } [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] 11 | match *source { [INFO] [stderr] 12 | types::Register::HL => panic!("AND from HL is not implemented"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cpu/alu.rs:51:19 [INFO] [stderr] | [INFO] [stderr] 51 | let new_val = match reg { [INFO] [stderr] | ___________________^ [INFO] [stderr] 52 | | &types::Register::HL => panic!("DEC HL is not implemented"), [INFO] [stderr] 53 | | _ => { [INFO] [stderr] 54 | | let new_val = types::get_register(state, reg).wrapping_sub(1); [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | }; [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] 51 | let new_val = match *reg { [INFO] [stderr] 52 | types::Register::HL => panic!("DEC HL is not implemented"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/cpu/mod.rs:23:22 [INFO] [stderr] | [INFO] [stderr] 23 | fn decode(rom_array: &Vec, state: &mut types::GameState) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _msg =` [INFO] [stderr] --> src/cpu/mod.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | / let _msg = match opcode { [INFO] [stderr] 32 | | /* NOP */ [INFO] [stderr] 33 | | 0x00 => { state.pc += 1; state.ticks+= 4; debug_format!("NOP") }, [INFO] [stderr] 34 | | /* HALT (must be matched before LD REG) */ [INFO] [stderr] ... | [INFO] [stderr] 78 | | _ => panic!("Unrecognized opcode 0x{:02x} at pc 0x{:04x}", opcode, pc) [INFO] [stderr] 79 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/cpu/mod.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | 0x40 ... 0x7f => memory::load_reg(state, opcode), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/cpu/mod.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | 0x76 => panic!("HALT"), [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.39s [INFO] running `"docker" "inspect" "4cae652392768ccb435fb788b6364000dec15ed2bab7e90a573f980aa9081634"` [INFO] running `"docker" "rm" "-f" "4cae652392768ccb435fb788b6364000dec15ed2bab7e90a573f980aa9081634"` [INFO] [stdout] 4cae652392768ccb435fb788b6364000dec15ed2bab7e90a573f980aa9081634