[INFO] updating cached repository https://github.com/bugzmanov/rustness_monster [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] [stderr] From https://github.com/bugzmanov/rustness_monster [INFO] [stderr] f5cc886..933455d master -> master [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 933455d7ae64cf7ee23613244e0ff705147775ab [INFO] testing bugzmanov/rustness_monster against beta-2020-06-03 for beta-1.45-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbugzmanov%2Frustness_monster" "/workspace/builds/worker-10/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-10/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/bugzmanov/rustness_monster on toolchain beta-2020-06-03 [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/bugzmanov/rustness_monster [INFO] removed workspace from git repo https://github.com/bugzmanov/rustness_monster [INFO] finished tweaking git repo https://github.com/bugzmanov/rustness_monster [INFO] tweaked toml for git repo https://github.com/bugzmanov/rustness_monster written to /workspace/builds/worker-10/source/Cargo.toml [INFO] crate git repo https://github.com/bugzmanov/rustness_monster already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] warning: unused manifest key: package.path [INFO] [stderr] error: the lock file /workspace/builds/worker-10/source/Cargo.lock needs to be updated but --locked was passed to prevent this [INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag. [INFO] the lockfile is outdated, regenerating it [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] warning: unused manifest key: package.path [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 7a4162e10ff8a60266b33c42d59b423449be22f76055f99db616fa9d7e34f451 [INFO] running `"docker" "start" "-a" "7a4162e10ff8a60266b33c42d59b423449be22f76055f99db616fa9d7e34f451"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] warning: unused manifest key: package.path [INFO] [stderr] Compiling libc v0.2.71 [INFO] [stderr] Compiling syn v1.0.30 [INFO] [stderr] Compiling nom v5.1.1 [INFO] [stderr] Compiling lexical-core v0.6.7 [INFO] [stderr] Compiling getrandom v0.1.14 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling serde_derive v1.0.111 [INFO] [stderr] Compiling serde v1.0.111 [INFO] [stderr] Compiling serde_json v1.0.53 [INFO] [stderr] Compiling rustness v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::bus::bus::DynamicBusWrapper` [INFO] [stderr] --> src/cpu/cpu.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::bus::bus::DynamicBusWrapper; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/cpu/cpu.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/cpu/cpu.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:91:18 [INFO] [stderr] | [INFO] [stderr] 91 | pub bus: Box, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:946:29 [INFO] [stderr] | [INFO] [stderr] 946 | pub fn new<'b>(bus: Box) -> CPU<'b> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'b` [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mem.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/ppu/ppu.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ppu/ppu.rs:153:38 [INFO] [stderr] | [INFO] [stderr] 153 | let flip_horizontal = if (ppu.oam_data[i+2]>>6 & 1 == 1) { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> src/ppu/ppu.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | 'ololo: for x in (0..=7).rev() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/screen/frame.rs:19:11 [INFO] [stderr] | [INFO] [stderr] 19 | if(base + 2 < self.data.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/ppu/ppu.rs:309:35 [INFO] [stderr] | [INFO] [stderr] 309 | fn write_to_scroll(&mut self, value: u8) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [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: `ZERO_PAGE` [INFO] [stderr] --> src/bus/bus.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK` [INFO] [stderr] --> src/bus/bus.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | const STACK: u16 = 0x0100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `RAM` [INFO] [stderr] --> src/bus/bus.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const RAM: u16 = 0x0200; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IO_REGISTERS` [INFO] [stderr] --> src/bus/bus.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | const IO_REGISTERS: u16 = 0x2000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `ZERO_PAGE` [INFO] [stderr] --> src/cpu/cpu.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK_SIZE` [INFO] [stderr] --> src/cpu/cpu.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const STACK_SIZE: u8 = 0xff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | IRQ, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | / pub(super) const IRQ: Interrupt = Interrupt { [INFO] [stderr] 68 | | itype: InterruptType::IRQ, [INFO] [stderr] 69 | | vector_addr: 0xfffe, [INFO] [stderr] 70 | | b_flag_mask: 0b00100000, [INFO] [stderr] 71 | | cpu_cycles: 2, [INFO] [stderr] 72 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `mem_write_u16` [INFO] [stderr] --> src/cpu/cpu.rs:242:19 [INFO] [stderr] | [INFO] [stderr] 242 | pub(super) fn mem_write_u16(&mut self, pos: u16, data: u16) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `scroll` [INFO] [stderr] --> src/ppu/ppu.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | scroll: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `oamdma` [INFO] [stderr] --> src/ppu/ppu.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | oamdma: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 25 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `rustness::ppu::ppu` [INFO] [stderr] --> src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use rustness::ppu::ppu; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `time::Duration` [INFO] [stderr] --> src/main.rs:11:19 [INFO] [stderr] | [INFO] [stderr] 11 | use std::{rc::Rc, time::Duration}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z` [INFO] [stderr] --> src/main.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | let func = |z: &NesPPU| { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_z` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pc` [INFO] [stderr] --> src/main.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | let pc = bus.read(0xfffc); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_pc` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ffd` [INFO] [stderr] --> src/main.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | let ffd = bus.read(0xfffd); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_ffd` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let mut mem_wraper = DynamicBusWrapper::new(memory.clone()); [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: 6 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 53.77s [INFO] running `"docker" "inspect" "7a4162e10ff8a60266b33c42d59b423449be22f76055f99db616fa9d7e34f451"` [INFO] running `"docker" "rm" "-f" "7a4162e10ff8a60266b33c42d59b423449be22f76055f99db616fa9d7e34f451"` [INFO] [stdout] 7a4162e10ff8a60266b33c42d59b423449be22f76055f99db616fa9d7e34f451 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 534bbaf3c2148f47d6f24d1d563ce37478c9c2563decaccde23fc204fae8769c [INFO] running `"docker" "start" "-a" "534bbaf3c2148f47d6f24d1d563ce37478c9c2563decaccde23fc204fae8769c"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] warning: unused manifest key: package.path [INFO] [stderr] Compiling pretty_assertions v0.6.1 [INFO] [stderr] warning: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::bus::bus::DynamicBusWrapper` [INFO] [stderr] --> src/cpu/cpu.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::bus::bus::DynamicBusWrapper; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/cpu/cpu.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/cpu/cpu.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:91:18 [INFO] [stderr] | [INFO] [stderr] 91 | pub bus: Box, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:946:29 [INFO] [stderr] | [INFO] [stderr] 946 | pub fn new<'b>(bus: Box) -> CPU<'b> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'b` [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mem.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/ppu/ppu.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ppu/ppu.rs:153:38 [INFO] [stderr] | [INFO] [stderr] 153 | let flip_horizontal = if (ppu.oam_data[i+2]>>6 & 1 == 1) { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> src/ppu/ppu.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | 'ololo: for x in (0..=7).rev() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/screen/frame.rs:19:11 [INFO] [stderr] | [INFO] [stderr] 19 | if(base + 2 < self.data.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/ppu/ppu.rs:309:35 [INFO] [stderr] | [INFO] [stderr] 309 | fn write_to_scroll(&mut self, value: u8) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [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: `ZERO_PAGE` [INFO] [stderr] --> src/bus/bus.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK` [INFO] [stderr] --> src/bus/bus.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | const STACK: u16 = 0x0100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `RAM` [INFO] [stderr] --> src/bus/bus.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const RAM: u16 = 0x0200; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IO_REGISTERS` [INFO] [stderr] --> src/bus/bus.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | const IO_REGISTERS: u16 = 0x2000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `ZERO_PAGE` [INFO] [stderr] --> src/cpu/cpu.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK_SIZE` [INFO] [stderr] --> src/cpu/cpu.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const STACK_SIZE: u8 = 0xff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | IRQ, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | / pub(super) const IRQ: Interrupt = Interrupt { [INFO] [stderr] 68 | | itype: InterruptType::IRQ, [INFO] [stderr] 69 | | vector_addr: 0xfffe, [INFO] [stderr] 70 | | b_flag_mask: 0b00100000, [INFO] [stderr] 71 | | cpu_cycles: 2, [INFO] [stderr] 72 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `mem_write_u16` [INFO] [stderr] --> src/cpu/cpu.rs:242:19 [INFO] [stderr] | [INFO] [stderr] 242 | pub(super) fn mem_write_u16(&mut self, pos: u16, data: u16) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `scroll` [INFO] [stderr] --> src/ppu/ppu.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | scroll: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `oamdma` [INFO] [stderr] --> src/ppu/ppu.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | oamdma: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 25 warnings emitted [INFO] [stderr] [INFO] [stderr] Compiling rustness v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused import: `rustness::ppu::ppu` [INFO] [stderr] --> src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use rustness::ppu::ppu; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `time::Duration` [INFO] [stderr] --> src/main.rs:11:19 [INFO] [stderr] | [INFO] [stderr] 11 | use std::{rc::Rc, time::Duration}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z` [INFO] [stderr] --> src/main.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | let func = |z: &NesPPU| { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_z` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pc` [INFO] [stderr] --> src/main.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | let pc = bus.read(0xfffc); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_pc` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ffd` [INFO] [stderr] --> src/main.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | let ffd = bus.read(0xfffd); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_ffd` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let mut mem_wraper = DynamicBusWrapper::new(memory.clone()); [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: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:91:18 [INFO] [stderr] | [INFO] [stderr] 91 | pub bus: Box, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:946:29 [INFO] [stderr] | [INFO] [stderr] 946 | pub fn new<'b>(bus: Box) -> CPU<'b> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'b` [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mem.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/ppu/ppu.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ppu/ppu.rs:153:38 [INFO] [stderr] | [INFO] [stderr] 153 | let flip_horizontal = if (ppu.oam_data[i+2]>>6 & 1 == 1) { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> src/ppu/ppu.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | 'ololo: for x in (0..=7).rev() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/screen/frame.rs:19:11 [INFO] [stderr] | [INFO] [stderr] 19 | if(base + 2 < self.data.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: 6 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/ppu/ppu.rs:309:35 [INFO] [stderr] | [INFO] [stderr] 309 | fn write_to_scroll(&mut self, value: u8) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:971:13 [INFO] [stderr] | [INFO] [stderr] 971 | let mut mem = MockBus::new(); [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: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:980:13 [INFO] [stderr] | [INFO] [stderr] 980 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:994:13 [INFO] [stderr] | [INFO] [stderr] 994 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1005:13 [INFO] [stderr] | [INFO] [stderr] 1005 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1015:13 [INFO] [stderr] | [INFO] [stderr] 1015 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1023:13 [INFO] [stderr] | [INFO] [stderr] 1023 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1030:13 [INFO] [stderr] | [INFO] [stderr] 1030 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1041:13 [INFO] [stderr] | [INFO] [stderr] 1041 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1051:13 [INFO] [stderr] | [INFO] [stderr] 1051 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1061:13 [INFO] [stderr] | [INFO] [stderr] 1061 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1072:13 [INFO] [stderr] | [INFO] [stderr] 1072 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1082:13 [INFO] [stderr] | [INFO] [stderr] 1082 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1093:13 [INFO] [stderr] | [INFO] [stderr] 1093 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1104:13 [INFO] [stderr] | [INFO] [stderr] 1104 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1119:13 [INFO] [stderr] | [INFO] [stderr] 1119 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1134:13 [INFO] [stderr] | [INFO] [stderr] 1134 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1144:13 [INFO] [stderr] | [INFO] [stderr] 1144 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1156:13 [INFO] [stderr] | [INFO] [stderr] 1156 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1167:13 [INFO] [stderr] | [INFO] [stderr] 1167 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1180:13 [INFO] [stderr] | [INFO] [stderr] 1180 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1191:13 [INFO] [stderr] | [INFO] [stderr] 1191 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1203:13 [INFO] [stderr] | [INFO] [stderr] 1203 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1214:13 [INFO] [stderr] | [INFO] [stderr] 1214 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1225:13 [INFO] [stderr] | [INFO] [stderr] 1225 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1236:13 [INFO] [stderr] | [INFO] [stderr] 1236 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1247:13 [INFO] [stderr] | [INFO] [stderr] 1247 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1257:13 [INFO] [stderr] | [INFO] [stderr] 1257 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1269:13 [INFO] [stderr] | [INFO] [stderr] 1269 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1280:13 [INFO] [stderr] | [INFO] [stderr] 1280 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1292:13 [INFO] [stderr] | [INFO] [stderr] 1292 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1302:13 [INFO] [stderr] | [INFO] [stderr] 1302 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1313:13 [INFO] [stderr] | [INFO] [stderr] 1313 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1324:13 [INFO] [stderr] | [INFO] [stderr] 1324 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1334:13 [INFO] [stderr] | [INFO] [stderr] 1334 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1345:13 [INFO] [stderr] | [INFO] [stderr] 1345 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1355:13 [INFO] [stderr] | [INFO] [stderr] 1355 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1365:13 [INFO] [stderr] | [INFO] [stderr] 1365 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1375:13 [INFO] [stderr] | [INFO] [stderr] 1375 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1385:13 [INFO] [stderr] | [INFO] [stderr] 1385 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1395:13 [INFO] [stderr] | [INFO] [stderr] 1395 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1403:13 [INFO] [stderr] | [INFO] [stderr] 1403 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1423:13 [INFO] [stderr] | [INFO] [stderr] 1423 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1432:13 [INFO] [stderr] | [INFO] [stderr] 1432 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1441:13 [INFO] [stderr] | [INFO] [stderr] 1441 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1450:13 [INFO] [stderr] | [INFO] [stderr] 1450 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1459:13 [INFO] [stderr] | [INFO] [stderr] 1459 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1469:13 [INFO] [stderr] | [INFO] [stderr] 1469 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1478:13 [INFO] [stderr] | [INFO] [stderr] 1478 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1490:13 [INFO] [stderr] | [INFO] [stderr] 1490 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1508:13 [INFO] [stderr] | [INFO] [stderr] 1508 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1525:13 [INFO] [stderr] | [INFO] [stderr] 1525 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1554:13 [INFO] [stderr] | [INFO] [stderr] 1554 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1569:13 [INFO] [stderr] | [INFO] [stderr] 1569 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1586:13 [INFO] [stderr] | [INFO] [stderr] 1586 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1599:13 [INFO] [stderr] | [INFO] [stderr] 1599 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1614:13 [INFO] [stderr] | [INFO] [stderr] 1614 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1626:13 [INFO] [stderr] | [INFO] [stderr] 1626 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1641:13 [INFO] [stderr] | [INFO] [stderr] 1641 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1656:13 [INFO] [stderr] | [INFO] [stderr] 1656 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1718:13 [INFO] [stderr] | [INFO] [stderr] 1718 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `ZERO_PAGE` [INFO] [stderr] --> src/bus/bus.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK` [INFO] [stderr] --> src/bus/bus.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | const STACK: u16 = 0x0100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `RAM` [INFO] [stderr] --> src/bus/bus.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const RAM: u16 = 0x0200; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IO_REGISTERS` [INFO] [stderr] --> src/bus/bus.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | const IO_REGISTERS: u16 = 0x2000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `ZERO_PAGE` [INFO] [stderr] --> src/cpu/cpu.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK_SIZE` [INFO] [stderr] --> src/cpu/cpu.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const STACK_SIZE: u8 = 0xff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | IRQ, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | / pub(super) const IRQ: Interrupt = Interrupt { [INFO] [stderr] 68 | | itype: InterruptType::IRQ, [INFO] [stderr] 69 | | vector_addr: 0xfffe, [INFO] [stderr] 70 | | b_flag_mask: 0b00100000, [INFO] [stderr] 71 | | cpu_cycles: 2, [INFO] [stderr] 72 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `mem_write_u16` [INFO] [stderr] --> src/cpu/cpu.rs:242:19 [INFO] [stderr] | [INFO] [stderr] 242 | pub(super) fn mem_write_u16(&mut self, pos: u16, data: u16) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `scroll` [INFO] [stderr] --> src/ppu/ppu.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | scroll: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `oamdma` [INFO] [stderr] --> src/ppu/ppu.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | oamdma: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `line` [INFO] [stderr] --> src/ppu/ppu.rs:443:9 [INFO] [stderr] | [INFO] [stderr] 443 | line: usize, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 83 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 5.95s [INFO] running `"docker" "inspect" "534bbaf3c2148f47d6f24d1d563ce37478c9c2563decaccde23fc204fae8769c"` [INFO] running `"docker" "rm" "-f" "534bbaf3c2148f47d6f24d1d563ce37478c9c2563decaccde23fc204fae8769c"` [INFO] [stdout] 534bbaf3c2148f47d6f24d1d563ce37478c9c2563decaccde23fc204fae8769c [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] e4d0581bc8b303bb451a26eab1e05b3cef9807970daebf3feb751afd8d880a18 [INFO] running `"docker" "start" "-a" "e4d0581bc8b303bb451a26eab1e05b3cef9807970daebf3feb751afd8d880a18"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] warning: unused manifest key: package.path [INFO] [stderr] warning: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::bus::bus::DynamicBusWrapper` [INFO] [stderr] --> src/cpu/cpu.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::bus::bus::DynamicBusWrapper; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/cpu/cpu.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/cpu/cpu.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:91:18 [INFO] [stderr] | [INFO] [stderr] 91 | pub bus: Box, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:946:29 [INFO] [stderr] | [INFO] [stderr] 946 | pub fn new<'b>(bus: Box) -> CPU<'b> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'b` [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mem.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/ppu/ppu.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ppu/ppu.rs:153:38 [INFO] [stderr] | [INFO] [stderr] 153 | let flip_horizontal = if (ppu.oam_data[i+2]>>6 & 1 == 1) { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> src/ppu/ppu.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | 'ololo: for x in (0..=7).rev() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/screen/frame.rs:19:11 [INFO] [stderr] | [INFO] [stderr] 19 | if(base + 2 < self.data.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/ppu/ppu.rs:309:35 [INFO] [stderr] | [INFO] [stderr] 309 | fn write_to_scroll(&mut self, value: u8) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [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: `ZERO_PAGE` [INFO] [stderr] --> src/bus/bus.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK` [INFO] [stderr] --> src/bus/bus.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | const STACK: u16 = 0x0100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `RAM` [INFO] [stderr] --> src/bus/bus.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const RAM: u16 = 0x0200; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IO_REGISTERS` [INFO] [stderr] --> src/bus/bus.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | const IO_REGISTERS: u16 = 0x2000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `ZERO_PAGE` [INFO] [stderr] --> src/cpu/cpu.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK_SIZE` [INFO] [stderr] --> src/cpu/cpu.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const STACK_SIZE: u8 = 0xff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | IRQ, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | / pub(super) const IRQ: Interrupt = Interrupt { [INFO] [stderr] 68 | | itype: InterruptType::IRQ, [INFO] [stderr] 69 | | vector_addr: 0xfffe, [INFO] [stderr] 70 | | b_flag_mask: 0b00100000, [INFO] [stderr] 71 | | cpu_cycles: 2, [INFO] [stderr] 72 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `mem_write_u16` [INFO] [stderr] --> src/cpu/cpu.rs:242:19 [INFO] [stderr] | [INFO] [stderr] 242 | pub(super) fn mem_write_u16(&mut self, pos: u16, data: u16) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `scroll` [INFO] [stderr] --> src/ppu/ppu.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | scroll: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `oamdma` [INFO] [stderr] --> src/ppu/ppu.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | oamdma: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 25 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mod.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:91:18 [INFO] [stderr] | [INFO] [stderr] 91 | pub bus: Box, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu/cpu.rs:946:29 [INFO] [stderr] | [INFO] [stderr] 946 | pub fn new<'b>(bus: Box) -> CPU<'b> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn CpuBus + 'b` [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::bus::bus::CpuBus` [INFO] [stderr] --> src/cpu/mem.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::bus::bus::CpuBus; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::Rng` [INFO] [stderr] --> src/ppu/ppu.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use rand::Rng; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/ppu/ppu.rs:153:38 [INFO] [stderr] | [INFO] [stderr] 153 | let flip_horizontal = if (ppu.oam_data[i+2]>>6 & 1 == 1) { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> src/ppu/ppu.rs:170:17 [INFO] [stderr] | [INFO] [stderr] 170 | 'ololo: for x in (0..=7).rev() { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/screen/frame.rs:19:11 [INFO] [stderr] | [INFO] [stderr] 19 | if(base + 2 < self.data.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/ppu/ppu.rs:309:35 [INFO] [stderr] | [INFO] [stderr] 309 | fn write_to_scroll(&mut self, value: u8) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:971:13 [INFO] [stderr] | [INFO] [stderr] 971 | let mut mem = MockBus::new(); [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: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:980:13 [INFO] [stderr] | [INFO] [stderr] 980 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:994:13 [INFO] [stderr] | [INFO] [stderr] 994 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1005:13 [INFO] [stderr] | [INFO] [stderr] 1005 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1015:13 [INFO] [stderr] | [INFO] [stderr] 1015 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1023:13 [INFO] [stderr] | [INFO] [stderr] 1023 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1030:13 [INFO] [stderr] | [INFO] [stderr] 1030 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1041:13 [INFO] [stderr] | [INFO] [stderr] 1041 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1051:13 [INFO] [stderr] | [INFO] [stderr] 1051 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1061:13 [INFO] [stderr] | [INFO] [stderr] 1061 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1072:13 [INFO] [stderr] | [INFO] [stderr] 1072 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1082:13 [INFO] [stderr] | [INFO] [stderr] 1082 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1093:13 [INFO] [stderr] | [INFO] [stderr] 1093 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1104:13 [INFO] [stderr] | [INFO] [stderr] 1104 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1119:13 [INFO] [stderr] | [INFO] [stderr] 1119 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1134:13 [INFO] [stderr] | [INFO] [stderr] 1134 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1144:13 [INFO] [stderr] | [INFO] [stderr] 1144 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1156:13 [INFO] [stderr] | [INFO] [stderr] 1156 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1167:13 [INFO] [stderr] | [INFO] [stderr] 1167 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1180:13 [INFO] [stderr] | [INFO] [stderr] 1180 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1191:13 [INFO] [stderr] | [INFO] [stderr] 1191 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1203:13 [INFO] [stderr] | [INFO] [stderr] 1203 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1214:13 [INFO] [stderr] | [INFO] [stderr] 1214 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1225:13 [INFO] [stderr] | [INFO] [stderr] 1225 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1236:13 [INFO] [stderr] | [INFO] [stderr] 1236 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1247:13 [INFO] [stderr] | [INFO] [stderr] 1247 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1257:13 [INFO] [stderr] | [INFO] [stderr] 1257 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1269:13 [INFO] [stderr] | [INFO] [stderr] 1269 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1280:13 [INFO] [stderr] | [INFO] [stderr] 1280 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1292:13 [INFO] [stderr] | [INFO] [stderr] 1292 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1302:13 [INFO] [stderr] | [INFO] [stderr] 1302 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1313:13 [INFO] [stderr] | [INFO] [stderr] 1313 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1324:13 [INFO] [stderr] | [INFO] [stderr] 1324 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1334:13 [INFO] [stderr] | [INFO] [stderr] 1334 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1345:13 [INFO] [stderr] | [INFO] [stderr] 1345 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1355:13 [INFO] [stderr] | [INFO] [stderr] 1355 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1365:13 [INFO] [stderr] | [INFO] [stderr] 1365 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1375:13 [INFO] [stderr] | [INFO] [stderr] 1375 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1385:13 [INFO] [stderr] | [INFO] [stderr] 1385 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1395:13 [INFO] [stderr] | [INFO] [stderr] 1395 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1403:13 [INFO] [stderr] | [INFO] [stderr] 1403 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1423:13 [INFO] [stderr] | [INFO] [stderr] 1423 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1432:13 [INFO] [stderr] | [INFO] [stderr] 1432 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1441:13 [INFO] [stderr] | [INFO] [stderr] 1441 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1450:13 [INFO] [stderr] | [INFO] [stderr] 1450 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1459:13 [INFO] [stderr] | [INFO] [stderr] 1459 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1469:13 [INFO] [stderr] | [INFO] [stderr] 1469 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1478:13 [INFO] [stderr] | [INFO] [stderr] 1478 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1490:13 [INFO] [stderr] | [INFO] [stderr] 1490 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1508:13 [INFO] [stderr] | [INFO] [stderr] 1508 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1525:13 [INFO] [stderr] | [INFO] [stderr] 1525 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1554:13 [INFO] [stderr] | [INFO] [stderr] 1554 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1569:13 [INFO] [stderr] | [INFO] [stderr] 1569 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1586:13 [INFO] [stderr] | [INFO] [stderr] 1586 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1599:13 [INFO] [stderr] | [INFO] [stderr] 1599 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1614:13 [INFO] [stderr] | [INFO] [stderr] 1614 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1626:13 [INFO] [stderr] | [INFO] [stderr] 1626 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1641:13 [INFO] [stderr] | [INFO] [stderr] 1641 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1656:13 [INFO] [stderr] | [INFO] [stderr] 1656 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cpu/cpu.rs:1718:13 [INFO] [stderr] | [INFO] [stderr] 1718 | let mut mem = MockBus::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ppu/ppu.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let mut rng = rand::thread_rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `ZERO_PAGE` [INFO] [stderr] --> src/bus/bus.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK` [INFO] [stderr] --> src/bus/bus.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | const STACK: u16 = 0x0100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `RAM` [INFO] [stderr] --> src/bus/bus.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const RAM: u16 = 0x0200; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IO_REGISTERS` [INFO] [stderr] --> src/bus/bus.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | const IO_REGISTERS: u16 = 0x2000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `ZERO_PAGE` [INFO] [stderr] --> src/cpu/cpu.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | const ZERO_PAGE: u16 = 0x0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STACK_SIZE` [INFO] [stderr] --> src/cpu/cpu.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | const STACK_SIZE: u8 = 0xff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | IRQ, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `IRQ` [INFO] [stderr] --> src/cpu/cpu.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | / pub(super) const IRQ: Interrupt = Interrupt { [INFO] [stderr] 68 | | itype: InterruptType::IRQ, [INFO] [stderr] 69 | | vector_addr: 0xfffe, [INFO] [stderr] 70 | | b_flag_mask: 0b00100000, [INFO] [stderr] 71 | | cpu_cycles: 2, [INFO] [stderr] 72 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `mem_write_u16` [INFO] [stderr] --> src/cpu/cpu.rs:242:19 [INFO] [stderr] | [INFO] [stderr] 242 | pub(super) fn mem_write_u16(&mut self, pos: u16, data: u16) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `scroll` [INFO] [stderr] --> src/ppu/ppu.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | scroll: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `oamdma` [INFO] [stderr] --> src/ppu/ppu.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | oamdma: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rustness::ppu::ppu` [INFO] [stderr] --> src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use rustness::ppu::ppu; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `time::Duration` [INFO] [stderr] --> src/main.rs:11:19 [INFO] [stderr] | [INFO] [stderr] 11 | use std::{rc::Rc, time::Duration}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z` [INFO] [stderr] --> src/main.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | let func = |z: &NesPPU| { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_z` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pc` [INFO] [stderr] --> src/main.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | let pc = bus.read(0xfffc); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_pc` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ffd` [INFO] [stderr] --> src/main.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | let ffd = bus.read(0xfffd); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_ffd` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | let mut mem_wraper = DynamicBusWrapper::new(memory.clone()); [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: 6 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: field is never read: `line` [INFO] [stderr] --> src/ppu/ppu.rs:443:9 [INFO] [stderr] | [INFO] [stderr] 443 | line: usize, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 83 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/rustness-077e5b429225b0ea [INFO] [stdout] [INFO] [stdout] running 86 tests [INFO] [stdout] test bus::bus::test::test_ppu_register_mirrors ... ok [INFO] [stdout] test bus::bus::test::test_write_to_0x4014_oam_dma ... ok [INFO] [stdout] test cpu::cpu::test::test_0x29_and_flags ... ok [INFO] [stdout] test cpu::cpu::test::test_0x24_bit ... ok [INFO] [stdout] test cpu::cpu::test::test_0x20_jsr ... ok [INFO] [stdout] test cpu::cpu::test::test_0x09_ora_flags ... ok [INFO] [stdout] test cpu::cpu::test::test_0x00_nmi ... ok [INFO] [stdout] test cpu::cpu::test::test_0x48_pla_flags ... ok [INFO] [stdout] test cpu::cpu::test::test_0x48_pha ... ok [INFO] [stdout] test cpu::cpu::test::test_0x46_lsr_memory_flags ... ok [INFO] [stdout] test cpu::cpu::test::test_0x68_pla ... ok [INFO] [stdout] test cpu::cpu::test::test_0x69_adc ... ok [INFO] [stdout] test cpu::cpu::test::test_0x2e_rol_memory_flags_carry ... ok [INFO] [stdout] test cpu::cpu::test::test_0x69_adc_overflow_cary_flag ... ok [INFO] [stdout] test cpu::cpu::test::test_0x69_adc_carry_zero_flag ... ok [INFO] [stdout] test cpu::cpu::test::test_0x6a_ror_accumulator_zero_falg ... ok [INFO] [stdout] test cpu::cpu::test::test_0x2e_rol_memory_flags ... ok [INFO] [stdout] test bus::bus::test::test_ram_mirrors ... ok [INFO] [stdout] test cpu::cpu::test::test_0x0a_asl_accumulator ... ok [INFO] [stdout] test cpu::cpu::test::test_0x60_rts ... ok [INFO] [stdout] test cpu::cpu::test::test_0x18_clc ... ok [INFO] [stdout] test cpu::cpu::test::test_0x6e_zero_flag ... ok [INFO] [stdout] test cpu::cpu::test::test_0x8d_sta ... ok [INFO] [stdout] test cpu::cpu::test::test_0x85_sta ... ok [INFO] [stdout] test cpu::cpu::test::test_0x9a_txs ... ok [INFO] [stdout] test cpu::cpu::test::test_0x99_sta_absolute_y ... ok [INFO] [stdout] test cpu::cpu::test::test_0x98_tya ... ok [INFO] [stdout] test cpu::cpu::test::test_0x9d_sta_absolute_x ... ok [INFO] [stdout] test cpu::cpu::test::test_0x95_sta ... ok [INFO] [stdout] test cpu::cpu::test::test_0x8a_txa ... ok [INFO] [stdout] test cpu::cpu::test::test_0x06_asl_memory ... ok [INFO] [stdout] test cpu::cpu::test::test_0xa8_tay ... ok [INFO] [stdout] test cpu::cpu::test::test_0xba_tsx ... ok [INFO] [stdout] test cpu::cpu::test::test_0x06_asl_memory_flags ... ok [INFO] [stdout] test cpu::cpu::test::test_0xb4_ldy_zero_page_x ... ok [INFO] [stdout] test cpu::cpu::test::test_0xaa_tax ... ok [INFO] [stdout] test cpu::cpu::test::test_0xc8_iny ... ok [INFO] [stdout] test cpu::cpu::test::test_0xc9_cmp_immidiate ... ok [INFO] [stdout] test cpu::cpu::test::test_0x6c_jmp_indirect ... ok [INFO] [stdout] test cpu::cpu::test::test_0xe9_sbc ... ok [INFO] [stdout] test cpu::cpu::test::test_0x40_rti ... ok [INFO] [stdout] test cpu::cpu::test::test_0xd0_bne_snippet ... ok [INFO] [stdout] test cpu::cpu::test::test_0xf6_inc_memory_zero_page_x ... ok [INFO] [stdout] test cpu::cpu::test::test_ololo ... ok [INFO] [stdout] test cpu::cpu::test::test_0xe8_inx ... ok [INFO] [stdout] test cpu::cpu::test::test_0xea_nop ... ok [INFO] [stdout] test cpu::cpu::test::test_larger_program ... ok [INFO] [stdout] test cpu::cpu::test::test_transform ... ok [INFO] [stdout] test cpu::cpu::test::test_unofficial_0x6b_arr ... ok [INFO] [stdout] test cpu::cpu::test::test_unoffical_0x0b_anc ... ok [INFO] [stdout] test cpu::cpu::test::test_0xbe_ldx_absolute_y ... ok [INFO] [stdout] test cpu::cpu::test::test_0x00_brk ... ok [INFO] [stdout] test cpu::cpu::test::test_0x38_sec ... ok [INFO] [stdout] test disasm::test::test ... ok [INFO] [stdout] test cpu::cpu::test::test_0x4c_jmp_absolute ... ok [INFO] [stdout] test cpu::cpu::test::test_0x81_sta ... ok [INFO] [stdout] test disasm::test::test_slice_end_of_program ... ok [INFO] [stdout] test ppu::ppu::test::test_oam_read_write ... ok [INFO] [stdout] test cpu::test::test_format_mem_access ... ok [INFO] [stdout] test disasm::test::test_slice ... ok [INFO] [stdout] test cpu::cpu::test::test_0xe9_sbc_negative ... ok [INFO] [stdout] test ppu::ppu::test::test_ppu_vram_mirroring ... ok [INFO] [stdout] test ppu::ppu::test::test_oam_dma ... ok [INFO] [stdout] test ppu::ppu::test::test_ppu_vram_reads_step_32 ... ok [INFO] [stdout] test ppu::ppu::test::test_ppu_vram_reads ... ok [INFO] [stdout] test ppu::ppu::test::test_ppu_vram_reads_cross_page ... ok [INFO] [stdout] test ppu::ppu::test::test_ppu_vram_writes ... ok [INFO] [stdout] test ppu::ppu::test::test_vram_horizontal_mirror ... ok [INFO] [stdout] test ppu::ppu::test::test_vram_vertical_mirror ... ok [INFO] [stdout] test ppu::ppu::test::test_read_status_resets_vblank ... ok [INFO] [stdout] test rom::ines::test_ines_rom::test ... ok [INFO] [stdout] test rom::ines::test_ines_rom::test_broken ... ok [INFO] [stdout] test cpu::cpu::test::test_0xa9_load_into_register_a ... ok [INFO] [stdout] test ppu::ppu::test::test_read_status_resets_latch ... ok [INFO] [stdout] test cpu::cpu::test::test_0x6e_ror_memory_flags_carry ... ok [INFO] [stdout] test rom::ines::test_ines_rom::test_nes2_is_not_supported ... ok [INFO] [stdout] test cpu::cpu::test::test_0xd0_bne ... ok [INFO] [stdout] test cpu::cpu::test::test_unofficial_0xcb_axs ... ok [INFO] [stdout] test cpu::cpu::test::test_unofficial_0x2f_rla ... ok [INFO] [stdout] test cpu::cpu::test::test_091_sta ... ok [INFO] [stdout] test cpu::cpu::test::test_0x49_eor_flags ... ok [INFO] [stdout] test cpu::cpu::test::test_0xe9_sbc_overflow ... ok [INFO] [stdout] test cpu::cpu::test::test_stack_overflowing ... ok [INFO] [stdout] test cpu::test::test_format_trace ... ok [INFO] [stdout] test cpu::cpu::test::test_unofficial_0xc7_dcp ... ok [INFO] [stdout] test ppu::ppu::test::test_ppu_writing_to_chr_rom_is_prohibited ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 86 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/rustness-2219e5823f5af648 [INFO] [stderr] Doc-tests rustness [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 [INFO] [stdout] [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 [INFO] [stdout] [INFO] running `"docker" "inspect" "e4d0581bc8b303bb451a26eab1e05b3cef9807970daebf3feb751afd8d880a18"` [INFO] running `"docker" "rm" "-f" "e4d0581bc8b303bb451a26eab1e05b3cef9807970daebf3feb751afd8d880a18"` [INFO] [stdout] e4d0581bc8b303bb451a26eab1e05b3cef9807970daebf3feb751afd8d880a18