[INFO] fetching crate blaze-vt 0.1.0...
[INFO] checking blaze-vt-0.1.0 against 49a6044d37d694890450f52ceaceb66277a36b1e for pr-161154
[INFO] extracting crate blaze-vt 0.1.0 into /workspace/builds/worker-6-tc2/source
[INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate blaze-vt 0.1.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate blaze-vt 0.1.0
[INFO] tweaked toml for crates.io crate blaze-vt 0.1.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate blaze-vt 0.1.0 on toolchain 49a6044d37d694890450f52ceaceb66277a36b1e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+49a6044d37d694890450f52ceaceb66277a36b1e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate blaze-vt 0.1.0 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" "+49a6044d37d694890450f52ceaceb66277a36b1e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 59f3887b8125c5e765ec1109ead7d5d19c967ba1cb611f9756769196b72835a9
[INFO] running `Command { std: "docker" "start" "59f3887b8125c5e765ec1109ead7d5d19c967ba1cb611f9756769196b72835a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "59f3887b8125c5e765ec1109ead7d5d19c967ba1cb611f9756769196b72835a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "59f3887b8125c5e765ec1109ead7d5d19c967ba1cb611f9756769196b72835a9" "/opt/rustwide/cargo-home/bin/cargo" "+49a6044d37d694890450f52ceaceb66277a36b1e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "59f3887b8125c5e765ec1109ead7d5d19c967ba1cb611f9756769196b72835a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "59f3887b8125c5e765ec1109ead7d5d19c967ba1cb611f9756769196b72835a9" "/opt/rustwide/cargo-home/bin/cargo" "+49a6044d37d694890450f52ceaceb66277a36b1e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling wayland-sys v0.31.11
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling wayland-backend v0.3.15
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking arrayvec v0.7.7
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking bytes v1.12.0
[INFO] [stderr]    Compiling naga v29.0.3
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]     Checking codespan-reporting v0.13.1
[INFO] [stderr]     Checking spirv v0.4.0+sdk-1.4.341.0
[INFO] [stderr]    Compiling khronos-egl v6.0.0
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking compact_str v0.9.1
[INFO] [stderr]     Checking lru v0.18.0
[INFO] [stderr]    Compiling wgpu-hal v29.0.3
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking http v1.4.2
[INFO] [stderr]     Checking glow v0.17.0
[INFO] [stderr]     Checking time v0.3.49
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]    Compiling wgpu-core v29.0.3
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]    Compiling wgpu v29.0.3
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking shellish_parse v2.2.0
[INFO] [stderr]     Checking pollster v0.4.0
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]     Checking vt-push-parser v0.13.1
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]     Checking hex-literal v1.1.0
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking http-range-header v0.4.2
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking ordered-float v5.3.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerocopy-derive v0.8.52
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling i8051-proc-macro v0.22.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling type-mapper v0.1.2
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking wgpu-types v29.0.3
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking kasuari v0.4.12
[INFO] [stderr]     Checking gpu-allocator v0.28.0
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking zerocopy v0.8.52
[INFO] [stderr]     Checking i8051 v0.22.0
[INFO] [stderr]     Checking wayland-client v0.31.14
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking pty-process v0.5.3
[INFO] [stderr]     Checking lk201 v0.1.1
[INFO] [stderr]    Compiling rstest_macros v0.26.1
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking ratatui-core v0.1.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]     Checking ultraviolet v0.10.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking ssu v0.1.1
[INFO] [stderr]     Checking i8051-disassembler v0.22.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking wayland-protocols v0.32.13
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking wayland-cursor v0.31.14
[INFO] [stderr]     Checking ratatui-widgets v0.3.2
[INFO] [stderr]     Checking ratatui-crossterm v0.1.2
[INFO] [stderr]     Checking ratatui-macros v0.7.2
[INFO] [stderr]     Checking ratatui v0.30.2
[INFO] [stderr]     Checking rstest v0.26.1
[INFO] [stderr]     Checking i8051-debug-tui v0.22.0
[INFO] [stderr]     Checking hyper v1.10.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower-http v0.7.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking axum v0.8.9
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.12
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.12
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking winit_input_helper v0.17.0
[INFO] [stderr]     Checking wgpu-naga-bridge v29.0.3
[INFO] [stderr]     Checking wgpu-core-deps-windows-linux-android v29.0.3
[INFO] [stderr]     Checking pixels v0.17.1
[INFO] [stderr]     Checking blaze-vt v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::machine::generic::rom::ROM`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::machine::generic::rom::ROM;
[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: `crate::machine::generic::rom::ROM`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::machine::generic::rom::ROM;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/host/screen/headless.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | /     loop {
[INFO] [stdout] 63 | |         system.step(&mut cpu);
[INFO] [stdout] 64 | |         #[cfg(all(feature = "pc-trace", not(target_arch = "wasm32")))]
[INFO] [stdout] 65 | |         system.flush_pc_trace_if_due();
[INFO] [stdout] 66 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 67 |       Ok(system.instruction_count)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/host/screen/headless.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | /     loop {
[INFO] [stdout] 63 | |         system.step(&mut cpu);
[INFO] [stdout] 64 | |         #[cfg(all(feature = "pc-trace", not(target_arch = "wasm32")))]
[INFO] [stdout] 65 | |         system.flush_pc_trace_if_due();
[INFO] [stdout] 66 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 67 |       Ok(system.instruction_count)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/host/screen/ratatui.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 |render, row, attr, row_flags| {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_double_width`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let is_double_width = (row_attrs >> 2) & 3 != 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_double_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_is_132`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:167:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |             let row_is_132 = vram[vram_base + row_idx as usize * 2] & 1 != 0;
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_is_132`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_header`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:222:25
[INFO] [stdout]     |
[INFO] [stdout] 222 |                     let row_header = format!("{:02X}|", row >> 8);
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debugger`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:317:5
[INFO] [stdout]     |
[INFO] [stdout] 317 |     debugger: Option<Debugger>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debugger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:53:27
[INFO] [stdout]    |
[INFO] [stdout] 53 |             |render, row, attr, row_flags| {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `render`
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let render = decode_vram(
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_render`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cause`
[INFO] [stdout]   --> src/host/wgpu/policy.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn plan_tick(&mut self, cause: winit::event::StartCause) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_cause`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/host/screen/ratatui.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 |render, row, attr, row_flags| {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_double_width`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let is_double_width = (row_attrs >> 2) & 3 != 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_double_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_is_132`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:167:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |             let row_is_132 = vram[vram_base + row_idx as usize * 2] & 1 != 0;
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_is_132`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_header`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:222:25
[INFO] [stdout]     |
[INFO] [stdout] 222 |                     let row_header = format!("{:02X}|", row >> 8);
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debugger`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:317:5
[INFO] [stdout]     |
[INFO] [stdout] 317 |     debugger: Option<Debugger>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debugger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:53:27
[INFO] [stdout]    |
[INFO] [stdout] 53 |             |render, row, attr, row_flags| {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `render`
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let render = decode_vram(
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_render`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cause`
[INFO] [stdout]   --> src/host/wgpu/policy.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn plan_tick(&mut self, cause: winit::event::StartCause) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_cause`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]   --> src/machine/vt420/breakpoints.rs:66:65
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub(crate) fn create_breakpoints(breakpoints: &mut Breakpoints, code: &ROM) {
[INFO] [stdout]    |                                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn interest<C: CpuView>(&self, cpu: &C, addr: u8) -> bool {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:83:32
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn read<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn read_latch<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/machine/vt420/memory.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn interest<C: CpuView>(&self, cpu: &C, addr: u8) -> bool {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/machine/vt420/memory.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn read<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]   --> src/machine/vt420/breakpoints.rs:66:65
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub(crate) fn create_breakpoints(breakpoints: &mut Breakpoints, code: &ROM) {
[INFO] [stdout]    |                                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn interest<C: CpuView>(&self, cpu: &C, addr: u8) -> bool {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verbose`
[INFO] [stdout]    --> src/machine/vt420/static_analysis.rs:137:54
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn auto_analyze(mut info: RomStaticAnalysisInfo, verbose: bool) -> Result<Db, io::Error> {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:83:32
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn read<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn read_latch<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bank`
[INFO] [stdout]    --> src/machine/vt420/static_analysis.rs:249:37
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn mark_thunks(region: &mut Region, bank: Bank, thunks: &[Thunk]) {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_bank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/machine/vt420/memory.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn interest<C: CpuView>(&self, cpu: &C, addr: u8) -> bool {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/machine/vt420/memory.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn read<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verbose`
[INFO] [stdout]    --> src/machine/vt420/static_analysis.rs:137:54
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn auto_analyze(mut info: RomStaticAnalysisInfo, verbose: bool) -> Result<Db, io::Error> {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom_len`
[INFO] [stdout]   --> src/machine/vt420/mod.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let rom_len = rom.len();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rom_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bank`
[INFO] [stdout]    --> src/machine/vt420/static_analysis.rs:249:37
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn mark_thunks(region: &mut Region, bank: Bank, thunks: &[Thunk]) {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_bank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt510/memory.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn prepare_write<C: CpuView>(&self, cpu: &C, addr: u32, value: u8) -> Self::WriteValue {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nvr`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         nvr: Option<&Path>,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_nvr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm1`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         comm1: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm2`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         comm2: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt52x/memory.rs:24:41
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn prepare_write<C: CpuView>(&self, cpu: &C, addr: u32, value: u8) -> Self::WriteValue {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nvr`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         nvr: Option<&Path>,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_nvr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm1`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         comm1: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm2`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         comm2: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommSession` is never constructed
[INFO] [stdout]   --> src/host/comm.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct CommSession {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tick` is never used
[INFO] [stdout]   --> src/host/comm.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl CommSession {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 19 |     pub fn tick(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect_duart` is never used
[INFO] [stdout]   --> src/host/comm.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn connect_duart(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `connect_session` is never used
[INFO] [stdout]   --> src/host/comm.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn connect_session(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VT420_BORDER_SET` is never used
[INFO] [stdout]   --> src/host/demo/comm.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const VT420_BORDER_SET: border::Set = border::Set {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_MENU_ITEMS` is never used
[INFO] [stdout]   --> src/host/demo/comm.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const PAGE_MENU_ITEMS: [&str; 11] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DemoCommSend` is never constructed
[INFO] [stdout]   --> src/host/demo/comm.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct DemoCommSend {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DemoCommRecv` is never constructed
[INFO] [stdout]   --> src/host/demo/comm.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct DemoCommRecv {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DemoComm` is never constructed
[INFO] [stdout]   --> src/host/demo/comm.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct DemoComm;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blank_line` is never used
[INFO] [stdout]    --> src/host/demo/comm.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn blank_line<'a>() -> Line<'a> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `line` is never used
[INFO] [stdout]    --> src/host/demo/comm.rs:265:4
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn line<'a>(spans: &[Span<'a>]) -> Line<'a> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `span` is never used
[INFO] [stdout]    --> src/host/demo/comm.rs:269:4
[INFO] [stdout]     |
[INFO] [stdout] 269 | fn span<'a>(text: &'a str) -> Span<'a> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold` is never used
[INFO] [stdout]    --> src/host/demo/comm.rs:273:4
[INFO] [stdout]     |
[INFO] [stdout] 273 | fn bold<'a>(text: &'a str) -> Span<'a> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `underlined` is never used
[INFO] [stdout]    --> src/host/demo/comm.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn underlined<'a>(text: &'a str) -> Span<'a> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reversed` is never used
[INFO] [stdout]    --> src/host/demo/comm.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn reversed<'a>(text: &'a str) -> Span<'a> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_demo_text` is never used
[INFO] [stdout]    --> src/host/demo/comm.rs:285:4
[INFO] [stdout]     |
[INFO] [stdout] 285 | fn create_demo_text<'a>() -> Paragraph<'a> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VT_DOUBLE_WIDTH_LINE` is never used
[INFO] [stdout]   --> src/host/demo/ratatui_backend.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const VT_DOUBLE_WIDTH_LINE: ratatui::style::Color = ratatui::style::Color::Rgb(1, 1, 1);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VT_DOUBLE_HEIGHT_TOP_LINE` is never used
[INFO] [stdout]   --> src/host/demo/ratatui_backend.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const VT_DOUBLE_HEIGHT_TOP_LINE: ratatui::style::Color = ratatui::style::Color::Rgb(1, 1, 2);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VT_DOUBLE_HEIGHT_BOTTOM_LINE` is never used
[INFO] [stdout]   --> src/host/demo/ratatui_backend.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const VT_DOUBLE_HEIGHT_BOTTOM_LINE: ratatui::style::Color = ratatui::style::Color::Rgb(1, 1, 3);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DecBackend` is never constructed
[INFO] [stdout]   --> src/host/demo/ratatui_backend.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct DecBackend {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `send_bytes` are never used
[INFO] [stdout]   --> src/host/demo/ratatui_backend.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl DecBackend {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(output: WakeableQueueSend) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn send_bytes(&self, buf: &[u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_bytes`, `write_str`, `write_csi`, `set_cursor_pos`, and `apply_style` are never used
[INFO] [stdout]   --> src/host/demo/ratatui_backend.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl DecBackend {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 50 |     fn write_bytes(&self, bytes: &[u8]) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn write_str(&self, s: &str) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn write_csi(&self, params: &str, final_byte: u8) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn set_cursor_pos(&self, x: u16, y: u16) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     fn apply_style(&self, style: &ratatui::style::Style) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CrosstermKeyboard` is never constructed
[INFO] [stdout]  --> src/host/lk201/crossterm.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CrosstermKeyboard {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `KeyboardCommand` is never used
[INFO] [stdout]   --> src/host/lk201/crossterm.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum KeyboardCommand {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_keyboard` is never used
[INFO] [stdout]   --> src/host/lk201/crossterm.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl CrosstermKeyboard {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 21 |     pub fn update_keyboard(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_keyboard` is never used
[INFO] [stdout]  --> src/host/lk201/winit.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn update_keyboard(input: &WinitInputHelper, sender: &LK201Sender) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_logging_file` is never used
[INFO] [stdout]  --> src/host/logging.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn setup_logging_file(level: tracing::Level) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_logging_stdio` is never used
[INFO] [stdout]   --> src/host/logging.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn setup_logging_stdio(level: tracing::Level) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_logging_debugger` is never used
[INFO] [stdout]   --> src/host/logging.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn setup_logging_debugger(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `logging_targets` is never used
[INFO] [stdout]   --> src/host/logging.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn logging_targets(level: tracing::Level) -> Targets {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/host/screen/headless.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn run<S: TerminalSystem>(
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]   --> src/host/screen/ratatui.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Screen<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DisplayMode` is never used
[INFO] [stdout]   --> src/host/screen/ratatui.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum DisplayMode {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `display_mode` are never used
[INFO] [stdout]   --> src/host/screen/ratatui.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<'a> Screen<'a> {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 38 |     pub fn new(vram: &'a [u8], mapper: &'a Mapper) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn display_mode(mut self, mode: DisplayMode) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/host/screen/ratatui.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn run(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_inner` is never used
[INFO] [stdout]    --> src/host/screen/ratatui.rs:314:4
[INFO] [stdout]     |
[INFO] [stdout] 314 | fn run_inner(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FramebufferRender` is never constructed
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FramebufferRender {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render` is never used
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl FramebufferRender {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 23 |     pub fn render(&self, system: &System, frame: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/host/screen/framebuffer.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn run(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_debugger` is never used
[INFO] [stdout]    --> src/host/screen/framebuffer.rs:308:4
[INFO] [stdout]     |
[INFO] [stdout] 308 | fn run_debugger(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_char` is never used
[INFO] [stdout]  --> src/host/screen/unicode.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn map_char(ch: u16) -> Option<char> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REAL_WIDTH` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const REAL_WIDTH: u32 = 800;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REAL_HEIGHT` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const REAL_HEIGHT: u32 = 416;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASPECT_RATIO` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ASPECT_RATIO: f64 = 4.0 / 3.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_WIDTH` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const WINDOW_WIDTH: u32 = REAL_WIDTH as u32;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_HEIGHT` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const WINDOW_HEIGHT: u32 = (REAL_WIDTH as f64 / ASPECT_RATIO as f64) as u32;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PixelsState` is never used
[INFO] [stdout]   --> src/host/wgpu/mod.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum PixelsState {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Terminal` is never constructed
[INFO] [stdout]   --> src/host/wgpu/mod.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Terminal {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `window`, `update_controls`, and `init_window` are never used
[INFO] [stdout]   --> src/host/wgpu/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Terminal {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 59 |     fn new(
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn window(&self) -> &winit::window::Window {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn update_controls(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn init_window(&mut self, event_loop: &winit::event_loop::ActiveEventLoop) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_pixels_error` is never used
[INFO] [stdout]    --> src/host/wgpu/mod.rs:282:4
[INFO] [stdout]     |
[INFO] [stdout] 282 | fn log_pixels_error(e: Error) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/host/wgpu/mod.rs:305:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub fn main(
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_pixels` is never used
[INFO] [stdout]    --> src/host/wgpu/mod.rs:371:10
[INFO] [stdout]     |
[INFO] [stdout] 371 | async fn create_pixels(window: Arc<winit::window::Window>) -> Result<Pixels<'static>, Error> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_FPS` is never used
[INFO] [stdout]  --> src/host/wgpu/policy.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const UPDATE_FPS: u32 = 60;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RENDER_FPS` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const RENDER_FPS: u32 = 30;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDLE_RENDER_FPS` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const IDLE_RENDER_FPS: u32 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_STEP` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const UPDATE_STEP: Duration = Duration::from_micros(1_000_000 / UPDATE_FPS as u64);
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RENDER_STEP` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const RENDER_STEP: Duration = Duration::from_micros(1_000_000 / RENDER_FPS as u64);
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDLE_RENDER_STEP` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const IDLE_RENDER_STEP: Duration = Duration::from_micros(1_000_000 / IDLE_RENDER_FPS as u64);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IdlePlan` is never constructed
[INFO] [stdout]   --> src/host/wgpu/policy.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct IdlePlan {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FramePolicy` is never constructed
[INFO] [stdout]   --> src/host/wgpu/policy.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct FramePolicy {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/host/wgpu/policy.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl FramePolicy {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  43 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn set_idle_render_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn plan_tick(&mut self, cause: winit::event::StartCause) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn plan_idle(&mut self) -> IdlePlan {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn on_presented(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn on_present_failed_retry(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn on_request_redraw(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `READ_2681` is never used
[INFO] [stdout]    --> src/machine/generic/duart.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const READ_2681: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRITE_2681` is never used
[INFO] [stdout]    --> src/machine/generic/duart.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const WRITE_2681: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `System` is never constructed
[INFO] [stdout]   --> src/machine/vt420/mod.rs:36:19
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) struct System {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `step` are never used
[INFO] [stdout]    --> src/machine/vt420/mod.rs:75:19
[INFO] [stdout]     |
[INFO] [stdout]  74 | impl System {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  75 |     pub(crate) fn new(
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub(crate) fn step(&mut self, cpu: &mut Cpu) {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BREAKPOINTS` is never used
[INFO] [stdout]  --> src/machine/vt420/breakpoints.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) const BREAKPOINTS: &[(u32, &str)] = &[
[INFO] [stdout]   |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_breakpoints` is never used
[INFO] [stdout]   --> src/machine/vt420/breakpoints.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub(crate) fn create_breakpoints(breakpoints: &mut Breakpoints, code: &ROM) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_SIZE` is never used
[INFO] [stdout]   --> src/machine/vt420/static_analysis.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ROM_SIZE: usize = 2 * BANK_SIZE;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `2` is never read
[INFO] [stdout]    --> src/machine/vt420/video.rs:287:30
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub struct CellFlags(u8, u8, u8);
[INFO] [stdout]     |            ---------         ^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_kbd` and `out_kbd` are never read
[INFO] [stdout]   --> src/machine/vt510/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct System {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     in_kbd: mpsc::Sender<u8>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     out_kbd: mpsc::Receiver<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_kbd` and `out_kbd` are never read
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct System {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     in_kbd: mpsc::Sender<u8>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     out_kbd: mpsc::Receiver<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom_len`
[INFO] [stdout]   --> src/machine/vt420/mod.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let rom_len = rom.len();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rom_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt510/memory.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn prepare_write<C: CpuView>(&self, cpu: &C, addr: u32, value: u8) -> Self::WriteValue {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nvr`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         nvr: Option<&Path>,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_nvr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm1`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         comm1: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm2`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         comm2: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt52x/memory.rs:24:41
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn prepare_write<C: CpuView>(&self, cpu: &C, addr: u32, value: u8) -> Self::WriteValue {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nvr`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         nvr: Option<&Path>,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_nvr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm1`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         comm1: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm2`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         comm2: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CrosstermKeyboard` is never constructed
[INFO] [stdout]  --> src/host/lk201/crossterm.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CrosstermKeyboard {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `KeyboardCommand` is never used
[INFO] [stdout]   --> src/host/lk201/crossterm.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum KeyboardCommand {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_keyboard` is never used
[INFO] [stdout]   --> src/host/lk201/crossterm.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl CrosstermKeyboard {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 21 |     pub fn update_keyboard(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_keyboard` is never used
[INFO] [stdout]  --> src/host/lk201/winit.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn update_keyboard(input: &WinitInputHelper, sender: &LK201Sender) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_logging_file` is never used
[INFO] [stdout]  --> src/host/logging.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn setup_logging_file(level: tracing::Level) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_logging_stdio` is never used
[INFO] [stdout]   --> src/host/logging.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn setup_logging_stdio(level: tracing::Level) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setup_logging_debugger` is never used
[INFO] [stdout]   --> src/host/logging.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn setup_logging_debugger(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `logging_targets` is never used
[INFO] [stdout]   --> src/host/logging.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn logging_targets(level: tracing::Level) -> Targets {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/host/screen/headless.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn run<S: TerminalSystem>(
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Screen` is never constructed
[INFO] [stdout]   --> src/host/screen/ratatui.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Screen<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DisplayMode` is never used
[INFO] [stdout]   --> src/host/screen/ratatui.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum DisplayMode {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `display_mode` are never used
[INFO] [stdout]   --> src/host/screen/ratatui.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<'a> Screen<'a> {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 38 |     pub fn new(vram: &'a [u8], mapper: &'a Mapper) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn display_mode(mut self, mode: DisplayMode) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/host/screen/ratatui.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn run(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_inner` is never used
[INFO] [stdout]    --> src/host/screen/ratatui.rs:314:4
[INFO] [stdout]     |
[INFO] [stdout] 314 | fn run_inner(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FramebufferRender` is never constructed
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FramebufferRender {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render` is never used
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl FramebufferRender {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 23 |     pub fn render(&self, system: &System, frame: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/host/screen/framebuffer.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn run(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_debugger` is never used
[INFO] [stdout]    --> src/host/screen/framebuffer.rs:308:4
[INFO] [stdout]     |
[INFO] [stdout] 308 | fn run_debugger(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REAL_WIDTH` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const REAL_WIDTH: u32 = 800;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REAL_HEIGHT` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const REAL_HEIGHT: u32 = 416;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASPECT_RATIO` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ASPECT_RATIO: f64 = 4.0 / 3.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_WIDTH` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const WINDOW_WIDTH: u32 = REAL_WIDTH as u32;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_HEIGHT` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const WINDOW_HEIGHT: u32 = (REAL_WIDTH as f64 / ASPECT_RATIO as f64) as u32;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PixelsState` is never used
[INFO] [stdout]   --> src/host/wgpu/mod.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum PixelsState {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Terminal` is never constructed
[INFO] [stdout]   --> src/host/wgpu/mod.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Terminal {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `window`, `update_controls`, and `init_window` are never used
[INFO] [stdout]   --> src/host/wgpu/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Terminal {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 59 |     fn new(
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn window(&self) -> &winit::window::Window {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn update_controls(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn init_window(&mut self, event_loop: &winit::event_loop::ActiveEventLoop) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_pixels_error` is never used
[INFO] [stdout]    --> src/host/wgpu/mod.rs:282:4
[INFO] [stdout]     |
[INFO] [stdout] 282 | fn log_pixels_error(e: Error) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/host/wgpu/mod.rs:305:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub fn main(
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_pixels` is never used
[INFO] [stdout]    --> src/host/wgpu/mod.rs:371:10
[INFO] [stdout]     |
[INFO] [stdout] 371 | async fn create_pixels(window: Arc<winit::window::Window>) -> Result<Pixels<'static>, Error> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_FPS` is never used
[INFO] [stdout]  --> src/host/wgpu/policy.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const UPDATE_FPS: u32 = 60;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RENDER_FPS` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const RENDER_FPS: u32 = 30;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDLE_RENDER_FPS` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const IDLE_RENDER_FPS: u32 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPDATE_STEP` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const UPDATE_STEP: Duration = Duration::from_micros(1_000_000 / UPDATE_FPS as u64);
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RENDER_STEP` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const RENDER_STEP: Duration = Duration::from_micros(1_000_000 / RENDER_FPS as u64);
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDLE_RENDER_STEP` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const IDLE_RENDER_STEP: Duration = Duration::from_micros(1_000_000 / IDLE_RENDER_FPS as u64);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IdlePlan` is never constructed
[INFO] [stdout]   --> src/host/wgpu/policy.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct IdlePlan {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FramePolicy` is never constructed
[INFO] [stdout]   --> src/host/wgpu/policy.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct FramePolicy {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/host/wgpu/policy.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl FramePolicy {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  43 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn set_idle_render_enabled(&mut self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn plan_tick(&mut self, cause: winit::event::StartCause) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn plan_idle(&mut self) -> IdlePlan {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn on_presented(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn on_present_failed_retry(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn on_request_redraw(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `READ_2681` is never used
[INFO] [stdout]    --> src/machine/generic/duart.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const READ_2681: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRITE_2681` is never used
[INFO] [stdout]    --> src/machine/generic/duart.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const WRITE_2681: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BREAKPOINTS` is never used
[INFO] [stdout]  --> src/machine/vt420/breakpoints.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) const BREAKPOINTS: &[(u32, &str)] = &[
[INFO] [stdout]   |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_breakpoints` is never used
[INFO] [stdout]   --> src/machine/vt420/breakpoints.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub(crate) fn create_breakpoints(breakpoints: &mut Breakpoints, code: &ROM) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_SIZE` is never used
[INFO] [stdout]   --> src/machine/vt420/static_analysis.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ROM_SIZE: usize = 2 * BANK_SIZE;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `2` is never read
[INFO] [stdout]    --> src/machine/vt420/video.rs:287:30
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub struct CellFlags(u8, u8, u8);
[INFO] [stdout]     |            ---------         ^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_kbd` and `out_kbd` are never read
[INFO] [stdout]   --> src/machine/vt510/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct System {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     in_kbd: mpsc::Sender<u8>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     out_kbd: mpsc::Receiver<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_kbd` and `out_kbd` are never read
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct System {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     in_kbd: mpsc::Sender<u8>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     out_kbd: mpsc::Receiver<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `single_shift_left` is never used
[INFO] [stdout]    --> examples/char-square.rs:155:4
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn single_shift_left(n: u8) -> &'static [u8] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::machine::generic::rom::ROM`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::machine::generic::rom::ROM;
[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: `crate::machine::generic::rom::ROM`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::machine::generic::rom::ROM;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/host/screen/headless.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | /     loop {
[INFO] [stdout] 63 | |         system.step(&mut cpu);
[INFO] [stdout] 64 | |         #[cfg(all(feature = "pc-trace", not(target_arch = "wasm32")))]
[INFO] [stdout] 65 | |         system.flush_pc_trace_if_due();
[INFO] [stdout] 66 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 67 |       Ok(system.instruction_count)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/host/screen/headless.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | /     loop {
[INFO] [stdout] 63 | |         system.step(&mut cpu);
[INFO] [stdout] 64 | |         #[cfg(all(feature = "pc-trace", not(target_arch = "wasm32")))]
[INFO] [stdout] 65 | |         system.flush_pc_trace_if_due();
[INFO] [stdout] 66 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 67 |       Ok(system.instruction_count)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/host/screen/ratatui.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 |render, row, attr, row_flags| {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_double_width`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let is_double_width = (row_attrs >> 2) & 3 != 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_double_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_is_132`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:167:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |             let row_is_132 = vram[vram_base + row_idx as usize * 2] & 1 != 0;
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_is_132`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_header`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:222:25
[INFO] [stdout]     |
[INFO] [stdout] 222 |                     let row_header = format!("{:02X}|", row >> 8);
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debugger`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:317:5
[INFO] [stdout]     |
[INFO] [stdout] 317 |     debugger: Option<Debugger>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debugger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:53:27
[INFO] [stdout]    |
[INFO] [stdout] 53 |             |render, row, attr, row_flags| {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `render`
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let render = decode_vram(
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_render`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/host/screen/ratatui.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 |render, row, attr, row_flags| {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_double_width`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let is_double_width = (row_attrs >> 2) & 3 != 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_double_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_is_132`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:167:17
[INFO] [stdout]     |
[INFO] [stdout] 167 |             let row_is_132 = vram[vram_base + row_idx as usize * 2] & 1 != 0;
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_is_132`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_header`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:222:25
[INFO] [stdout]     |
[INFO] [stdout] 222 |                     let row_header = format!("{:02X}|", row >> 8);
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cause`
[INFO] [stdout]   --> src/host/wgpu/policy.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn plan_tick(&mut self, cause: winit::event::StartCause) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_cause`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debugger`
[INFO] [stdout]    --> src/host/screen/ratatui.rs:317:5
[INFO] [stdout]     |
[INFO] [stdout] 317 |     debugger: Option<Debugger>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debugger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:53:27
[INFO] [stdout]    |
[INFO] [stdout] 53 |             |render, row, attr, row_flags| {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `render`
[INFO] [stdout]   --> src/host/screen/framebuffer.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let render = decode_vram(
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_render`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cause`
[INFO] [stdout]   --> src/host/wgpu/policy.rs:79:33
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn plan_tick(&mut self, cause: winit::event::StartCause) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_cause`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]   --> src/machine/vt420/breakpoints.rs:66:65
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub(crate) fn create_breakpoints(breakpoints: &mut Breakpoints, code: &ROM) {
[INFO] [stdout]    |                                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn interest<C: CpuView>(&self, cpu: &C, addr: u8) -> bool {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:83:32
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn read<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn read_latch<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/machine/vt420/memory.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn interest<C: CpuView>(&self, cpu: &C, addr: u8) -> bool {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]   --> src/machine/vt420/breakpoints.rs:66:65
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub(crate) fn create_breakpoints(breakpoints: &mut Breakpoints, code: &ROM) {
[INFO] [stdout]    |                                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/machine/vt420/memory.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn read<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn interest<C: CpuView>(&self, cpu: &C, addr: u8) -> bool {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:83:32
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn read<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt420/memory.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn read_latch<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/machine/vt420/memory.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn interest<C: CpuView>(&self, cpu: &C, addr: u8) -> bool {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/machine/vt420/memory.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn read<C: CpuView>(&self, cpu: &C, addr: u8) -> u8 {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verbose`
[INFO] [stdout]    --> src/machine/vt420/static_analysis.rs:137:54
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn auto_analyze(mut info: RomStaticAnalysisInfo, verbose: bool) -> Result<Db, io::Error> {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bank`
[INFO] [stdout]    --> src/machine/vt420/static_analysis.rs:249:37
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn mark_thunks(region: &mut Region, bank: Bank, thunks: &[Thunk]) {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_bank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verbose`
[INFO] [stdout]    --> src/machine/vt420/static_analysis.rs:137:54
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn auto_analyze(mut info: RomStaticAnalysisInfo, verbose: bool) -> Result<Db, io::Error> {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bank`
[INFO] [stdout]    --> src/machine/vt420/static_analysis.rs:249:37
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn mark_thunks(region: &mut Region, bank: Bank, thunks: &[Thunk]) {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_bank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom_len`
[INFO] [stdout]   --> src/machine/vt420/mod.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let rom_len = rom.len();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rom_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rom_len`
[INFO] [stdout]   --> src/machine/vt420/mod.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let rom_len = rom.len();
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rom_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt510/memory.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn prepare_write<C: CpuView>(&self, cpu: &C, addr: u32, value: u8) -> Self::WriteValue {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nvr`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         nvr: Option<&Path>,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_nvr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm1`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         comm1: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm2`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         comm2: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt52x/memory.rs:24:41
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn prepare_write<C: CpuView>(&self, cpu: &C, addr: u32, value: u8) -> Self::WriteValue {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt510/memory.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn prepare_write<C: CpuView>(&self, cpu: &C, addr: u32, value: u8) -> Self::WriteValue {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nvr`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         nvr: Option<&Path>,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_nvr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm1`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         comm1: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm2`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         comm2: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nvr`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         nvr: Option<&Path>,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_nvr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm1`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         comm1: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm2`
[INFO] [stdout]   --> src/machine/vt510/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         comm2: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/machine/vt52x/memory.rs:24:41
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn prepare_write<C: CpuView>(&self, cpu: &C, addr: u32, value: u8) -> Self::WriteValue {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nvr`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         nvr: Option<&Path>,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_nvr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm1`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         comm1: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `comm2`
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         comm2: Option<SessionConfig>,
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_comm2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:318:13
[INFO] [stdout]     |
[INFO] [stdout] 318 |         for i in 0..100_000_000 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/main.rs:416:9
[INFO] [stdout]     |
[INFO] [stdout] 416 |     let start_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction_count`
[INFO] [stdout]    --> src/main.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 430 |     let instruction_count = if args.benchmark {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:318:13
[INFO] [stdout]     |
[INFO] [stdout] 318 |         for i in 0..100_000_000 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/main.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 496 |     let start_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction_count`
[INFO] [stdout]    --> src/main.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let instruction_count = if args.benchmark {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASPECT_RATIO` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ASPECT_RATIO: f64 = 4.0 / 3.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_WIDTH` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const WINDOW_WIDTH: u32 = REAL_WIDTH as u32;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_HEIGHT` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const WINDOW_HEIGHT: u32 = (REAL_WIDTH as f64 / ASPECT_RATIO as f64) as u32;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `paused` is never read
[INFO] [stdout]   --> src/host/wgpu/mod.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Terminal {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     paused: bool,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDLE_RENDER_FPS` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const IDLE_RENDER_FPS: u32 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDLE_RENDER_STEP` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const IDLE_RENDER_STEP: Duration = Duration::from_micros(1_000_000 / IDLE_RENDER_FPS as u64);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `idle_render_enabled` is never read
[INFO] [stdout]   --> src/host/wgpu/policy.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct FramePolicy {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     idle_render_enabled: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `set_idle_render_enabled` are never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl FramePolicy {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn set_idle_render_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `READ_2681` is never used
[INFO] [stdout]    --> src/machine/generic/duart.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const READ_2681: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRITE_2681` is never used
[INFO] [stdout]    --> src/machine/generic/duart.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const WRITE_2681: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_SIZE` is never used
[INFO] [stdout]   --> src/machine/vt420/static_analysis.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ROM_SIZE: usize = 2 * BANK_SIZE;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `2` is never read
[INFO] [stdout]    --> src/machine/vt420/video.rs:287:30
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub struct CellFlags(u8, u8, u8);
[INFO] [stdout]     |            ---------         ^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_kbd` and `out_kbd` are never read
[INFO] [stdout]   --> src/machine/vt510/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct System {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     in_kbd: mpsc::Sender<u8>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     out_kbd: mpsc::Receiver<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_kbd` and `out_kbd` are never read
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct System {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     in_kbd: mpsc::Sender<u8>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     out_kbd: mpsc::Receiver<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/main.rs:416:9
[INFO] [stdout]     |
[INFO] [stdout] 416 |     let start_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction_count`
[INFO] [stdout]    --> src/main.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 430 |     let instruction_count = if args.benchmark {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/main.rs:496:9
[INFO] [stdout]     |
[INFO] [stdout] 496 |     let start_time = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction_count`
[INFO] [stdout]    --> src/main.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let instruction_count = if args.benchmark {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASPECT_RATIO` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ASPECT_RATIO: f64 = 4.0 / 3.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_WIDTH` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const WINDOW_WIDTH: u32 = REAL_WIDTH as u32;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_HEIGHT` is never used
[INFO] [stdout]  --> src/host/wgpu/mod.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const WINDOW_HEIGHT: u32 = (REAL_WIDTH as f64 / ASPECT_RATIO as f64) as u32;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `paused` is never read
[INFO] [stdout]   --> src/host/wgpu/mod.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Terminal {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     paused: bool,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDLE_RENDER_FPS` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const IDLE_RENDER_FPS: u32 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDLE_RENDER_STEP` is never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const IDLE_RENDER_STEP: Duration = Duration::from_micros(1_000_000 / IDLE_RENDER_FPS as u64);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `idle_render_enabled` is never read
[INFO] [stdout]   --> src/host/wgpu/policy.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct FramePolicy {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     idle_render_enabled: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `set_idle_render_enabled` are never used
[INFO] [stdout]   --> src/host/wgpu/policy.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl FramePolicy {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn set_idle_render_enabled(&mut self, enabled: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `READ_2681` is never used
[INFO] [stdout]    --> src/machine/generic/duart.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const READ_2681: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRITE_2681` is never used
[INFO] [stdout]    --> src/machine/generic/duart.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const WRITE_2681: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROM_SIZE` is never used
[INFO] [stdout]   --> src/machine/vt420/static_analysis.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ROM_SIZE: usize = 2 * BANK_SIZE;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `2` is never read
[INFO] [stdout]    --> src/machine/vt420/video.rs:287:30
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub struct CellFlags(u8, u8, u8);
[INFO] [stdout]     |            ---------         ^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_kbd` and `out_kbd` are never read
[INFO] [stdout]   --> src/machine/vt510/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct System {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     in_kbd: mpsc::Sender<u8>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     out_kbd: mpsc::Receiver<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `in_kbd` and `out_kbd` are never read
[INFO] [stdout]   --> src/machine/vt52x/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct System {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     in_kbd: mpsc::Sender<u8>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     out_kbd: mpsc::Receiver<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 02s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: naga v29.0.3, wgpu v29.0.3, wgpu-core v29.0.3, wgpu-hal v29.0.3, winit v0.30.13
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "59f3887b8125c5e765ec1109ead7d5d19c967ba1cb611f9756769196b72835a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59f3887b8125c5e765ec1109ead7d5d19c967ba1cb611f9756769196b72835a9", kill_on_drop: false }`
[INFO] [stdout] 59f3887b8125c5e765ec1109ead7d5d19c967ba1cb611f9756769196b72835a9
