[INFO] cloning repository https://github.com/rehan-jaffer/euclid [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rehan-jaffer/euclid" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frehan-jaffer%2Feuclid", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frehan-jaffer%2Feuclid'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d0f62fb7acf9f2dab79755ca1b293dbc5fa87df3 [INFO] checking rehan-jaffer/euclid against try#f47dd4da3ae8c32c9e65d307bfe640b143e674df for pr-77526 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frehan-jaffer%2Feuclid" "/workspace/builds/worker-0/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/rehan-jaffer/euclid on toolchain f47dd4da3ae8c32c9e65d307bfe640b143e674df [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/rehan-jaffer/euclid [INFO] finished tweaking git repo https://github.com/rehan-jaffer/euclid [INFO] tweaked toml for git repo https://github.com/rehan-jaffer/euclid written to /workspace/builds/worker-0/source/Cargo.toml [INFO] crate git repo https://github.com/rehan-jaffer/euclid already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0563265ceba6dc351a647bf5397b9f3a3b7ad3c48da4a34e2987bd1fd623ffa6 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "0563265ceba6dc351a647bf5397b9f3a3b7ad3c48da4a34e2987bd1fd623ffa6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0563265ceba6dc351a647bf5397b9f3a3b7ad3c48da4a34e2987bd1fd623ffa6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0563265ceba6dc351a647bf5397b9f3a3b7ad3c48da4a34e2987bd1fd623ffa6", kill_on_drop: false }` [INFO] [stdout] 0563265ceba6dc351a647bf5397b9f3a3b7ad3c48da4a34e2987bd1fd623ffa6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 47ceda1a6385c99041f3f4a20ee4fe3c301d2107de04a8928d65ed779122b456 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "47ceda1a6385c99041f3f4a20ee4fe3c301d2107de04a8928d65ed779122b456", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling cc v1.0.50 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Checking rand_core v0.4.2 [INFO] [stderr] Compiling autocfg v0.1.7 [INFO] [stderr] Compiling pkg-config v0.3.17 [INFO] [stderr] Compiling proc-macro2 v1.0.10 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking adler32 v1.0.4 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling syn v1.0.17 [INFO] [stderr] Checking lzw v0.10.0 [INFO] [stderr] Checking color_quant v1.0.1 [INFO] [stderr] Checking lazycell v1.2.1 [INFO] [stderr] Checking scoped_threadpool v0.1.9 [INFO] [stderr] Checking percent-encoding v2.1.0 [INFO] [stderr] Checking fnv v1.0.6 [INFO] [stderr] Checking smallvec v1.3.0 [INFO] [stderr] Checking percent-encoding v1.0.1 [INFO] [stderr] Checking instant v0.1.2 [INFO] [stderr] Checking bytemuck v1.2.0 [INFO] [stderr] Checking ansi_term v0.12.1 [INFO] [stderr] Checking inflate v0.4.5 [INFO] [stderr] Checking miniz_oxide v0.3.6 [INFO] [stderr] Checking walkdir v2.3.1 [INFO] [stderr] Checking owning_ref v0.4.1 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Checking rand_jitter v0.1.4 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Checking gif v0.10.3 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Checking crc32fast v1.2.0 [INFO] [stderr] Checking memmap v0.7.0 [INFO] [stderr] Checking net2 v0.2.33 [INFO] [stderr] Checking shared_library v0.1.9 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking raw-window-handle v0.3.3 [INFO] [stderr] Checking parking_lot_core v0.7.1 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking rand_xorshift v0.1.1 [INFO] [stderr] Checking rand_hc v0.1.0 [INFO] [stderr] Checking rand_isaac v0.1.1 [INFO] [stderr] Checking stb_truetype v0.3.1 [INFO] [stderr] Checking deflate v0.7.20 [INFO] [stderr] Checking deflate v0.8.4 [INFO] [stderr] Checking lock_api v0.1.5 [INFO] [stderr] Compiling num-traits v0.2.11 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling memoffset v0.5.4 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling num-integer v0.1.42 [INFO] [stderr] Compiling num-iter v0.1.40 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling gl_generator v0.10.0 [INFO] [stderr] Compiling gl_generator v0.13.1 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Checking tiff v0.4.0 [INFO] [stderr] Checking parking_lot v0.10.2 [INFO] [stderr] Checking smallvec v0.6.13 [INFO] [stderr] Checking nix v0.14.1 [INFO] [stderr] Checking draw_state v0.8.0 [INFO] [stderr] Checking clap v2.33.0 [INFO] [stderr] Compiling xml-rs v0.7.0 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Checking mio v0.6.21 [INFO] [stderr] Checking png v0.16.2 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling wayland-scanner v0.21.13 [INFO] [stderr] Compiling wayland-scanner v0.23.6 [INFO] [stderr] Compiling parking_lot_core v0.4.0 [INFO] [stderr] Compiling parking_lot_core v0.6.2 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Compiling quote v1.0.3 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Compiling gl_generator v0.9.0 [INFO] [stderr] Checking mio-extras v2.0.6 [INFO] [stderr] Checking crossbeam-queue v0.2.1 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Compiling gl v0.11.0 [INFO] [stderr] Compiling glutin v0.19.0 [INFO] [stderr] Checking ordered-float v1.0.2 [INFO] [stderr] Checking approx v0.3.2 [INFO] [stderr] Checking line_drawing v0.7.0 [INFO] [stderr] Checking dlib v0.4.1 [INFO] [stderr] Compiling glutin_glx_sys v0.1.6 [INFO] [stderr] Compiling glutin_egl_sys v0.1.4 [INFO] [stderr] Checking rayon-core v1.7.0 [INFO] [stderr] Checking rusttype v0.8.3 [INFO] [stderr] Checking wayland-sys v0.21.13 [INFO] [stderr] Checking wayland-sys v0.23.6 [INFO] [stderr] Compiling gfx_gl v0.5.0 [INFO] [stderr] Checking rusttype v0.7.9 [INFO] [stderr] Checking piston2d-graphics v0.36.0 [INFO] [stderr] Checking rayon v1.3.0 [INFO] [stderr] Checking png v0.14.1 [INFO] [stderr] Checking andrew v0.2.1 [INFO] [stderr] Checking piston2d-graphics v0.32.0 [INFO] [stderr] Checking parking_lot v0.7.1 [INFO] [stderr] Compiling wayland-client v0.21.13 [INFO] [stderr] Compiling wayland-protocols v0.21.13 [INFO] [stderr] Compiling wayland-client v0.23.6 [INFO] [stderr] Compiling wayland-protocols v0.23.6 [INFO] [stderr] Checking wayland-commons v0.21.13 [INFO] [stderr] Checking calloop v0.4.4 [INFO] [stderr] Checking wayland-commons v0.23.6 [INFO] [stderr] Compiling serde_derive v1.0.106 [INFO] [stderr] Compiling derivative v1.0.4 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Checking jpeg-decoder v0.1.18 [INFO] [stderr] Checking image v0.23.3 [INFO] [stderr] Checking tiff v0.2.2 [INFO] [stderr] Checking image v0.21.3 [INFO] [stderr] Checking gfx_core v0.8.3 [INFO] [stderr] Checking piston2d-opengl_graphics v0.72.0 [INFO] [stderr] Checking smithay-client-toolkit v0.4.6 [INFO] [stderr] Checking smithay-client-toolkit v0.6.6 [INFO] [stderr] Checking pistoncore-input v0.28.0 [INFO] [stderr] Checking gfx v0.17.1 [INFO] [stderr] Checking gfx_device_gl v0.15.5 [INFO] [stderr] Checking winit v0.18.1 [INFO] [stderr] Checking winit v0.19.5 [INFO] [stderr] Checking winit v0.22.0 [INFO] [stderr] Checking piston-gfx_texture v0.36.0 [INFO] [stderr] Checking piston2d-gfx_graphics v0.61.0 [INFO] [stderr] Checking pistoncore-window v0.43.0 [INFO] [stderr] Checking pistoncore-window v0.44.0 [INFO] [stderr] Checking glutin v0.21.2 [INFO] [stderr] Checking pistoncore-event_loop v0.48.0 [INFO] [stderr] Checking piston v0.48.0 [INFO] [stderr] Checking glutin v0.24.0 [INFO] [stderr] Checking pistoncore-glutin_window v0.63.0 (https://github.com/PistonDevelopers/glutin_window#c9b89f3c) [INFO] [stderr] Checking pistoncore-glutin_window v0.61.0 [INFO] [stderr] Checking piston_window v0.98.0 [INFO] [stderr] Checking euclid v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Arg`, `SubCommand` [INFO] [stdout] --> src/main.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | use clap::{Arg, App, SubCommand}; [INFO] [stdout] | ^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/emulator.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/emulator.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/emulator.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `SystemTime` [INFO] [stdout] --> src/emulator.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use std::time::{Duration, SystemTime}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:83:10 [INFO] [stdout] | [INFO] [stdout] 83 | if (SLOW_MODE) { [INFO] [stdout] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:134:51 [INFO] [stdout] | [INFO] [stdout] 134 | INC_B => { self.b += 1; self.b &= 255; if (self.b == 0) { self.flags.zero = true; } self.debug("INC B") }, [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/emulator/cpu.rs:154:50 [INFO] [stdout] | [INFO] [stdout] 154 | self.l = if self.l == 0 { 255 } else { (self.l-1) }; [INFO] [stdout] | ^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:165:14 [INFO] [stdout] | [INFO] [stdout] 165 | if (self.flags.zero == false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:195:30 [INFO] [stdout] | [INFO] [stdout] 195 | let new_carry = if (self.a & 0x80 == 0) { false } else { true }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:197:14 [INFO] [stdout] | [INFO] [stdout] 197 | if (self.a == 0) { self.flags.zero = true; } else { self.flags.zero = false; } [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/emulator/cpu.rs:205:29 [INFO] [stdout] | [INFO] [stdout] 205 | self.flags.zero = (self.b == 0); [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:215:13 [INFO] [stdout] | [INFO] [stdout] 215 | if(self.l == 0) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:235:14 [INFO] [stdout] | [INFO] [stdout] 235 | if (self.l == 0) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:245:14 [INFO] [stdout] | [INFO] [stdout] 245 | if (self.e == 0) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/emulator/cpu.rs:262:33 [INFO] [stdout] | [INFO] [stdout] 262 | self.flags.negative = (i < 0); [INFO] [stdout] | ^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/emulator/cpu.rs:263:29 [INFO] [stdout] | [INFO] [stdout] 263 | self.flags.zero = (i == 0); [INFO] [stdout] | ^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:301:27 [INFO] [stdout] | [INFO] [stdout] 301 | let jumped = if (self.flags.zero) { "Y "} else { "N" }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:312:34 [INFO] [stdout] | [INFO] [stdout] 312 | let new_carry = if (self.c & 0x80 == 0) { false } else { true }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:314:18 [INFO] [stdout] | [INFO] [stdout] 314 | if (self.c == 0) { self.flags.zero = true; } else { self.flags.zero = false; } [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ansi_term::Colour::Red` [INFO] [stdout] --> src/emulator/mmu.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use ansi_term::Colour::Red; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/emulator/mmu.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | match (addr & BITMASK) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/mmu.rs:28:14 [INFO] [stdout] | [INFO] [stdout] 28 | if (addr < 256) { [INFO] [stdout] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/emulator/mmu.rs:48:16 [INFO] [stdout] | [INFO] [stdout] 48 | for i in (0..16) { [INFO] [stdout] | ^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/mmu.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | if (addr == stack_pointer) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/emulator/mmu.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | match (addr & BITMASK) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/mmu.rs:66:14 [INFO] [stdout] | [INFO] [stdout] 66 | if (addr < 256) { [INFO] [stdout] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/emulator/mmu.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | match (addr & BITMASK) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/mmu.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 89 | if (addr < 256) { [INFO] [stdout] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/emulator.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 55 | for i in (0..(256*164)) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/emulator.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | while (self.running == true) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/emulator.rs:94:16 [INFO] [stdout] | [INFO] [stdout] 94 | for x in (0..width-1) { [INFO] [stdout] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/emulator.rs:95:18 [INFO] [stdout] | [INFO] [stdout] 95 | for y in (0..height-1) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/main.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | for _ in (0..mem_size) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arg`, `SubCommand` [INFO] [stdout] --> src/main.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | use clap::{Arg, App, SubCommand}; [INFO] [stdout] | ^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/emulator.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/emulator.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/emulator.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `SystemTime` [INFO] [stdout] --> src/emulator.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use std::time::{Duration, SystemTime}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:83:10 [INFO] [stdout] | [INFO] [stdout] 83 | if (SLOW_MODE) { [INFO] [stdout] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:134:51 [INFO] [stdout] | [INFO] [stdout] 134 | INC_B => { self.b += 1; self.b &= 255; if (self.b == 0) { self.flags.zero = true; } self.debug("INC B") }, [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/emulator/cpu.rs:154:50 [INFO] [stdout] | [INFO] [stdout] 154 | self.l = if self.l == 0 { 255 } else { (self.l-1) }; [INFO] [stdout] | ^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:165:14 [INFO] [stdout] | [INFO] [stdout] 165 | if (self.flags.zero == false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:195:30 [INFO] [stdout] | [INFO] [stdout] 195 | let new_carry = if (self.a & 0x80 == 0) { false } else { true }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:197:14 [INFO] [stdout] | [INFO] [stdout] 197 | if (self.a == 0) { self.flags.zero = true; } else { self.flags.zero = false; } [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/emulator/cpu.rs:205:29 [INFO] [stdout] | [INFO] [stdout] 205 | self.flags.zero = (self.b == 0); [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:215:13 [INFO] [stdout] | [INFO] [stdout] 215 | if(self.l == 0) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:235:14 [INFO] [stdout] | [INFO] [stdout] 235 | if (self.l == 0) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:245:14 [INFO] [stdout] | [INFO] [stdout] 245 | if (self.e == 0) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/emulator/cpu.rs:262:33 [INFO] [stdout] | [INFO] [stdout] 262 | self.flags.negative = (i < 0); [INFO] [stdout] | ^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/emulator/cpu.rs:263:29 [INFO] [stdout] | [INFO] [stdout] 263 | self.flags.zero = (i == 0); [INFO] [stdout] | ^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:301:27 [INFO] [stdout] | [INFO] [stdout] 301 | let jumped = if (self.flags.zero) { "Y "} else { "N" }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:312:34 [INFO] [stdout] | [INFO] [stdout] 312 | let new_carry = if (self.c & 0x80 == 0) { false } else { true }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/cpu.rs:314:18 [INFO] [stdout] | [INFO] [stdout] 314 | if (self.c == 0) { self.flags.zero = true; } else { self.flags.zero = false; } [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ansi_term::Colour::Red` [INFO] [stdout] --> src/emulator/mmu.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use ansi_term::Colour::Red; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/emulator/mmu.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | match (addr & BITMASK) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/mmu.rs:28:14 [INFO] [stdout] | [INFO] [stdout] 28 | if (addr < 256) { [INFO] [stdout] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/emulator/mmu.rs:48:16 [INFO] [stdout] | [INFO] [stdout] 48 | for i in (0..16) { [INFO] [stdout] | ^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/mmu.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | if (addr == stack_pointer) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/emulator/mmu.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | match (addr & BITMASK) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/mmu.rs:66:14 [INFO] [stdout] | [INFO] [stdout] 66 | if (addr < 256) { [INFO] [stdout] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> src/emulator/mmu.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | match (addr & BITMASK) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/emulator/mmu.rs:89:16 [INFO] [stdout] | [INFO] [stdout] 89 | if (addr < 256) { [INFO] [stdout] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/emulator.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 55 | for i in (0..(256*164)) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `while` condition [INFO] [stdout] --> src/emulator.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | while (self.running == true) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/emulator.rs:94:16 [INFO] [stdout] | [INFO] [stdout] 94 | for x in (0..width-1) { [INFO] [stdout] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/emulator.rs:95:18 [INFO] [stdout] | [INFO] [stdout] 95 | for y in (0..height-1) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/main.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | for _ in (0..mem_size) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/emulator/cpu.rs:272:9 [INFO] [stdout] | [INFO] [stdout] 272 | CALL_NN => { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `time` [INFO] [stdout] --> src/emulator.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | let time = Instant::now(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_time` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `now` [INFO] [stdout] --> src/emulator/cpu.rs:81:11 [INFO] [stdout] | [INFO] [stdout] 81 | let now = time::Instant::now(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `panic_and_die` [INFO] [stdout] --> src/emulator/cpu.rs:90:11 [INFO] [stdout] | [INFO] [stdout] 90 | let panic_and_die = || -> () { }; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_panic_and_die` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/emulator/cpu.rs:326:9 [INFO] [stdout] | [INFO] [stdout] 326 | code => { self.panic_and_die(instr) } [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/emulator/cpu.rs:223:15 [INFO] [stdout] | [INFO] [stdout] 223 | let mut hl =((self.h as u16) <<8)+self.l as u16; [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NOP` [INFO] [stdout] --> src/emulator/cpu.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | const NOP : u8 = 0x0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `dump_vram` [INFO] [stdout] --> src/emulator/gpu.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn dump_vram(&self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Screen` [INFO] [stdout] --> src/emulator.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct Screen<'a> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw` [INFO] [stdout] --> src/emulator.rs:87:6 [INFO] [stdout] | [INFO] [stdout] 87 | fn draw(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused attribute [INFO] [stdout] --> src/emulator.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(get_mut_unchecked)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_attributes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate-level attribute should be in the root module [INFO] [stdout] --> src/emulator.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(get_mut_unchecked)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `loadBIOS` should have a snake case name [INFO] [stdout] --> src/emulator.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn loadBIOS(&mut self) { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `load_bios` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RLr_c` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const RLr_c : u8 = 0x11; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `RLR_C` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LD_IO_nA` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:45:7 [INFO] [stdout] | [INFO] [stdout] 45 | const LD_IO_nA : u8 = 0xe0; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `LD_IO_N_A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LDrr_ba` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:49:7 [INFO] [stdout] | [INFO] [stdout] 49 | const LDrr_ba : u8 = 0x47; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `LDRR_BA` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LD_ADE_m` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const LD_ADE_m : u8 = 0x1a; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `LD_ADE_M` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DECr_A` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:54:7 [INFO] [stdout] | [INFO] [stdout] 54 | const DECr_A : u8 = 0x3d; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `DECR_A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JR_Zn` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:65:7 [INFO] [stdout] | [INFO] [stdout] 65 | const JR_Zn : u8 = 0x28; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `JR_ZN` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DECr_C` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:66:7 [INFO] [stdout] | [INFO] [stdout] 66 | const DECr_C : u8 = 0xd; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `DECR_C` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `LD_IO_nA` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | ... LD_IO_nA => { self.mmu.wb((0xFF00+self.mmu.rb(self.pc+1) as u16) as u16, self.a); self.m = 2; self.pc += 1; self.debug("LD_IO_nA") }, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `LD_IO_N_A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `LDrr_ba` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | LDrr_ba => { self.b = self.a; self.m += 1; self.debug("LDrr_ba"); }, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `LDRR_BA` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `LD_ADE_m` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | LD_ADE_m => { self.a=self.mmu.rb(((self.d as u16)<<8)+self.e as u16); self.m=2; self.debug("LD_ADE_m") }, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `LD_ADE_M` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/emulator/cpu.rs:262:33 [INFO] [stdout] | [INFO] [stdout] 262 | self.flags.negative = (i < 0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `DECr_A` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | DECr_A => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `DECR_A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `DECr_C` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | DECr_C => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `DECR_C` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `JR_Zn` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | JR_Zn => { [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `JR_ZN` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `RLr_c` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:311:13 [INFO] [stdout] | [INFO] [stdout] 311 | RLr_c => { [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `RLR_C` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 62 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/emulator/cpu.rs:272:9 [INFO] [stdout] | [INFO] [stdout] 272 | CALL_NN => { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `time` [INFO] [stdout] --> src/emulator.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | let time = Instant::now(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_time` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `now` [INFO] [stdout] --> src/emulator/cpu.rs:81:11 [INFO] [stdout] | [INFO] [stdout] 81 | let now = time::Instant::now(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_now` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `panic_and_die` [INFO] [stdout] --> src/emulator/cpu.rs:90:11 [INFO] [stdout] | [INFO] [stdout] 90 | let panic_and_die = || -> () { }; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_panic_and_die` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/emulator/cpu.rs:326:9 [INFO] [stdout] | [INFO] [stdout] 326 | code => { self.panic_and_die(instr) } [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/emulator/cpu.rs:223:15 [INFO] [stdout] | [INFO] [stdout] 223 | let mut hl =((self.h as u16) <<8)+self.l as u16; [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NOP` [INFO] [stdout] --> src/emulator/cpu.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | const NOP : u8 = 0x0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `dump_vram` [INFO] [stdout] --> src/emulator/gpu.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn dump_vram(&self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Screen` [INFO] [stdout] --> src/emulator.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct Screen<'a> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw` [INFO] [stdout] --> src/emulator.rs:87:6 [INFO] [stdout] | [INFO] [stdout] 87 | fn draw(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused attribute [INFO] [stdout] --> src/emulator.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(get_mut_unchecked)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_attributes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate-level attribute should be in the root module [INFO] [stdout] --> src/emulator.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(get_mut_unchecked)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `loadBIOS` should have a snake case name [INFO] [stdout] --> src/emulator.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn loadBIOS(&mut self) { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `load_bios` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RLr_c` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const RLr_c : u8 = 0x11; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `RLR_C` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LD_IO_nA` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:45:7 [INFO] [stdout] | [INFO] [stdout] 45 | const LD_IO_nA : u8 = 0xe0; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `LD_IO_N_A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LDrr_ba` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:49:7 [INFO] [stdout] | [INFO] [stdout] 49 | const LDrr_ba : u8 = 0x47; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `LDRR_BA` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LD_ADE_m` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const LD_ADE_m : u8 = 0x1a; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `LD_ADE_M` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DECr_A` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:54:7 [INFO] [stdout] | [INFO] [stdout] 54 | const DECr_A : u8 = 0x3d; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `DECR_A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JR_Zn` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:65:7 [INFO] [stdout] | [INFO] [stdout] 65 | const JR_Zn : u8 = 0x28; [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `JR_ZN` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DECr_C` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:66:7 [INFO] [stdout] | [INFO] [stdout] 66 | const DECr_C : u8 = 0xd; [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `DECR_C` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `LD_IO_nA` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | ... LD_IO_nA => { self.mmu.wb((0xFF00+self.mmu.rb(self.pc+1) as u16) as u16, self.a); self.m = 2; self.pc += 1; self.debug("LD_IO_nA") }, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `LD_IO_N_A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `LDrr_ba` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | LDrr_ba => { self.b = self.a; self.m += 1; self.debug("LDrr_ba"); }, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `LDRR_BA` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `LD_ADE_m` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | LD_ADE_m => { self.a=self.mmu.rb(((self.d as u16)<<8)+self.e as u16); self.m=2; self.debug("LD_ADE_m") }, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `LD_ADE_M` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/emulator/cpu.rs:262:33 [INFO] [stdout] | [INFO] [stdout] 262 | self.flags.negative = (i < 0); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `DECr_A` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | DECr_A => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `DECR_A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `DECr_C` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:286:9 [INFO] [stdout] | [INFO] [stdout] 286 | DECr_C => { [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `DECR_C` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `JR_Zn` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | JR_Zn => { [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `JR_ZN` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant in pattern `RLr_c` should have an upper case name [INFO] [stdout] --> src/emulator/cpu.rs:311:13 [INFO] [stdout] | [INFO] [stdout] 311 | RLr_c => { [INFO] [stdout] | ^^^^^ help: convert the identifier to upper case: `RLR_C` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 62 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3m 22s [INFO] running `Command { std: "docker" "inspect" "47ceda1a6385c99041f3f4a20ee4fe3c301d2107de04a8928d65ed779122b456", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "47ceda1a6385c99041f3f4a20ee4fe3c301d2107de04a8928d65ed779122b456", kill_on_drop: false }` [INFO] [stdout] 47ceda1a6385c99041f3f4a20ee4fe3c301d2107de04a8928d65ed779122b456