[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] testing rehan-jaffer/euclid against 1.54.0 for beta-1.55-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frehan-jaffer%2Feuclid" "/workspace/builds/worker-45/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-45/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/rehan-jaffer/euclid on toolchain 1.54.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", 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-45/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" "+1.54.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded osmesa-sys v0.1.2
[INFO] [stderr]   Downloaded shader_version v0.6.0
[INFO] [stderr]   Downloaded wayland-client v0.21.13
[INFO] [stderr]   Downloaded glutin_glx_sys v0.1.6
[INFO] [stderr]   Downloaded gl_generator v0.13.1
[INFO] [stderr]   Downloaded glutin_egl_sys v0.1.4
[INFO] [stderr]   Downloaded gleam v0.6.19
[INFO] [stderr]   Downloaded gl_generator v0.10.0
[INFO] [stderr]   Downloaded pistoncore-glutin_window v0.61.0
[INFO] [stderr]   Downloaded glutin_emscripten_sys v0.1.1
[INFO] [stderr]   Downloaded glutin_gles2_sys v0.1.4
[INFO] [stderr]   Downloaded piston_window v0.98.0
[INFO] [stderr]   Downloaded cgl v0.2.3
[INFO] [stderr]   Downloaded xml-rs v0.7.0
[INFO] [stderr]   Downloaded parking_lot_core v0.7.1
[INFO] [stderr]   Downloaded ansi_term v0.12.1
[INFO] [stderr]   Downloaded winapi-util v0.1.4
[INFO] [stderr]   Downloaded winit v0.19.5
[INFO] [stderr]   Downloaded serde_derive v1.0.106
[INFO] [stderr]   Downloaded serde v1.0.106
[INFO] [stderr]   Downloaded glutin v0.21.2
[INFO] [stderr]   Downloaded piston-texture v0.6.0
[INFO] [stderr]   Downloaded vecmath v1.0.0
[INFO] [stderr]   Downloaded piston2d-graphics v0.32.0
[INFO] [stderr]   Downloaded piston-gfx_texture v0.36.0
[INFO] [stderr]   Downloaded interpolation v0.2.0
[INFO] [stderr]   Downloaded draw_state v0.8.0
[INFO] [stderr]   Downloaded pistoncore-event_loop v0.48.0
[INFO] [stderr]   Downloaded piston-texture v0.8.0
[INFO] [stderr]   Downloaded tiff v0.4.0
[INFO] [stderr]   Downloaded cgl v0.3.2
[INFO] [stderr]   Downloaded deflate v0.8.4
[INFO] [stderr]   Downloaded smallvec v1.3.0
[INFO] [stderr]   Downloaded dlib v0.4.1
[INFO] [stderr]   Downloaded wayland-commons v0.21.13
[INFO] [stderr]   Downloaded wayland-protocols v0.21.13
[INFO] [stderr]   Downloaded winit v0.22.0
[INFO] [stderr]   Downloaded ordered-float v1.0.2
[INFO] [stderr]   Downloaded glutin_wgl_sys v0.1.4
[INFO] [stderr]   Downloaded derivative v1.0.4
[INFO] [stderr]   Downloaded num_cpus v1.12.0
[INFO] [stderr]   Downloaded rayon-core v1.7.0
[INFO] [stderr]   Downloaded memoffset v0.5.4
[INFO] [stderr]   Downloaded glutin v0.24.0
[INFO] [stderr]   Downloaded inflate v0.4.5
[INFO] [stderr]   Downloaded core-video-sys v0.1.3
[INFO] [stderr]   Downloaded khronos_api v2.2.0
[INFO] [stderr]   Downloaded downcast-rs v1.1.1
[INFO] [stderr]   Downloaded png v0.14.1
[INFO] [stderr]   Downloaded image v0.23.3
[INFO] [stderr]   Downloaded piston2d-opengl_graphics v0.72.0
[INFO] [stderr]   Downloaded cocoa v0.18.5
[INFO] [stderr]   Downloaded autocfg v1.0.0
[INFO] [stderr]   Downloaded pistoncore-window v0.44.0
[INFO] [stderr]   Downloaded piston2d-gfx_graphics v0.61.0
[INFO] [stderr]   Downloaded cocoa v0.19.1
[INFO] [stderr]   Downloaded tiff v0.2.2
[INFO] [stderr]   Downloaded backtrace-sys v0.1.35
[INFO] [stderr]   Downloaded read_color v1.0.0
[INFO] [stderr]   Downloaded gl v0.11.0
[INFO] [stderr]   Downloaded num-traits v0.2.11
[INFO] [stderr]   Downloaded android_glue v0.2.3
[INFO] [stderr]   Downloaded image v0.21.3
[INFO] [stderr]   Downloaded core-graphics v0.17.3
[INFO] [stderr]   Downloaded rayon v1.3.0
[INFO] [stderr]   Downloaded num-iter v0.1.40
[INFO] [stderr]   Downloaded backtrace v0.3.46
[INFO] [stderr]   Downloaded jpeg-decoder v0.1.18
[INFO] [stderr]   Downloaded lazycell v1.2.1
[INFO] [stderr]   Downloaded khronos_api v3.1.0
[INFO] [stderr]   Downloaded crossbeam-queue v0.2.1
[INFO] [stderr]   Downloaded num-integer v0.1.42
[INFO] [stderr]   Downloaded num-derive v0.2.5
[INFO] [stderr]   Downloaded png v0.16.2
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.4.6
[INFO] [stderr]   Downloaded pistoncore-input v0.28.0
[INFO] [stderr]   Downloaded wayland-scanner v0.21.13
[INFO] [stderr]   Downloaded wayland-sys v0.21.13
[INFO] [stderr]   Downloaded xml-rs v0.8.2
[INFO] [stderr]   Downloaded piston-graphics_api_version v0.2.0
[INFO] [stderr]   Downloaded instant v0.1.2
[INFO] [stderr]   Downloaded bytemuck v1.2.0
[INFO] [stderr]   Downloaded piston2d-graphics v0.36.0
[INFO] [stderr]   Downloaded gl_generator v0.9.0
[INFO] [stderr]   Downloaded gfx_gl v0.5.0
[INFO] [stderr]   Downloaded gfx_device_gl v0.15.5
[INFO] [stderr]   Downloaded gfx v0.17.1
[INFO] [stderr]   Downloaded piston v0.48.0
[INFO] [stderr]   Downloaded gfx_core v0.8.3
[INFO] [stderr]   Downloaded winit v0.18.1
[INFO] [stderr]   Downloaded piston-shaders_graphics2d v0.3.1
[INFO] [stderr]   Downloaded glutin v0.19.0
[INFO] [stderr]   Downloaded owning_ref v0.4.1
[INFO] [stderr]   Downloaded pistoncore-window v0.43.0
[INFO] [stderr]   Downloaded piston-float v1.0.0
[INFO] [stderr]   Downloaded piston-viewport v1.0.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-45/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-45/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 83fa158045573b6f3acb3e02136d567c853590c8de242b85e7ef82af445dd616
[INFO] running `Command { std: "docker" "start" "-a" "83fa158045573b6f3acb3e02136d567c853590c8de242b85e7ef82af445dd616", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "83fa158045573b6f3acb3e02136d567c853590c8de242b85e7ef82af445dd616", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "83fa158045573b6f3acb3e02136d567c853590c8de242b85e7ef82af445dd616", kill_on_drop: false }`
[INFO] [stdout] 83fa158045573b6f3acb3e02136d567c853590c8de242b85e7ef82af445dd616
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-45/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-45/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=warn" "-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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eec8e25302cea1f59cbb69aec9045bae24dfe09f266aedaaae27fce2ecb6fb91
[INFO] running `Command { std: "docker" "start" "-a" "eec8e25302cea1f59cbb69aec9045bae24dfe09f266aedaaae27fce2ecb6fb91", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.68
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling xml-rs v0.8.2
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling cc v1.0.50
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]    Compiling downcast-rs v1.1.1
[INFO] [stderr]    Compiling piston-float v1.0.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling proc-macro2 v1.0.10
[INFO] [stderr]    Compiling pkg-config v0.3.17
[INFO] [stderr]    Compiling xdg v2.2.0
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling syn v1.0.17
[INFO] [stderr]    Compiling piston-graphics_api_version v0.2.0
[INFO] [stderr]    Compiling serde v1.0.106
[INFO] [stderr]    Compiling rayon-core v1.7.0
[INFO] [stderr]    Compiling khronos_api v2.2.0
[INFO] [stderr]    Compiling num-derive v0.2.5
[INFO] [stderr]    Compiling stable_deref_trait v1.1.1
[INFO] [stderr]    Compiling lazycell v1.2.1
[INFO] [stderr]    Compiling scoped_threadpool v0.1.9
[INFO] [stderr]    Compiling scopeguard v0.3.3
[INFO] [stderr]    Compiling interpolation v0.2.0
[INFO] [stderr]    Compiling read_color v1.0.0
[INFO] [stderr]    Compiling smallvec v1.3.0
[INFO] [stderr]    Compiling piston-texture v0.6.0
[INFO] [stderr]    Compiling piston-shaders_graphics2d v0.3.1
[INFO] [stderr]    Compiling instant v0.1.2
[INFO] [stderr]    Compiling bytemuck v1.2.0
[INFO] [stderr]    Compiling piston-texture v0.8.0
[INFO] [stderr]    Compiling ansi_term v0.11.0
[INFO] [stderr]    Compiling vec_map v0.8.1
[INFO] [stderr]    Compiling strsim v0.8.0
[INFO] [stderr]    Compiling ansi_term v0.12.1
[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-iter v0.1.40
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling walkdir v2.3.1
[INFO] [stderr]    Compiling piston-viewport v1.0.0
[INFO] [stderr]    Compiling inflate v0.4.5
[INFO] [stderr]    Compiling vecmath v1.0.0
[INFO] [stderr]    Compiling miniz_oxide v0.3.6
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling approx v0.3.2
[INFO] [stderr]    Compiling ordered-float v1.0.2
[INFO] [stderr]    Compiling stb_truetype v0.3.1
[INFO] [stderr]    Compiling line_drawing v0.7.0
[INFO] [stderr]    Compiling parking_lot_core v0.4.0
[INFO] [stderr]    Compiling draw_state v0.8.0
[INFO] [stderr]    Compiling xml-rs v0.7.0
[INFO] [stderr]    Compiling deflate v0.7.20
[INFO] [stderr]    Compiling deflate v0.8.4
[INFO] [stderr]    Compiling shader_version v0.6.0
[INFO] [stderr]    Compiling owning_ref v0.4.1
[INFO] [stderr]    Compiling rusttype v0.8.3
[INFO] [stderr]    Compiling png v0.16.2
[INFO] [stderr]    Compiling lock_api v0.1.5
[INFO] [stderr]    Compiling x11-dl v2.18.5
[INFO] [stderr]    Compiling tiff v0.4.0
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]    Compiling rusttype v0.7.9
[INFO] [stderr]    Compiling piston2d-graphics v0.36.0
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]    Compiling gl_generator v0.10.0
[INFO] [stderr]    Compiling gl_generator v0.13.1
[INFO] [stderr]    Compiling andrew v0.2.1
[INFO] [stderr]    Compiling piston2d-graphics v0.32.0
[INFO] [stderr]    Compiling smallvec v0.6.13
[INFO] [stderr]    Compiling gl_generator v0.9.0
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling memmap v0.7.0
[INFO] [stderr]    Compiling num_cpus v1.12.0
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling net2 v0.2.33
[INFO] [stderr]    Compiling shared_library v0.1.9
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling raw-window-handle v0.3.3
[INFO] [stderr]    Compiling parking_lot_core v0.7.1
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling wayland-scanner v0.21.13
[INFO] [stderr]    Compiling wayland-scanner v0.23.6
[INFO] [stderr]    Compiling parking_lot_core v0.6.2
[INFO] [stderr]    Compiling clap v2.33.0
[INFO] [stderr]    Compiling png v0.14.1
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling gl v0.11.0
[INFO] [stderr]    Compiling glutin v0.19.0
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling dlib v0.4.1
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling gfx_gl v0.5.0
[INFO] [stderr]    Compiling parking_lot v0.10.2
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.4
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.6
[INFO] [stderr]    Compiling mio v0.6.21
[INFO] [stderr]    Compiling wayland-sys v0.21.13
[INFO] [stderr]    Compiling wayland-sys v0.23.6
[INFO] [stderr]    Compiling crossbeam-queue v0.2.1
[INFO] [stderr]    Compiling mio-extras v2.0.6
[INFO] [stderr]    Compiling crossbeam-deque v0.7.3
[INFO] [stderr]    Compiling 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]    Compiling rayon v1.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.106
[INFO] [stderr]    Compiling wayland-commons v0.21.13
[INFO] [stderr]    Compiling calloop v0.4.4
[INFO] [stderr]    Compiling wayland-commons v0.23.6
[INFO] [stderr]    Compiling derivative v1.0.4
[INFO] [stderr]    Compiling jpeg-decoder v0.1.18
[INFO] [stderr]    Compiling image v0.23.3
[INFO] [stderr]    Compiling tiff v0.2.2
[INFO] [stderr]    Compiling gfx_core v0.8.3
[INFO] [stderr]    Compiling image v0.21.3
[INFO] [stderr]    Compiling pistoncore-input v0.28.0
[INFO] [stderr]    Compiling gfx v0.17.1
[INFO] [stderr]    Compiling gfx_device_gl v0.15.5
[INFO] [stderr]    Compiling piston2d-opengl_graphics v0.72.0
[INFO] [stderr]    Compiling pistoncore-window v0.43.0
[INFO] [stderr]    Compiling pistoncore-window v0.44.0
[INFO] [stderr]    Compiling pistoncore-event_loop v0.48.0
[INFO] [stderr]    Compiling piston v0.48.0
[INFO] [stderr]    Compiling piston-gfx_texture v0.36.0
[INFO] [stderr]    Compiling piston2d-gfx_graphics v0.61.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.6.6
[INFO] [stderr]    Compiling winit v0.22.0
[INFO] [stderr]    Compiling glutin v0.24.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.4.6
[INFO] [stderr]    Compiling winit v0.18.1
[INFO] [stderr]    Compiling winit v0.19.5
[INFO] [stderr]    Compiling glutin v0.21.2
[INFO] [stderr]    Compiling pistoncore-glutin_window v0.63.0 (https://github.com/PistonDevelopers/glutin_window#c9b89f3c)
[INFO] [stderr]    Compiling pistoncore-glutin_window v0.61.0
[INFO] [stderr]    Compiling piston_window v0.98.0
[INFO] [stderr]    Compiling 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: 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 1m 28s
[INFO] running `Command { std: "docker" "inspect" "eec8e25302cea1f59cbb69aec9045bae24dfe09f266aedaaae27fce2ecb6fb91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eec8e25302cea1f59cbb69aec9045bae24dfe09f266aedaaae27fce2ecb6fb91", kill_on_drop: false }`
[INFO] [stdout] eec8e25302cea1f59cbb69aec9045bae24dfe09f266aedaaae27fce2ecb6fb91
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-45/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-45/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=warn" "-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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e64e0982b3a1b3641a0f59007fc124fb20dba690fddf986fa292759b5a41a4cd
[INFO] running `Command { std: "docker" "start" "-a" "e64e0982b3a1b3641a0f59007fc124fb20dba690fddf986fa292759b5a41a4cd", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling 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: 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 test [unoptimized + debuginfo] target(s) in 12.67s
[INFO] running `Command { std: "docker" "inspect" "e64e0982b3a1b3641a0f59007fc124fb20dba690fddf986fa292759b5a41a4cd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e64e0982b3a1b3641a0f59007fc124fb20dba690fddf986fa292759b5a41a4cd", kill_on_drop: false }`
[INFO] [stdout] e64e0982b3a1b3641a0f59007fc124fb20dba690fddf986fa292759b5a41a4cd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-45/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-45/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=warn" "-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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0af40d78e1f19ee26e67312ac2c626a53a9602d5b1f6c5f5b5029680f627a797
[INFO] running `Command { std: "docker" "start" "-a" "0af40d78e1f19ee26e67312ac2c626a53a9602d5b1f6c5f5b5029680f627a797", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr] warning: unused imports: `Arg`, `SubCommand`
[INFO] [stderr]  --> src/main.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 | use clap::{Arg, App, SubCommand};
[INFO] [stderr]   |            ^^^       ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io`
[INFO] [stderr]  --> src/emulator.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::io;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/emulator.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> src/emulator.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Duration`, `SystemTime`
[INFO] [stderr]  --> src/emulator.rs:8:17
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::time::{Duration, SystemTime};
[INFO] [stderr]   |                 ^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/emulator/cpu.rs:83:10
[INFO] [stderr]    |
[INFO] [stderr] 83 |       if (SLOW_MODE) {
[INFO] [stderr]    |          ^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:134:51
[INFO] [stderr]     |
[INFO] [stderr] 134 |         INC_B => { self.b += 1; self.b &= 255; if (self.b == 0) { self.flags.zero = true; } self.debug("INC B") },
[INFO] [stderr]     |                                                   ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/emulator/cpu.rs:154:50
[INFO] [stderr]     |
[INFO] [stderr] 154 |           self.l = if self.l == 0 { 255 } else { (self.l-1) };
[INFO] [stderr]     |                                                  ^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:165:14
[INFO] [stderr]     |
[INFO] [stderr] 165 |           if (self.flags.zero == false) {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:195:30
[INFO] [stderr]     |
[INFO] [stderr] 195 |           let new_carry = if (self.a & 0x80 == 0) { false } else { true };
[INFO] [stderr]     |                              ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:197:14
[INFO] [stderr]     |
[INFO] [stderr] 197 |           if (self.a == 0) { self.flags.zero = true; } else { self.flags.zero = false; }
[INFO] [stderr]     |              ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/emulator/cpu.rs:205:29
[INFO] [stderr]     |
[INFO] [stderr] 205 |           self.flags.zero = (self.b == 0);
[INFO] [stderr]     |                             ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:215:13
[INFO] [stderr]     |
[INFO] [stderr] 215 |           if(self.l == 0) {
[INFO] [stderr]     |             ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:235:14
[INFO] [stderr]     |
[INFO] [stderr] 235 |           if (self.l == 0) {
[INFO] [stderr]     |              ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:245:14
[INFO] [stderr]     |
[INFO] [stderr] 245 |           if (self.e == 0) {
[INFO] [stderr]     |              ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/emulator/cpu.rs:262:33
[INFO] [stderr]     |
[INFO] [stderr] 262 |           self.flags.negative = (i < 0);
[INFO] [stderr]     |                                 ^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/emulator/cpu.rs:263:29
[INFO] [stderr]     |
[INFO] [stderr] 263 |           self.flags.zero = (i == 0);
[INFO] [stderr]     |                             ^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:301:27
[INFO] [stderr]     |
[INFO] [stderr] 301 |           let jumped = if (self.flags.zero) { "Y "} else { "N" };
[INFO] [stderr]     |                           ^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:312:34
[INFO] [stderr]     |
[INFO] [stderr] 312 |               let new_carry = if (self.c & 0x80 == 0) { false } else { true };
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/emulator/cpu.rs:314:18
[INFO] [stderr]     |
[INFO] [stderr] 314 |               if (self.c == 0) { self.flags.zero = true; } else { self.flags.zero = false; }
[INFO] [stderr]     |                  ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ansi_term::Colour::Red`
[INFO] [stderr]  --> src/emulator/mmu.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ansi_term::Colour::Red;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]   --> src/emulator/mmu.rs:26:13
[INFO] [stderr]    |
[INFO] [stderr] 26 |       match (addr & BITMASK) {
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/emulator/mmu.rs:28:14
[INFO] [stderr]    |
[INFO] [stderr] 28 |           if (addr < 256) {
[INFO] [stderr]    |              ^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]   --> src/emulator/mmu.rs:48:16
[INFO] [stderr]    |
[INFO] [stderr] 48 |       for i in (0..16) {
[INFO] [stderr]    |                ^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/emulator/mmu.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 50 |         if (addr == stack_pointer) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]   --> src/emulator/mmu.rs:64:13
[INFO] [stderr]    |
[INFO] [stderr] 64 |       match (addr & BITMASK) {
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/emulator/mmu.rs:66:14
[INFO] [stderr]    |
[INFO] [stderr] 66 |           if (addr < 256) {
[INFO] [stderr]    |              ^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]   --> src/emulator/mmu.rs:87:15
[INFO] [stderr]    |
[INFO] [stderr] 87 |         match (addr & BITMASK) {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/emulator/mmu.rs:89:16
[INFO] [stderr]    |
[INFO] [stderr] 89 |             if (addr < 256) {
[INFO] [stderr]    |                ^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]   --> src/emulator.rs:55:16
[INFO] [stderr]    |
[INFO] [stderr] 55 |       for i in (0..(256*164)) {
[INFO] [stderr]    |                ^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `while` condition
[INFO] [stderr]   --> src/emulator.rs:66:13
[INFO] [stderr]    |
[INFO] [stderr] 66 |       while (self.running == true) {
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]   --> src/emulator.rs:94:16
[INFO] [stderr]    |
[INFO] [stderr] 94 |       for x in (0..width-1) {
[INFO] [stderr]    |                ^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]   --> src/emulator.rs:95:18
[INFO] [stderr]    |
[INFO] [stderr] 95 |         for y in (0..height-1) {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]   --> src/main.rs:10:14
[INFO] [stderr]    |
[INFO] [stderr] 10 |     for _ in (0..mem_size) {
[INFO] [stderr]    |              ^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/emulator/cpu.rs:272:9
[INFO] [stderr]     |
[INFO] [stderr] 272 |         CALL_NN => {
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `time`
[INFO] [stderr]   --> src/emulator.rs:64:11
[INFO] [stderr]    |
[INFO] [stderr] 64 |       let time = Instant::now();
[INFO] [stderr]    |           ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `now`
[INFO] [stderr]   --> src/emulator/cpu.rs:81:11
[INFO] [stderr]    |
[INFO] [stderr] 81 |       let now = time::Instant::now();
[INFO] [stderr]    |           ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `panic_and_die`
[INFO] [stderr]   --> src/emulator/cpu.rs:90:11
[INFO] [stderr]    |
[INFO] [stderr] 90 |       let panic_and_die = || -> () {  };
[INFO] [stderr]    |           ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_panic_and_die`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `code`
[INFO] [stderr]    --> src/emulator/cpu.rs:326:9
[INFO] [stderr]     |
[INFO] [stderr] 326 |         code => { self.panic_and_die(instr) }
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/emulator/cpu.rs:223:15
[INFO] [stderr]     |
[INFO] [stderr] 223 |           let mut hl =((self.h as u16) <<8)+self.l as u16; 
[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: constant is never used: `NOP`
[INFO] [stderr]   --> src/emulator/cpu.rs:24:1
[INFO] [stderr]    |
[INFO] [stderr] 24 | const NOP : u8 = 0x0;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `dump_vram`
[INFO] [stderr]  --> src/emulator/gpu.rs:2:10
[INFO] [stderr]   |
[INFO] [stderr] 2 |   pub fn dump_vram(&self) {
[INFO] [stderr]   |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `Screen`
[INFO] [stderr]   --> src/emulator.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub struct Screen<'a> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `draw`
[INFO] [stderr]   --> src/emulator.rs:87:6
[INFO] [stderr]    |
[INFO] [stderr] 87 |   fn draw(&mut self) {
[INFO] [stderr]    |      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute
[INFO] [stderr]  --> src/emulator.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![feature(get_mut_unchecked)]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: crate-level attribute should be in the root module
[INFO] [stderr]  --> src/emulator.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #![feature(get_mut_unchecked)]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `loadBIOS` should have a snake case name
[INFO] [stderr]   --> src/emulator.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn loadBIOS(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^ help: convert the identifier to snake case: `load_bios`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RLr_c` should have an upper case name
[INFO] [stderr]   --> src/emulator/cpu.rs:31:7
[INFO] [stderr]    |
[INFO] [stderr] 31 | const RLr_c : u8 = 0x11;
[INFO] [stderr]    |       ^^^^^ help: convert the identifier to upper case: `RLR_C`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LD_IO_nA` should have an upper case name
[INFO] [stderr]   --> src/emulator/cpu.rs:45:7
[INFO] [stderr]    |
[INFO] [stderr] 45 | const LD_IO_nA : u8 = 0xe0;
[INFO] [stderr]    |       ^^^^^^^^ help: convert the identifier to upper case: `LD_IO_N_A`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LDrr_ba` should have an upper case name
[INFO] [stderr]   --> src/emulator/cpu.rs:49:7
[INFO] [stderr]    |
[INFO] [stderr] 49 | const LDrr_ba : u8 = 0x47;
[INFO] [stderr]    |       ^^^^^^^ help: convert the identifier to upper case: `LDRR_BA`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LD_ADE_m` should have an upper case name
[INFO] [stderr]   --> src/emulator/cpu.rs:51:7
[INFO] [stderr]    |
[INFO] [stderr] 51 | const LD_ADE_m : u8 = 0x1a;
[INFO] [stderr]    |       ^^^^^^^^ help: convert the identifier to upper case: `LD_ADE_M`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DECr_A` should have an upper case name
[INFO] [stderr]   --> src/emulator/cpu.rs:54:7
[INFO] [stderr]    |
[INFO] [stderr] 54 | const DECr_A : u8 = 0x3d;
[INFO] [stderr]    |       ^^^^^^ help: convert the identifier to upper case: `DECR_A`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `JR_Zn` should have an upper case name
[INFO] [stderr]   --> src/emulator/cpu.rs:65:7
[INFO] [stderr]    |
[INFO] [stderr] 65 | const JR_Zn : u8 = 0x28;
[INFO] [stderr]    |       ^^^^^ help: convert the identifier to upper case: `JR_ZN`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DECr_C` should have an upper case name
[INFO] [stderr]   --> src/emulator/cpu.rs:66:7
[INFO] [stderr]    |
[INFO] [stderr] 66 | const DECr_C : u8 = 0xd;
[INFO] [stderr]    |       ^^^^^^ help: convert the identifier to upper case: `DECR_C`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `LD_IO_nA` should have an upper case name
[INFO] [stderr]    --> src/emulator/cpu.rs:120:9
[INFO] [stderr]     |
[INFO] [stderr] 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] [stderr]     |       ^^^^^^^^ help: convert the identifier to upper case: `LD_IO_N_A`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `LDrr_ba` should have an upper case name
[INFO] [stderr]    --> src/emulator/cpu.rs:121:9
[INFO] [stderr]     |
[INFO] [stderr] 121 |         LDrr_ba => { self.b = self.a; self.m += 1; self.debug("LDrr_ba"); },
[INFO] [stderr]     |         ^^^^^^^ help: convert the identifier to upper case: `LDRR_BA`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `LD_ADE_m` should have an upper case name
[INFO] [stderr]    --> src/emulator/cpu.rs:132:9
[INFO] [stderr]     |
[INFO] [stderr] 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] [stderr]     |         ^^^^^^^^ help: convert the identifier to upper case: `LD_ADE_M`
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/emulator/cpu.rs:262:33
[INFO] [stderr]     |
[INFO] [stderr] 262 |           self.flags.negative = (i < 0);
[INFO] [stderr]     |                                 ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `DECr_A` should have an upper case name
[INFO] [stderr]    --> src/emulator/cpu.rs:279:9
[INFO] [stderr]     |
[INFO] [stderr] 279 |         DECr_A => {
[INFO] [stderr]     |         ^^^^^^ help: convert the identifier to upper case: `DECR_A`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `DECr_C` should have an upper case name
[INFO] [stderr]    --> src/emulator/cpu.rs:286:9
[INFO] [stderr]     |
[INFO] [stderr] 286 |         DECr_C => {
[INFO] [stderr]     |         ^^^^^^ help: convert the identifier to upper case: `DECR_C`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `JR_Zn` should have an upper case name
[INFO] [stderr]    --> src/emulator/cpu.rs:293:9
[INFO] [stderr]     |
[INFO] [stderr] 293 |         JR_Zn => {
[INFO] [stderr]     |         ^^^^^ help: convert the identifier to upper case: `JR_ZN`
[INFO] [stderr] 
[INFO] [stderr] warning: constant in pattern `RLr_c` should have an upper case name
[INFO] [stderr]    --> src/emulator/cpu.rs:311:13
[INFO] [stderr]     |
[INFO] [stderr] 311 |             RLr_c => { 
[INFO] [stderr]     |             ^^^^^ help: convert the identifier to upper case: `RLR_C`
[INFO] [stderr] 
[INFO] [stderr] warning: 62 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.74s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/euclid-bb5892506a5ffd74)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "0af40d78e1f19ee26e67312ac2c626a53a9602d5b1f6c5f5b5029680f627a797", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0af40d78e1f19ee26e67312ac2c626a53a9602d5b1f6c5f5b5029680f627a797", kill_on_drop: false }`
[INFO] [stdout] 0af40d78e1f19ee26e67312ac2c626a53a9602d5b1f6c5f5b5029680f627a797
