[INFO] cloning repository https://github.com/mp3/ccnes
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mp3/ccnes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmp3%2Fccnes", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmp3%2Fccnes'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1280997af700f5c52884275529c0299fbcf1eacb
[INFO] checking mp3/ccnes against try#724e78794d2cf06eef820a24c9a4608d63435e1d for pr-149145
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmp3%2Fccnes" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mp3/ccnes
[INFO] finished tweaking git repo https://github.com/mp3/ccnes
[INFO] tweaked toml for git repo https://github.com/mp3/ccnes written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mp3/ccnes on toolchain 724e78794d2cf06eef820a24c9a4608d63435e1d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mp3/ccnes already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1f55c3ce6d0c1ef4f83a4569fd46100bc2dbaf85dc0ea8205060b832714793a7
[INFO] running `Command { std: "docker" "start" "-a" "1f55c3ce6d0c1ef4f83a4569fd46100bc2dbaf85dc0ea8205060b832714793a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1f55c3ce6d0c1ef4f83a4569fd46100bc2dbaf85dc0ea8205060b832714793a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f55c3ce6d0c1ef4f83a4569fd46100bc2dbaf85dc0ea8205060b832714793a7", kill_on_drop: false }`
[INFO] [stdout] 1f55c3ce6d0c1ef4f83a4569fd46100bc2dbaf85dc0ea8205060b832714793a7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+724e78794d2cf06eef820a24c9a4608d63435e1d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cadb42a26d2653b2e2e52ea6878cf50b32feba5f8f6a38f97f98242f69b0c39d
[INFO] running `Command { std: "docker" "start" "-a" "cadb42a26d2653b2e2e52ea6878cf50b32feba5f8f6a38f97f98242f69b0c39d", kill_on_drop: false }`
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking clap_builder v4.5.41
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.100
[INFO] [stderr]    Compiling bumpalo v3.19.0
[INFO] [stderr]    Compiling rustversion v1.0.21
[INFO] [stderr]    Compiling wasm-bindgen v0.2.100
[INFO] [stderr]    Compiling cc v1.2.30
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling sdl2 v0.35.2
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling sdl2-sys v0.35.2
[INFO] [stderr]     Checking tempfile v3.20.0
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.100
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.41
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.100
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking clap v4.5.41
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.100
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking js-sys v0.3.77
[INFO] [stderr]     Checking console_error_panic_hook v0.1.7
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking ccnes-core v0.1.0 (/opt/rustwide/workdir/core)
[INFO] [stderr]     Checking web-sys v0.3.77
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.50
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stdout] warning: fields `scroll_x`, `scroll_y`, `addr`, `write_toggle`, and `rendering_tables` are never read
[INFO] [stdout]   --> core/src/ppu/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Ppu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     scroll_x: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 18 |     scroll_y: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 19 |     addr: u16,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     write_toggle: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     rendering_tables: optimized::RenderingTables,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ppu` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_byte` is never used
[INFO] [stdout]    --> core/src/ppu/mod.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout]  83 | impl Ppu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn write_byte(&mut self, addr: u16, value: u8, cartridge: &mut Cartridge) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `frame_counter` is never read
[INFO] [stdout]   --> core/src/apu/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Apu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     frame_counter: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Apu` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cutoff_freq` and `sample_rate` are never read
[INFO] [stdout]  --> core/src/apu/filters.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct LowPassFilter {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] 8 |     cutoff_freq: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 9 |     sample_rate: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LowPassFilter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_cutoff` is never used
[INFO] [stdout]   --> core/src/apu/filters.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl LowPassFilter {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set_cutoff(&mut self, cutoff_freq: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cutoff_freq` and `sample_rate` are never read
[INFO] [stdout]   --> core/src/apu/filters.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct HighPassFilter {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 50 |     cutoff_freq: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 51 |     sample_rate: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HighPassFilter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_cutoff` is never used
[INFO] [stdout]   --> core/src/apu/filters.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl HighPassFilter {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn set_cutoff(&mut self, cutoff_freq: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `free_space`, `clear`, and `is_empty` are never used
[INFO] [stdout]   --> core/src/apu/buffer.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl AudioRingBuffer {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn free_space(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadSafeAudioBuffer` is never constructed
[INFO] [stdout]   --> core/src/apu/buffer.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct ThreadSafeAudioBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `write`, `read`, `stats`, and `clone` are never used
[INFO] [stdout]    --> core/src/apu/buffer.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl ThreadSafeAudioBuffer {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout]  79 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn write(&self, samples: &[f32]) -> Result<usize, &'static str> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn read(&self, output: &mut [f32]) -> Result<usize, &'static str> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn stats(&self) -> BufferStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn clone(&self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BufferStats` is never constructed
[INFO] [stdout]    --> core/src/apu/buffer.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct BufferStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sample_rate` is never read
[INFO] [stdout]    --> core/src/apu/buffer.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct AdaptiveBuffer {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 137 |     sample_rate: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AdaptiveBuffer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_a12` and `a12_filter` are never read
[INFO] [stdout]   --> core/src/cartridge/mappers/mapper4.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Mapper4 {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     last_a12: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 29 |     a12_filter: u8,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mapper4` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clock_scanline` is never used
[INFO] [stdout]    --> core/src/cartridge/mappers/mapper4.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Mapper4 {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn clock_scanline(&mut self, addr: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `prg_rom_size`, `chr_rom_size`, `irq_scanline`, and `in_frame` are never read
[INFO] [stdout]   --> core/src/cartridge/mappers/mapper5.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Mapper5 {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout]  8 |     // ROM sizes
[INFO] [stdout]  9 |     prg_rom_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 10 |     chr_rom_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     irq_scanline: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 35 |     irq_compare: u8,
[INFO] [stdout] 36 |     in_frame: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mapper5` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `chr_rom_size` is never read
[INFO] [stdout]   --> core/src/cartridge/mappers/mapper9.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Mapper9 {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     chr_rom_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mapper9` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_chr_latch` is never used
[INFO] [stdout]   --> core/src/cartridge/mappers/mapper9.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Mapper9 {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn update_chr_latch(&mut self, addr: u16) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stdout] warning: unused import: `SaveStateError`
[INFO] [stdout]  --> core/tests/savestate_test.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ccnes_core::savestate::{SaveStateManager, SaveStateError};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `offset` is never read
[INFO] [stdout]    --> core/tests/audio_demo.rs:107:55
[INFO] [stdout]     |
[INFO] [stdout] 107 |     prg[offset] = ((melody_start >> 8) | 0xC0) as u8; offset += 1;
[INFO] [stdout]     |                                                       ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `offset` is never read
[INFO] [stdout]   --> core/benches/performance_bench.rs:41:58
[INFO] [stdout]    |
[INFO] [stdout] 41 |     rom_data[offset] = (0x80 | (loop_start >> 8)) as u8; offset += 1;
[INFO] [stdout]    |                                                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `offset` is never read
[INFO] [stdout]    --> core/tests/audio_test.rs:122:55
[INFO] [stdout]     |
[INFO] [stdout] 122 |     rom[offset] = ((0x8000 + offset - 4) >> 8) as u8; offset += 1;
[INFO] [stdout]     |                                                       ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scroll_x`, `scroll_y`, `addr`, `write_toggle`, and `rendering_tables` are never read
[INFO] [stdout]   --> core/src/ppu/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Ppu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     scroll_x: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 18 |     scroll_y: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 19 |     addr: u16,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     write_toggle: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     rendering_tables: optimized::RenderingTables,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Ppu` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_byte` is never used
[INFO] [stdout]    --> core/src/ppu/mod.rs:295:8
[INFO] [stdout]     |
[INFO] [stdout]  83 | impl Ppu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn write_byte(&mut self, addr: u16, value: u8, cartridge: &mut Cartridge) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `frame_counter` is never read
[INFO] [stdout]   --> core/src/apu/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Apu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     frame_counter: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Apu` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cutoff_freq` and `sample_rate` are never read
[INFO] [stdout]  --> core/src/apu/filters.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct LowPassFilter {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] 8 |     cutoff_freq: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 9 |     sample_rate: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LowPassFilter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_cutoff` is never used
[INFO] [stdout]   --> core/src/apu/filters.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl LowPassFilter {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set_cutoff(&mut self, cutoff_freq: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cutoff_freq` and `sample_rate` are never read
[INFO] [stdout]   --> core/src/apu/filters.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct HighPassFilter {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 50 |     cutoff_freq: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 51 |     sample_rate: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HighPassFilter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_cutoff` is never used
[INFO] [stdout]   --> core/src/apu/filters.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl HighPassFilter {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn set_cutoff(&mut self, cutoff_freq: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> core/src/apu/buffer.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl AudioRingBuffer {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read` and `clone` are never used
[INFO] [stdout]    --> core/src/apu/buffer.rs:94:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl ThreadSafeAudioBuffer {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn read(&self, output: &mut [f32]) -> Result<usize, &'static str> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn clone(&self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `free_space`, `fill_level`, `is_full`, and `is_empty` are never read
[INFO] [stdout]    --> core/src/apu/buffer.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct BufferStats {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 125 |     pub available: usize,
[INFO] [stdout] 126 |     pub free_space: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 127 |     pub fill_level: f32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 128 |     pub is_full: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 129 |     pub is_empty: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BufferStats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sample_rate` is never read
[INFO] [stdout]    --> core/src/apu/buffer.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct AdaptiveBuffer {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 137 |     sample_rate: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AdaptiveBuffer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_a12` and `a12_filter` are never read
[INFO] [stdout]   --> core/src/cartridge/mappers/mapper4.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Mapper4 {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     last_a12: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 29 |     a12_filter: u8,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mapper4` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clock_scanline` is never used
[INFO] [stdout]    --> core/src/cartridge/mappers/mapper4.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Mapper4 {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn clock_scanline(&mut self, addr: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `prg_rom_size`, `chr_rom_size`, `irq_scanline`, and `in_frame` are never read
[INFO] [stdout]   --> core/src/cartridge/mappers/mapper5.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Mapper5 {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout]  8 |     // ROM sizes
[INFO] [stdout]  9 |     prg_rom_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 10 |     chr_rom_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     irq_scanline: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 35 |     irq_compare: u8,
[INFO] [stdout] 36 |     in_frame: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mapper5` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `chr_rom_size` is never read
[INFO] [stdout]   --> core/src/cartridge/mappers/mapper9.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Mapper9 {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     chr_rom_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mapper9` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_chr_latch` is never used
[INFO] [stdout]   --> core/src/cartridge/mappers/mapper9.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Mapper9 {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn update_chr_latch(&mut self, addr: u16) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking wasm-logger v0.2.0
[INFO] [stderr]     Checking ccnes-wasm v0.1.0 (/opt/rustwide/workdir/wasm)
[INFO] [stderr]     Checking ccnes v0.1.0 (/opt/rustwide/workdir/native)
[INFO] [stdout] warning: unused import: `SaveStateError`
[INFO] [stdout]  --> native/src/main.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ccnes_core::{Cartridge, Nes, Controller, ControllerButton, SaveStateError};
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SaveStateError`
[INFO] [stdout]  --> native/src/main.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ccnes_core::{Cartridge, Nes, Controller, ControllerButton, SaveStateError};
[INFO] [stdout]   |                                                                ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DebuggerState`
[INFO] [stdout]  --> native/src/debugger_ui.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ccnes_core::{Debugger, DebuggerState, BreakpointType, DebugInfo};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DebuggerState`
[INFO] [stdout]  --> native/src/debugger_ui.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ccnes_core::{Debugger, DebuggerState, BreakpointType, DebugInfo};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> native/src/main.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut window_builder = video_subsystem
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> native/src/main.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut window_builder = video_subsystem
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> native/src/main.rs:75:30
[INFO] [stdout]    |
[INFO] [stdout] 75 |       let mut window_builder = video_subsystem
[INFO] [stdout]    |  ______________________________^
[INFO] [stdout] 76 | |         .window("CCNES", NES_WIDTH * args.scale, NES_HEIGHT * args.scale)
[INFO] [stdout]    | |_________________________________________________________________________^ creates a temporary value which is freed while still in use
[INFO] [stdout] 77 |           .position_centered();
[INFO] [stdout]    |                               - temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 80 |           window_builder.fullscreen_desktop();
[INFO] [stdout]    |           -------------- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout] help: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    |
[INFO] [stdout] 75 ~     let mut binding = video_subsystem
[INFO] [stdout] 76 +         .window("CCNES", NES_WIDTH * args.scale, NES_HEIGHT * args.scale);
[INFO] [stdout] 77 ~     let mut window_builder = binding
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]   --> native/src/main.rs:75:30
[INFO] [stdout]    |
[INFO] [stdout] 75 |       let mut window_builder = video_subsystem
[INFO] [stdout]    |  ______________________________^
[INFO] [stdout] 76 | |         .window("CCNES", NES_WIDTH * args.scale, NES_HEIGHT * args.scale)
[INFO] [stdout]    | |_________________________________________________________________________^ creates a temporary value which is freed while still in use
[INFO] [stdout] 77 |           .position_centered();
[INFO] [stdout]    |                               - temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 80 |           window_builder.fullscreen_desktop();
[INFO] [stdout]    |           -------------- borrow later used here
[INFO] [stdout]    |
[INFO] [stdout] help: consider using a `let` binding to create a longer lived value
[INFO] [stdout]    |
[INFO] [stdout] 75 ~     let mut binding = video_subsystem
[INFO] [stdout] 76 +         .window("CCNES", NES_WIDTH * args.scale, NES_HEIGHT * args.scale);
[INFO] [stdout] 77 ~     let mut window_builder = binding
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0716`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0716`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ccnes` (bin "ccnes" test) due to 1 previous error; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `ccnes` (bin "ccnes") due to 1 previous error; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "cadb42a26d2653b2e2e52ea6878cf50b32feba5f8f6a38f97f98242f69b0c39d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cadb42a26d2653b2e2e52ea6878cf50b32feba5f8f6a38f97f98242f69b0c39d", kill_on_drop: false }`
[INFO] [stdout] cadb42a26d2653b2e2e52ea6878cf50b32feba5f8f6a38f97f98242f69b0c39d
