[INFO] updating cached repository Tormyst/mystchip [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Tormyst/mystchip [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Tormyst/mystchip" "work/ex/clippy-test-run/sources/stable/gh/Tormyst/mystchip"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Tormyst/mystchip'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Tormyst/mystchip" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tormyst/mystchip"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tormyst/mystchip'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 5a7b10114f80a1ec322d09b98281e073bc7711c2 [INFO] sha for GitHub repo Tormyst/mystchip: 5a7b10114f80a1ec322d09b98281e073bc7711c2 [INFO] validating manifest of Tormyst/mystchip 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 Tormyst/mystchip 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 Tormyst/mystchip [INFO] finished frobbing Tormyst/mystchip [INFO] frobbed toml for Tormyst/mystchip written to work/ex/clippy-test-run/sources/stable/gh/Tormyst/mystchip/Cargo.toml [INFO] started frobbing Tormyst/mystchip [INFO] finished frobbing Tormyst/mystchip [INFO] frobbed toml for Tormyst/mystchip written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tormyst/mystchip/Cargo.toml [INFO] crate Tormyst/mystchip 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 Tormyst/mystchip against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Tormyst/mystchip:/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] 08dcc2e68a817187bff4616512e4d5a839e772fe8bf0493078a83f65e304f6dc [INFO] running `"docker" "start" "-a" "08dcc2e68a817187bff4616512e4d5a839e772fe8bf0493078a83f65e304f6dc"` [INFO] [stderr] Compiling syn v0.14.9 [INFO] [stderr] Checking pistoncore-input v0.21.0 [INFO] [stderr] Checking pistoncore-window v0.32.0 [INFO] [stderr] Compiling num-derive v0.2.2 [INFO] [stderr] Checking pistoncore-event_loop v0.37.0 [INFO] [stderr] Checking pistoncore-glutin_window v0.47.0 [INFO] [stderr] Checking piston v0.37.0 [INFO] [stderr] Checking image v0.19.0 [INFO] [stderr] Checking piston-gfx_texture v0.32.0 [INFO] [stderr] Checking piston2d-gfx_graphics v0.51.0 [INFO] [stderr] Checking piston_window v0.80.0 [INFO] [stderr] Checking mystchip v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `writeln!(f, "")` [INFO] [stderr] --> src/mem/mod.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | writeln!(f, ""); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/mem/mod.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | write!(f, "\n").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `writeln!(f, "")` [INFO] [stderr] --> src/mem/mod.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | writeln!(f, ""); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(f)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/mem/mod.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | write!(f, "\n").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::process::Command` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::process::Command; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread::sleep` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::thread::sleep; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::iter` [INFO] [stderr] --> src/mem/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::iter; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error` [INFO] [stderr] --> src/display.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::error; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::iter` [INFO] [stderr] --> src/display.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::iter; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `mem::Mem` [INFO] [stderr] --> src/display.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use mem::Mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::process::Command` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::process::Command; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread::sleep` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::thread::sleep; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::iter` [INFO] [stderr] --> src/mem/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::iter; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error` [INFO] [stderr] --> src/display.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::error; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::iter` [INFO] [stderr] --> src/display.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::iter; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `mem::Mem` [INFO] [stderr] --> src/display.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use mem::Mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/display.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | _ => { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | _ => panic!("Unhandled message: {:?}", message), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `last_render` [INFO] [stderr] --> src/main.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | let mut last_render = SystemTime::now(); [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_last_render` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rm_tmp` [INFO] [stderr] --> src/cpu.rs:238:35 [INFO] [stderr] | [INFO] [stderr] 238 | let (add_tmp, rm_tmp) = mem.gfx_write(x, y + iter, sprite); [INFO] [stderr] | ^^^^^^ help: consider using `_rm_tmp` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/cpu.rs:253:21 [INFO] [stderr] | [INFO] [stderr] 253 | let key = self.reg[low_nibble(inst_byte_upper) as usize]; [INFO] [stderr] | ^^^ help: consider using `_key` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `opengl` [INFO] [stderr] --> src/display.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | let opengl = OpenGL::V3_2; [INFO] [stderr] | ^^^^^^ help: consider using `_opengl` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | let mut last_render = SystemTime::now(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `reverse_gfx_offset` [INFO] [stderr] --> src/mem/mod.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | fn reverse_gfx_offset(val: usize) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pixel_locations` [INFO] [stderr] --> src/mem/mod.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | pub fn pixel_locations(&self) -> Vec<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `render_flag` [INFO] [stderr] --> src/display.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | render_flag: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:32:11 [INFO] [stderr] | [INFO] [stderr] 32 | res + low as u16 [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(low)` [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: method `updateTime` should have a snake case name such as `update_time` [INFO] [stderr] --> src/cpu.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | / pub fn updateTime(&mut self) { [INFO] [stderr] 53 | | if self.dt > 0 { [INFO] [stderr] 54 | | self.dt -= 1; [INFO] [stderr] 55 | | } [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:179:25 [INFO] [stderr] | [INFO] [stderr] 179 | / match sum.1 { [INFO] [stderr] 180 | | true => self.reg[0xf] = 1, [INFO] [stderr] 181 | | false => self.reg[0xf] = 0, [INFO] [stderr] 182 | | } [INFO] [stderr] | |_________________________^ help: consider using an if/else expression: `if sum.1 { self.reg[0xf] = 1 } else { self.reg[0xf] = 0 }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:191:25 [INFO] [stderr] | [INFO] [stderr] 191 | / match sum.1 { [INFO] [stderr] 192 | | true => self.reg[0xf] = 0, [INFO] [stderr] 193 | | false => self.reg[0xf] = 1, [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________________________^ help: consider using an if/else expression: `if sum.1 { self.reg[0xf] = 0 } else { self.reg[0xf] = 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:203:25 [INFO] [stderr] | [INFO] [stderr] 203 | / match sum.1 { [INFO] [stderr] 204 | | true => self.reg[0xf] = 0, [INFO] [stderr] 205 | | false => self.reg[0xf] = 1, [INFO] [stderr] 206 | | } [INFO] [stderr] | |_________________________^ help: consider using an if/else expression: `if sum.1 { self.reg[0xf] = 0 } else { self.reg[0xf] = 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:237:52 [INFO] [stderr] | [INFO] [stderr] 237 | let sprite = mem.read(self.i + (iter as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(iter)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:242:17 [INFO] [stderr] | [INFO] [stderr] 242 | / match remove_flag { [INFO] [stderr] 243 | | true => self.reg[0xF] = 1u8, [INFO] [stderr] 244 | | false => self.reg[0xF] = 0u8, [INFO] [stderr] 245 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if remove_flag { self.reg[0xF] = 1u8 } else { self.reg[0xF] = 0u8 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:246:17 [INFO] [stderr] | [INFO] [stderr] 246 | / match add_flag{ [INFO] [stderr] 247 | | true => Ok(ScreenUpdate::Yes), [INFO] [stderr] 248 | | false => Ok(ScreenUpdate::No), [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if add_flag { Ok(ScreenUpdate::Yes) } else { Ok(ScreenUpdate::No) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:290:34 [INFO] [stderr] | [INFO] [stderr] 290 | self.i = (self.reg[low_nibble(inst_byte_upper) as usize] * 5) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg[low_nibble(inst_byte_upper) as usize] * 5)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/mem/mod.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | / match self.gfx[index] { [INFO] [stderr] 55 | | true => removed = true, [INFO] [stderr] 56 | | false => added = true, [INFO] [stderr] 57 | | }; [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if self.gfx[index] { removed = true } else { added = true }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/mem/mod.rs:71:14 [INFO] [stderr] | [INFO] [stderr] 71 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/mem/mod.rs:73:25 [INFO] [stderr] | [INFO] [stderr] 73 | .filter(|x| x.1.clone()) [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*x.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/mem/mod.rs:79:16 [INFO] [stderr] | [INFO] [stderr] 79 | sender(self.gfx.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gfx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | writeln!(f, "Mem"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | writeln!(f, " 0 1 2 3 4 5 6 7 8 9 A B C D E F"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | write!(f, "{:04X}: ", index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | write!(f, "{:02X} ", num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | writeln!(f, ""); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: constant `off` should have an upper case name such as `OFF` [INFO] [stderr] --> src/display.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | / const off: Rgba = Rgba { [INFO] [stderr] 12 | | data: [0, 0, 0, 255], [INFO] [stderr] 13 | | }; [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant `on` should have an upper case name such as `ON` [INFO] [stderr] --> src/display.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | const on: Rgba = Rgba { data: [255; 4] }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/display.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | me.tx.send(::display_message::Die); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/display.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | self.tx.send(::display_message::Input([false; 16])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/display.rs:80:35 [INFO] [stderr] | [INFO] [stderr] 80 | let mut f = f.into_iter(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/display.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | self.gfx.update(encoder, &self.image); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: constant `framesize` should have an upper case name such as `FRAMESIZE` [INFO] [stderr] --> src/main.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | const framesize:usize = 64*32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `cpu_message` should have a camel case name such as `CpuMessage` [INFO] [stderr] --> src/main.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | / pub enum cpu_message { [INFO] [stderr] 26 | | Frame([bool; framesize]), [INFO] [stderr] 27 | | Render, [INFO] [stderr] 28 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/main.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | Frame([bool; framesize]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 26 | Frame(Box<[bool; framesize]>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `display_message` should have a camel case name such as `DisplayMessage` [INFO] [stderr] --> src/main.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | / pub enum display_message { [INFO] [stderr] 41 | | Input([bool; 16]), [INFO] [stderr] 42 | | Die, [INFO] [stderr] 43 | | } [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/main.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | / match self.cpu.cpu_cycle(&mut self.mem)? { [INFO] [stderr] 78 | | cpu::ScreenUpdate::Yes => {self.display(); self.cpu_lock += 1;} [INFO] [stderr] 79 | | _ => {} [INFO] [stderr] 80 | | }; [INFO] [stderr] | |_____________^ help: try this: `if let cpu::ScreenUpdate::Yes = self.cpu.cpu_cycle(&mut self.mem)? {self.display(); self.cpu_lock += 1;}` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | chip8.load("pong.ch8"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: function `setupGraphics` should have a snake case name such as `setup_graphics` [INFO] [stderr] --> src/main.rs:143:1 [INFO] [stderr] | [INFO] [stderr] 143 | fn setupGraphics() {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `setupInput` should have a snake case name such as `setup_input` [INFO] [stderr] --> src/main.rs:144:1 [INFO] [stderr] | [INFO] [stderr] 144 | fn setupInput() {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/display.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | _ => { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | _ => panic!("Unhandled message: {:?}", message), [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `last_render` [INFO] [stderr] --> src/main.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | let mut last_render = SystemTime::now(); [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_last_render` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rm_tmp` [INFO] [stderr] --> src/cpu.rs:238:35 [INFO] [stderr] | [INFO] [stderr] 238 | let (add_tmp, rm_tmp) = mem.gfx_write(x, y + iter, sprite); [INFO] [stderr] | ^^^^^^ help: consider using `_rm_tmp` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/cpu.rs:253:21 [INFO] [stderr] | [INFO] [stderr] 253 | let key = self.reg[low_nibble(inst_byte_upper) as usize]; [INFO] [stderr] | ^^^ help: consider using `_key` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `opengl` [INFO] [stderr] --> src/display.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | let opengl = OpenGL::V3_2; [INFO] [stderr] | ^^^^^^ help: consider using `_opengl` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | let mut last_render = SystemTime::now(); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `reverse_gfx_offset` [INFO] [stderr] --> src/mem/mod.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | fn reverse_gfx_offset(val: usize) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pixel_locations` [INFO] [stderr] --> src/mem/mod.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | pub fn pixel_locations(&self) -> Vec<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `render_flag` [INFO] [stderr] --> src/display.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | render_flag: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:32:11 [INFO] [stderr] | [INFO] [stderr] 32 | res + low as u16 [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(low)` [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: method `updateTime` should have a snake case name such as `update_time` [INFO] [stderr] --> src/cpu.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | / pub fn updateTime(&mut self) { [INFO] [stderr] 53 | | if self.dt > 0 { [INFO] [stderr] 54 | | self.dt -= 1; [INFO] [stderr] 55 | | } [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:179:25 [INFO] [stderr] | [INFO] [stderr] 179 | / match sum.1 { [INFO] [stderr] 180 | | true => self.reg[0xf] = 1, [INFO] [stderr] 181 | | false => self.reg[0xf] = 0, [INFO] [stderr] 182 | | } [INFO] [stderr] | |_________________________^ help: consider using an if/else expression: `if sum.1 { self.reg[0xf] = 1 } else { self.reg[0xf] = 0 }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:191:25 [INFO] [stderr] | [INFO] [stderr] 191 | / match sum.1 { [INFO] [stderr] 192 | | true => self.reg[0xf] = 0, [INFO] [stderr] 193 | | false => self.reg[0xf] = 1, [INFO] [stderr] 194 | | } [INFO] [stderr] | |_________________________^ help: consider using an if/else expression: `if sum.1 { self.reg[0xf] = 0 } else { self.reg[0xf] = 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:203:25 [INFO] [stderr] | [INFO] [stderr] 203 | / match sum.1 { [INFO] [stderr] 204 | | true => self.reg[0xf] = 0, [INFO] [stderr] 205 | | false => self.reg[0xf] = 1, [INFO] [stderr] 206 | | } [INFO] [stderr] | |_________________________^ help: consider using an if/else expression: `if sum.1 { self.reg[0xf] = 0 } else { self.reg[0xf] = 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:237:52 [INFO] [stderr] | [INFO] [stderr] 237 | let sprite = mem.read(self.i + (iter as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(iter)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:242:17 [INFO] [stderr] | [INFO] [stderr] 242 | / match remove_flag { [INFO] [stderr] 243 | | true => self.reg[0xF] = 1u8, [INFO] [stderr] 244 | | false => self.reg[0xF] = 0u8, [INFO] [stderr] 245 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if remove_flag { self.reg[0xF] = 1u8 } else { self.reg[0xF] = 0u8 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/cpu.rs:246:17 [INFO] [stderr] | [INFO] [stderr] 246 | / match add_flag{ [INFO] [stderr] 247 | | true => Ok(ScreenUpdate::Yes), [INFO] [stderr] 248 | | false => Ok(ScreenUpdate::No), [INFO] [stderr] 249 | | } [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if add_flag { Ok(ScreenUpdate::Yes) } else { Ok(ScreenUpdate::No) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:290:34 [INFO] [stderr] | [INFO] [stderr] 290 | self.i = (self.reg[low_nibble(inst_byte_upper) as usize] * 5) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.reg[low_nibble(inst_byte_upper) as usize] * 5)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/mem/mod.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | / match self.gfx[index] { [INFO] [stderr] 55 | | true => removed = true, [INFO] [stderr] 56 | | false => added = true, [INFO] [stderr] 57 | | }; [INFO] [stderr] | |_____________________^ help: consider using an if/else expression: `if self.gfx[index] { removed = true } else { added = true }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/mem/mod.rs:71:14 [INFO] [stderr] | [INFO] [stderr] 71 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/mem/mod.rs:73:25 [INFO] [stderr] | [INFO] [stderr] 73 | .filter(|x| x.1.clone()) [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*x.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/mem/mod.rs:79:16 [INFO] [stderr] | [INFO] [stderr] 79 | sender(self.gfx.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.gfx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | writeln!(f, "Mem"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | writeln!(f, " 0 1 2 3 4 5 6 7 8 9 A B C D E F"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | write!(f, "{:04X}: ", index); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | write!(f, "{:02X} ", num); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/mem/mod.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | writeln!(f, ""); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: constant `off` should have an upper case name such as `OFF` [INFO] [stderr] --> src/display.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | / const off: Rgba = Rgba { [INFO] [stderr] 12 | | data: [0, 0, 0, 255], [INFO] [stderr] 13 | | }; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: constant `on` should have an upper case name such as `ON` [INFO] [stderr] --> src/display.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | const on: Rgba = Rgba { data: [255; 4] }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/display.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | me.tx.send(::display_message::Die); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/display.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | self.tx.send(::display_message::Input([false; 16])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/display.rs:80:35 [INFO] [stderr] | [INFO] [stderr] 80 | let mut f = f.into_iter(); [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/display.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | self.gfx.update(encoder, &self.image); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: constant `framesize` should have an upper case name such as `FRAMESIZE` [INFO] [stderr] --> src/main.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | const framesize:usize = 64*32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `cpu_message` should have a camel case name such as `CpuMessage` [INFO] [stderr] --> src/main.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | / pub enum cpu_message { [INFO] [stderr] 26 | | Frame([bool; framesize]), [INFO] [stderr] 27 | | Render, [INFO] [stderr] 28 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/main.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | Frame([bool; framesize]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 26 | Frame(Box<[bool; framesize]>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `display_message` should have a camel case name such as `DisplayMessage` [INFO] [stderr] --> src/main.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | / pub enum display_message { [INFO] [stderr] 41 | | Input([bool; 16]), [INFO] [stderr] 42 | | Die, [INFO] [stderr] 43 | | } [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/main.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | / match self.cpu.cpu_cycle(&mut self.mem)? { [INFO] [stderr] 78 | | cpu::ScreenUpdate::Yes => {self.display(); self.cpu_lock += 1;} [INFO] [stderr] 79 | | _ => {} [INFO] [stderr] 80 | | }; [INFO] [stderr] | |_____________^ help: try this: `if let cpu::ScreenUpdate::Yes = self.cpu.cpu_cycle(&mut self.mem)? {self.display(); self.cpu_lock += 1;}` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | chip8.load("pong.ch8"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: function `setupGraphics` should have a snake case name such as `setup_graphics` [INFO] [stderr] --> src/main.rs:143:1 [INFO] [stderr] | [INFO] [stderr] 143 | fn setupGraphics() {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `setupInput` should have a snake case name such as `setup_input` [INFO] [stderr] --> src/main.rs:144:1 [INFO] [stderr] | [INFO] [stderr] 144 | fn setupInput() {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 32.52s [INFO] running `"docker" "inspect" "08dcc2e68a817187bff4616512e4d5a839e772fe8bf0493078a83f65e304f6dc"` [INFO] running `"docker" "rm" "-f" "08dcc2e68a817187bff4616512e4d5a839e772fe8bf0493078a83f65e304f6dc"` [INFO] [stdout] 08dcc2e68a817187bff4616512e4d5a839e772fe8bf0493078a83f65e304f6dc