[INFO] cloning repository https://github.com/mppadding/gba [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mppadding/gba" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmppadding%2Fgba", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmppadding%2Fgba'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4ea7617865355ef82849bc7f2cb4f73d9a7d4b77 [INFO] checking mppadding/gba against master#385fa9d845dd326c6bbfd58c22244215e431948a for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmppadding%2Fgba" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/mppadding/gba on toolchain 385fa9d845dd326c6bbfd58c22244215e431948a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/mppadding/gba [INFO] finished tweaking git repo https://github.com/mppadding/gba [INFO] tweaked toml for git repo https://github.com/mppadding/gba written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/mppadding/gba 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" "+385fa9d845dd326c6bbfd58c22244215e431948a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ratatui v0.20.1 [INFO] [stderr] Downloaded syn v2.0.15 [INFO] [stderr] Downloaded tui-logger v0.9.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 89d1b13a11a1394dd373071d45cc56d4b372dbf255bc325c58965c1bc9c78177 [INFO] running `Command { std: "docker" "start" "-a" "89d1b13a11a1394dd373071d45cc56d4b372dbf255bc325c58965c1bc9c78177", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "89d1b13a11a1394dd373071d45cc56d4b372dbf255bc325c58965c1bc9c78177", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "89d1b13a11a1394dd373071d45cc56d4b372dbf255bc325c58965c1bc9c78177", kill_on_drop: false }` [INFO] [stdout] 89d1b13a11a1394dd373071d45cc56d4b372dbf255bc325c58965c1bc9c78177 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 79e2ef42dfca0199f006d6db9dca7280b7e4ca78f4c963cf581f63396d261930 [INFO] running `Command { std: "docker" "start" "-a" "79e2ef42dfca0199f006d6db9dca7280b7e4ca78f4c963cf581f63396d261930", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.144 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling lock_api v0.4.9 [INFO] [stderr] Compiling parking_lot_core v0.9.7 [INFO] [stderr] Compiling signal-hook v0.3.15 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking smallvec v1.10.0 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking unicode-width v0.1.10 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Checking iana-time-zone v0.1.56 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v0.8.6 [INFO] [stderr] Checking sdl2-sys v0.35.2 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking chrono v0.4.24 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking crossterm v0.26.1 [INFO] [stderr] Checking sdl2 v0.35.2 [INFO] [stderr] Checking ratatui v0.20.1 [INFO] [stderr] Checking tui-logger v0.9.1 [INFO] [stderr] Checking gba v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/main.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `exit` [INFO] [stdout] --> src/main.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use std::process::{exit, Command}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::backtrace::PC_BACKTRACE` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::backtrace::PC_BACKTRACE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MGBA_REG_DEBUG_ENABLE`, `MGBA_REG_DEBUG_FLAGS` [INFO] [stdout] --> src/cpu.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | debugger::{MgbaDebug, MGBA_REG_DEBUG_ENABLE, MGBA_REG_DEBUG_FLAGS}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Stdout`, `backtrace::Backtrace`, `panic`, `self`, `time::Duration` [INFO] [stdout] --> src/debugger.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | backtrace::Backtrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | collections::HashMap, [INFO] [stdout] 4 | io::{self, Stdout}, [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] 5 | panic, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | time::Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DisableMouseCapture`, `EnableMouseCapture`, `EnterAlternateScreen`, `Event`, `KeyCode`, `LeaveAlternateScreen`, `disable_raw_mode`, `enable_raw_mode`, `execute`, `self` [INFO] [stdout] --> src/debugger.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^ [INFO] [stdout] 11 | execute, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> src/debugger.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::error` [INFO] [stdout] --> src/debugger.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use log::error; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/debugger.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::warn` [INFO] [stdout] --> src/debugger.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use log::warn; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `CrosstermBackend`, `Style`, `Terminal` [INFO] [stdout] --> src/debugger.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | backend::{Backend, CrosstermBackend}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | layout::{Constraint, Direction, Layout, Rect}, [INFO] [stdout] 21 | style::{Color, Style}, [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] 22 | widgets::{Block, Borders, Paragraph}, [INFO] [stdout] 23 | Frame, Terminal, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TuiLoggerSmartWidget`, `TuiWidgetState`, `init_logger` [INFO] [stdout] --> src/debugger.rs:25:18 [INFO] [stdout] | [INFO] [stdout] 25 | use tui_logger::{init_logger, TuiLoggerSmartWidget, TuiWidgetState}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `print_cpu_backtrace` [INFO] [stdout] --> src/debugger.rs:29:19 [INFO] [stdout] | [INFO] [stdout] 29 | disassembler, print_cpu_backtrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/game_window.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Texture`, `rect::Rect` [INFO] [stdout] --> src/game_window.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | rect::Rect, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 9 | render::{Canvas, Texture, TextureCreator}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/main.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `exit` [INFO] [stdout] --> src/main.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use std::process::{exit, Command}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::backtrace::PC_BACKTRACE` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::backtrace::PC_BACKTRACE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MGBA_REG_DEBUG_ENABLE`, `MGBA_REG_DEBUG_FLAGS` [INFO] [stdout] --> src/cpu.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | debugger::{MgbaDebug, MGBA_REG_DEBUG_ENABLE, MGBA_REG_DEBUG_FLAGS}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Stdout`, `backtrace::Backtrace`, `panic`, `self`, `time::Duration` [INFO] [stdout] --> src/debugger.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | backtrace::Backtrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | collections::HashMap, [INFO] [stdout] 4 | io::{self, Stdout}, [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] 5 | panic, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | time::Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DisableMouseCapture`, `EnableMouseCapture`, `EnterAlternateScreen`, `Event`, `KeyCode`, `LeaveAlternateScreen`, `disable_raw_mode`, `enable_raw_mode`, `execute`, `self` [INFO] [stdout] --> src/debugger.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^ [INFO] [stdout] 11 | execute, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> src/debugger.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::error` [INFO] [stdout] --> src/debugger.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use log::error; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/debugger.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::warn` [INFO] [stdout] --> src/debugger.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use log::warn; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `CrosstermBackend`, `Style`, `Terminal` [INFO] [stdout] --> src/debugger.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | backend::{Backend, CrosstermBackend}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | layout::{Constraint, Direction, Layout, Rect}, [INFO] [stdout] 21 | style::{Color, Style}, [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] 22 | widgets::{Block, Borders, Paragraph}, [INFO] [stdout] 23 | Frame, Terminal, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TuiLoggerSmartWidget`, `TuiWidgetState`, `init_logger` [INFO] [stdout] --> src/debugger.rs:25:18 [INFO] [stdout] | [INFO] [stdout] 25 | use tui_logger::{init_logger, TuiLoggerSmartWidget, TuiWidgetState}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `print_cpu_backtrace` [INFO] [stdout] --> src/debugger.rs:29:19 [INFO] [stdout] | [INFO] [stdout] 29 | disassembler, print_cpu_backtrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/game_window.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Texture`, `rect::Rect` [INFO] [stdout] --> src/game_window.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | rect::Rect, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 9 | render::{Canvas, Texture, TextureCreator}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/cpu.rs:963:21 [INFO] [stdout] | [INFO] [stdout] 962 | todo!("Implement DMA dest increment+reload"); [INFO] [stdout] | -------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 963 | dest_ptr + step [INFO] [stdout] | ^^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/cpu.rs:963:21 [INFO] [stdout] | [INFO] [stdout] 962 | todo!("Implement DMA dest increment+reload"); [INFO] [stdout] | -------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 963 | dest_ptr + step [INFO] [stdout] | ^^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `if_enable` [INFO] [stdout] --> src/cpu.rs:739:13 [INFO] [stdout] | [INFO] [stdout] 739 | let if_enable = (self.io_if & irq) == irq; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_enable` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enable` [INFO] [stdout] --> src/cpu.rs:928:13 [INFO] [stdout] | [INFO] [stdout] 928 | let enable = (control & 0x8000) != 0; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_enable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1185:13 [INFO] [stdout] | [INFO] [stdout] 1185 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1186:13 [INFO] [stdout] | [INFO] [stdout] 1186 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_calc` [INFO] [stdout] --> src/cpu.rs:1187:13 [INFO] [stdout] | [INFO] [stdout] 1187 | let num_calc = self.read_register(2); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_calc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/cpu.rs:1188:13 [INFO] [stdout] | [INFO] [stdout] 1188 | let offset = self.read_register(3); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1195:13 [INFO] [stdout] | [INFO] [stdout] 1195 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1196:13 [INFO] [stdout] | [INFO] [stdout] 1196 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1203:13 [INFO] [stdout] | [INFO] [stdout] 1203 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1204:13 [INFO] [stdout] | [INFO] [stdout] 1204 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:3032:13 [INFO] [stdout] | [INFO] [stdout] 3032 | _ => { [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/debugger.rs:522:37 [INFO] [stdout] | [INFO] [stdout] 522 | fn format_opcode_thumb(opcode: u16, cpu: &CPU) -> String { [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/debugger.rs:625:17 [INFO] [stdout] | [INFO] [stdout] 625 | fn format_sound(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/disassembler.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | _ => ("???".to_string(), "???".to_string()), [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cond` [INFO] [stdout] --> src/disassembler.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let cond = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_cond` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/disassembler.rs:123:21 [INFO] [stdout] | [INFO] [stdout] 123 | let i = (opcode & 0x2000000) != 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pre_index` [INFO] [stdout] --> src/disassembler.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | let pre_index = (opcode & (1 << 24)) != 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rlist` [INFO] [stdout] --> src/disassembler.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | let rlist = opcode & 0xFFFF; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_rlist` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rn` [INFO] [stdout] --> src/disassembler.rs:205:17 [INFO] [stdout] | [INFO] [stdout] 205 | let rn = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write_back` [INFO] [stdout] --> src/disassembler.rs:207:17 [INFO] [stdout] | [INFO] [stdout] 207 | let write_back = (opcode & 0x200000) != 0; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_back` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `psr` [INFO] [stdout] --> src/disassembler.rs:208:17 [INFO] [stdout] | [INFO] [stdout] 208 | let psr = (opcode & 0x400000) != 0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_psr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mnemonic` [INFO] [stdout] --> src/disassembler.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | let mut mnemonic = match load { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mnemonic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | let mut offset = opcode & 0xFFF; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | let mut mnemonic = match load { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:217:17 [INFO] [stdout] | [INFO] [stdout] 217 | let mut mnemonic = match (load, pre, up) { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `if_enable` [INFO] [stdout] --> src/cpu.rs:739:13 [INFO] [stdout] | [INFO] [stdout] 739 | let if_enable = (self.io_if & irq) == irq; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_enable` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enable` [INFO] [stdout] --> src/cpu.rs:928:13 [INFO] [stdout] | [INFO] [stdout] 928 | let enable = (control & 0x8000) != 0; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_enable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1185:13 [INFO] [stdout] | [INFO] [stdout] 1185 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1186:13 [INFO] [stdout] | [INFO] [stdout] 1186 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_calc` [INFO] [stdout] --> src/cpu.rs:1187:13 [INFO] [stdout] | [INFO] [stdout] 1187 | let num_calc = self.read_register(2); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_calc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/cpu.rs:1188:13 [INFO] [stdout] | [INFO] [stdout] 1188 | let offset = self.read_register(3); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1195:13 [INFO] [stdout] | [INFO] [stdout] 1195 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1196:13 [INFO] [stdout] | [INFO] [stdout] 1196 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1203:13 [INFO] [stdout] | [INFO] [stdout] 1203 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1204:13 [INFO] [stdout] | [INFO] [stdout] 1204 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mosaic` [INFO] [stdout] --> src/renderer.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | let mosaic = (msg.control & 0x40) != 0x00; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mosaic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prio` [INFO] [stdout] --> src/renderer.rs:737:13 [INFO] [stdout] | [INFO] [stdout] 737 | let prio = obj.get_priority(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_prio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window_handle` [INFO] [stdout] --> src/main.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | let window_handle = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `PC_BACKTRACE` is never used [INFO] [stdout] --> src/backtrace.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | pub static mut PC_BACKTRACE: VecDeque<(u32, u32, bool, String, String)> = VecDeque::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `replace_registers_in_string` is never used [INFO] [stdout] --> src/backtrace.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn replace_registers_in_string(cpu: &CPU, str: &String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_mode`, `disable_irq`, `memcpy`, and `operation_ldrh_strh` are never used [INFO] [stdout] --> src/cpu.rs:644:8 [INFO] [stdout] | [INFO] [stdout] 586 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 644 | fn set_mode(&mut self, mode: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 837 | fn disable_irq(&mut self, disable: bool) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 859 | fn memcpy(&mut self, dest: u32, src: u32, count: u32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2852 | fn operation_ldrh_strh(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/debugger.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | Delay(u32, u32), // (Break after X, counter of hits) [INFO] [stdout] | ----- ^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 36 | Delay((), ()), // (Break after X, counter of hits) [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Default` and `Conditional` are never constructed [INFO] [stdout] --> src/debugger.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub enum Breakpoint { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 35 | Default, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 36 | Delay(u32, u32), // (Break after X, counter of hits) [INFO] [stdout] 37 | Conditional(Box bool>), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `IO` and `LOG` are never constructed [INFO] [stdout] --> src/debugger.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub enum ViewState { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 41 | RAM, [INFO] [stdout] 42 | IO, [INFO] [stdout] | ^^ [INFO] [stdout] 43 | LOG, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Quit`, `Reset`, and `Back` are never constructed [INFO] [stdout] --> src/debugger.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum DebuggerEvent { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] 48 | None, [INFO] [stdout] 49 | Quit, [INFO] [stdout] | ^^^^ [INFO] [stdout] 50 | Reset, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | Back, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GAME` is never constructed [INFO] [stdout] --> src/debugger.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum InputMode { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] 56 | GAME, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InputMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_ENABLE` is never used [INFO] [stdout] --> src/debugger.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | pub const MGBA_REG_DEBUG_ENABLE: usize = 0x04FFF780; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_FLAGS` is never used [INFO] [stdout] --> src/debugger.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const MGBA_REG_DEBUG_FLAGS: usize = 0x04FFF700; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_STRING` is never used [INFO] [stdout] --> src/debugger.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | pub const MGBA_REG_DEBUG_STRING: usize = 0x04FFF600; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `state` and `input_mode` are never read [INFO] [stdout] --> src/debugger.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 130 | pub struct Debugger { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 131 | pub opcode: u32, [INFO] [stdout] 132 | pub state: ViewState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub input_mode: InputMode, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/debugger.rs:379:12 [INFO] [stdout] | [INFO] [stdout] 378 | impl Debugger { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 379 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_stack` is never used [INFO] [stdout] --> src/debugger.rs:388:4 [INFO] [stdout] | [INFO] [stdout] 388 | fn format_stack(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_rom` is never used [INFO] [stdout] --> src/debugger.rs:407:4 [INFO] [stdout] | [INFO] [stdout] 407 | fn format_rom(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_regs` is never used [INFO] [stdout] --> src/debugger.rs:441:4 [INFO] [stdout] | [INFO] [stdout] 441 | fn format_regs(cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_memory` is never used [INFO] [stdout] --> src/debugger.rs:489:4 [INFO] [stdout] | [INFO] [stdout] 489 | fn format_memory(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_opcode_thumb` is never used [INFO] [stdout] --> src/debugger.rs:522:4 [INFO] [stdout] | [INFO] [stdout] 522 | fn format_opcode_thumb(opcode: u16, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_opcode_arm` is never used [INFO] [stdout] --> src/debugger.rs:537:4 [INFO] [stdout] | [INFO] [stdout] 537 | fn format_opcode_arm(opcode: u32, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_debugger_state` is never used [INFO] [stdout] --> src/debugger.rs:552:4 [INFO] [stdout] | [INFO] [stdout] 552 | fn format_debugger_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_dma` is never used [INFO] [stdout] --> src/debugger.rs:578:4 [INFO] [stdout] | [INFO] [stdout] 578 | fn format_dma(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_interrupt` is never used [INFO] [stdout] --> src/debugger.rs:596:4 [INFO] [stdout] | [INFO] [stdout] 596 | fn format_interrupt(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_sound` is never used [INFO] [stdout] --> src/debugger.rs:625:4 [INFO] [stdout] | [INFO] [stdout] 625 | fn format_sound(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_lcd` is never used [INFO] [stdout] --> src/debugger.rs:654:4 [INFO] [stdout] | [INFO] [stdout] 654 | fn format_lcd(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_serial` is never used [INFO] [stdout] --> src/debugger.rs:699:4 [INFO] [stdout] | [INFO] [stdout] 699 | fn format_serial(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_view_ram` is never used [INFO] [stdout] --> src/debugger.rs:728:4 [INFO] [stdout] | [INFO] [stdout] 728 | fn draw_view_ram(f: &mut Frame, cpu: &mut CPU, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_view_io` is never used [INFO] [stdout] --> src/debugger.rs:762:4 [INFO] [stdout] | [INFO] [stdout] 762 | fn draw_view_io(f: &mut Frame, cpu: &mut CPU, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rlist_to_string` is never used [INFO] [stdout] --> src/disassembler.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn rlist_to_string(rlist: u8, str: &mut String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_arm` is never used [INFO] [stdout] --> src/disassembler.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn disassemble_arm(opcode: u32, pc: u32) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_thumb` is never used [INFO] [stdout] --> src/disassembler.rs:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn disassemble_thumb(opcode: u16) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `RAM`, `Object`, and `Full` are never constructed [INFO] [stdout] --> src/game_window.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum Dump { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 21 | Video, [INFO] [stdout] 22 | RAM, [INFO] [stdout] | ^^^ [INFO] [stdout] 23 | Palette, [INFO] [stdout] 24 | Object, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | Full, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Dump` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Pause` is never constructed [INFO] [stdout] --> src/game_window.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum WindowEvent { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 33 | Pause(bool), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WindowEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/lcd.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl LCD { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn set_dispcnt(&mut self, val: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_dispcnt_mode(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn set_background_control(&mut self, n: u8, val: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn get_window_dimensions(&self, n: u8) -> (u16, u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn get_winin(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn get_winout(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn get_mosaic(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn get_bldcnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn get_bldalpha(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn get_bldy(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `fill` is never read [INFO] [stdout] --> src/renderer.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 25 | struct ObjectAttributes { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 29 | fill: i16, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_obj_affine` is never used [INFO] [stdout] --> src/renderer.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn get_obj_affine(oam: &Vec, n: usize) -> [ObjectAttributes; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_rect_argb` is never used [INFO] [stdout] --> src/renderer.rs:402:4 [INFO] [stdout] | [INFO] [stdout] 402 | fn draw_rect_argb( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_draw_background` is never used [INFO] [stdout] --> src/renderer.rs:851:8 [INFO] [stdout] | [INFO] [stdout] 851 | pub fn test_draw_background(texture: &mut Texture, width: usize, height: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_u16` is never used [INFO] [stdout] --> src/serial.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl Serial { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn read_u16(&self, addr: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/sound.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Sound { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 3 | pub io_soundcnt: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 4 | pub io_soundcnt_1: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 5 | pub io_soundcnt_2: [u32; 2], // L, H [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 6 | pub io_soundcnt_3: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 7 | pub io_soundcnt_4: [u32; 2], // L, H [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 8 | [INFO] [stdout] 9 | pub io_bias: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | [INFO] [stdout] 11 | pub io_fifo_a: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | pub io_fifo_b: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:3032:13 [INFO] [stdout] | [INFO] [stdout] 3032 | _ => { [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode_cmp` [INFO] [stdout] --> src/cpu.rs:3244:13 [INFO] [stdout] | [INFO] [stdout] 3244 | let opcode_cmp = 0x2800 | offset; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode_cmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode_sub` [INFO] [stdout] --> src/cpu.rs:3246:13 [INFO] [stdout] | [INFO] [stdout] 3246 | let opcode_sub = 0x3800 | offset; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode_sub` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu.rs:3923:17 [INFO] [stdout] | [INFO] [stdout] 3923 | let mut cpu = CPU::new(&vram, &palette, &oam); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:3923:13 [INFO] [stdout] | [INFO] [stdout] 3923 | let mut cpu = CPU::new(&vram, &palette, &oam); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:4188:13 [INFO] [stdout] | [INFO] [stdout] 4188 | let mut cpu = CPU::new(&vram, &palette, &oam); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 83 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/debugger.rs:522:37 [INFO] [stdout] | [INFO] [stdout] 522 | fn format_opcode_thumb(opcode: u16, cpu: &CPU) -> String { [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/debugger.rs:625:17 [INFO] [stdout] | [INFO] [stdout] 625 | fn format_sound(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/disassembler.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | _ => ("???".to_string(), "???".to_string()), [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cond` [INFO] [stdout] --> src/disassembler.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let cond = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_cond` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/disassembler.rs:123:21 [INFO] [stdout] | [INFO] [stdout] 123 | let i = (opcode & 0x2000000) != 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pre_index` [INFO] [stdout] --> src/disassembler.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | let pre_index = (opcode & (1 << 24)) != 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rlist` [INFO] [stdout] --> src/disassembler.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | let rlist = opcode & 0xFFFF; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_rlist` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rn` [INFO] [stdout] --> src/disassembler.rs:205:17 [INFO] [stdout] | [INFO] [stdout] 205 | let rn = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write_back` [INFO] [stdout] --> src/disassembler.rs:207:17 [INFO] [stdout] | [INFO] [stdout] 207 | let write_back = (opcode & 0x200000) != 0; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_back` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `psr` [INFO] [stdout] --> src/disassembler.rs:208:17 [INFO] [stdout] | [INFO] [stdout] 208 | let psr = (opcode & 0x400000) != 0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_psr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mnemonic` [INFO] [stdout] --> src/disassembler.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | let mut mnemonic = match load { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mnemonic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | let mut offset = opcode & 0xFFF; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | let mut mnemonic = match load { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:217:17 [INFO] [stdout] | [INFO] [stdout] 217 | let mut mnemonic = match (load, pre, up) { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mosaic` [INFO] [stdout] --> src/renderer.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | let mosaic = (msg.control & 0x40) != 0x00; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mosaic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prio` [INFO] [stdout] --> src/renderer.rs:737:13 [INFO] [stdout] | [INFO] [stdout] 737 | let prio = obj.get_priority(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_prio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window_handle` [INFO] [stdout] --> src/main.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | let window_handle = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `PC_BACKTRACE` is never used [INFO] [stdout] --> src/backtrace.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | pub static mut PC_BACKTRACE: VecDeque<(u32, u32, bool, String, String)> = VecDeque::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `replace_registers_in_string` is never used [INFO] [stdout] --> src/backtrace.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn replace_registers_in_string(cpu: &CPU, str: &String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_mode`, `disable_irq`, and `operation_ldrh_strh` are never used [INFO] [stdout] --> src/cpu.rs:644:8 [INFO] [stdout] | [INFO] [stdout] 586 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 644 | fn set_mode(&mut self, mode: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 837 | fn disable_irq(&mut self, disable: bool) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2852 | fn operation_ldrh_strh(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/debugger.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | Delay(u32, u32), // (Break after X, counter of hits) [INFO] [stdout] | ----- ^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 36 | Delay((), ()), // (Break after X, counter of hits) [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Default` and `Conditional` are never constructed [INFO] [stdout] --> src/debugger.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub enum Breakpoint { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 35 | Default, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 36 | Delay(u32, u32), // (Break after X, counter of hits) [INFO] [stdout] 37 | Conditional(Box bool>), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `IO` and `LOG` are never constructed [INFO] [stdout] --> src/debugger.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub enum ViewState { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 41 | RAM, [INFO] [stdout] 42 | IO, [INFO] [stdout] | ^^ [INFO] [stdout] 43 | LOG, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Quit`, `Reset`, and `Back` are never constructed [INFO] [stdout] --> src/debugger.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum DebuggerEvent { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] 48 | None, [INFO] [stdout] 49 | Quit, [INFO] [stdout] | ^^^^ [INFO] [stdout] 50 | Reset, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | Back, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GAME` is never constructed [INFO] [stdout] --> src/debugger.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum InputMode { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] 56 | GAME, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InputMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_ENABLE` is never used [INFO] [stdout] --> src/debugger.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | pub const MGBA_REG_DEBUG_ENABLE: usize = 0x04FFF780; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_FLAGS` is never used [INFO] [stdout] --> src/debugger.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const MGBA_REG_DEBUG_FLAGS: usize = 0x04FFF700; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_STRING` is never used [INFO] [stdout] --> src/debugger.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | pub const MGBA_REG_DEBUG_STRING: usize = 0x04FFF600; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `state` and `input_mode` are never read [INFO] [stdout] --> src/debugger.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 130 | pub struct Debugger { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 131 | pub opcode: u32, [INFO] [stdout] 132 | pub state: ViewState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub input_mode: InputMode, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/debugger.rs:379:12 [INFO] [stdout] | [INFO] [stdout] 378 | impl Debugger { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 379 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_stack` is never used [INFO] [stdout] --> src/debugger.rs:388:4 [INFO] [stdout] | [INFO] [stdout] 388 | fn format_stack(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_rom` is never used [INFO] [stdout] --> src/debugger.rs:407:4 [INFO] [stdout] | [INFO] [stdout] 407 | fn format_rom(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_regs` is never used [INFO] [stdout] --> src/debugger.rs:441:4 [INFO] [stdout] | [INFO] [stdout] 441 | fn format_regs(cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_memory` is never used [INFO] [stdout] --> src/debugger.rs:489:4 [INFO] [stdout] | [INFO] [stdout] 489 | fn format_memory(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_opcode_thumb` is never used [INFO] [stdout] --> src/debugger.rs:522:4 [INFO] [stdout] | [INFO] [stdout] 522 | fn format_opcode_thumb(opcode: u16, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_opcode_arm` is never used [INFO] [stdout] --> src/debugger.rs:537:4 [INFO] [stdout] | [INFO] [stdout] 537 | fn format_opcode_arm(opcode: u32, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_debugger_state` is never used [INFO] [stdout] --> src/debugger.rs:552:4 [INFO] [stdout] | [INFO] [stdout] 552 | fn format_debugger_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_dma` is never used [INFO] [stdout] --> src/debugger.rs:578:4 [INFO] [stdout] | [INFO] [stdout] 578 | fn format_dma(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_interrupt` is never used [INFO] [stdout] --> src/debugger.rs:596:4 [INFO] [stdout] | [INFO] [stdout] 596 | fn format_interrupt(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_sound` is never used [INFO] [stdout] --> src/debugger.rs:625:4 [INFO] [stdout] | [INFO] [stdout] 625 | fn format_sound(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_lcd` is never used [INFO] [stdout] --> src/debugger.rs:654:4 [INFO] [stdout] | [INFO] [stdout] 654 | fn format_lcd(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_serial` is never used [INFO] [stdout] --> src/debugger.rs:699:4 [INFO] [stdout] | [INFO] [stdout] 699 | fn format_serial(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_view_ram` is never used [INFO] [stdout] --> src/debugger.rs:728:4 [INFO] [stdout] | [INFO] [stdout] 728 | fn draw_view_ram(f: &mut Frame, cpu: &mut CPU, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_view_io` is never used [INFO] [stdout] --> src/debugger.rs:762:4 [INFO] [stdout] | [INFO] [stdout] 762 | fn draw_view_io(f: &mut Frame, cpu: &mut CPU, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rlist_to_string` is never used [INFO] [stdout] --> src/disassembler.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn rlist_to_string(rlist: u8, str: &mut String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_arm` is never used [INFO] [stdout] --> src/disassembler.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn disassemble_arm(opcode: u32, pc: u32) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_thumb` is never used [INFO] [stdout] --> src/disassembler.rs:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn disassemble_thumb(opcode: u16) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `RAM`, `Object`, and `Full` are never constructed [INFO] [stdout] --> src/game_window.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum Dump { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 21 | Video, [INFO] [stdout] 22 | RAM, [INFO] [stdout] | ^^^ [INFO] [stdout] 23 | Palette, [INFO] [stdout] 24 | Object, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | Full, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Dump` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Pause` is never constructed [INFO] [stdout] --> src/game_window.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum WindowEvent { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 33 | Pause(bool), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WindowEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/lcd.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl LCD { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn set_dispcnt(&mut self, val: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_dispcnt_mode(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn set_background_control(&mut self, n: u8, val: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn get_window_dimensions(&self, n: u8) -> (u16, u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn get_winin(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn get_winout(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn get_mosaic(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn get_bldcnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn get_bldalpha(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn get_bldy(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `fill` is never read [INFO] [stdout] --> src/renderer.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 25 | struct ObjectAttributes { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 29 | fill: i16, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_obj_affine` is never used [INFO] [stdout] --> src/renderer.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn get_obj_affine(oam: &Vec, n: usize) -> [ObjectAttributes; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_rect_argb` is never used [INFO] [stdout] --> src/renderer.rs:402:4 [INFO] [stdout] | [INFO] [stdout] 402 | fn draw_rect_argb( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_draw_background` is never used [INFO] [stdout] --> src/renderer.rs:851:8 [INFO] [stdout] | [INFO] [stdout] 851 | pub fn test_draw_background(texture: &mut Texture, width: usize, height: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_u16` is never used [INFO] [stdout] --> src/serial.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl Serial { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn read_u16(&self, addr: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/sound.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Sound { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 3 | pub io_soundcnt: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 4 | pub io_soundcnt_1: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 5 | pub io_soundcnt_2: [u32; 2], // L, H [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 6 | pub io_soundcnt_3: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 7 | pub io_soundcnt_4: [u32; 2], // L, H [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 8 | [INFO] [stdout] 9 | pub io_bias: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | [INFO] [stdout] 11 | pub io_fifo_a: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | pub io_fifo_b: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 88 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.28s [INFO] running `Command { std: "docker" "inspect" "79e2ef42dfca0199f006d6db9dca7280b7e4ca78f4c963cf581f63396d261930", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "79e2ef42dfca0199f006d6db9dca7280b7e4ca78f4c963cf581f63396d261930", kill_on_drop: false }` [INFO] [stdout] 79e2ef42dfca0199f006d6db9dca7280b7e4ca78f4c963cf581f63396d261930 [INFO] checking mppadding/gba against try#645bb72776a6a56a1a8f52631a44bd082b2ba509 for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmppadding%2Fgba" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/mppadding/gba on toolchain 645bb72776a6a56a1a8f52631a44bd082b2ba509 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/mppadding/gba [INFO] finished tweaking git repo https://github.com/mppadding/gba [INFO] tweaked toml for git repo https://github.com/mppadding/gba written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/mppadding/gba 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" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] dd31ab28baf1b5e2caabfeb9382534d8dd3f083367a9e673ac24a9500e8e7991 [INFO] running `Command { std: "docker" "start" "-a" "dd31ab28baf1b5e2caabfeb9382534d8dd3f083367a9e673ac24a9500e8e7991", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dd31ab28baf1b5e2caabfeb9382534d8dd3f083367a9e673ac24a9500e8e7991", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dd31ab28baf1b5e2caabfeb9382534d8dd3f083367a9e673ac24a9500e8e7991", kill_on_drop: false }` [INFO] [stdout] dd31ab28baf1b5e2caabfeb9382534d8dd3f083367a9e673ac24a9500e8e7991 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6bea5e1e839a0bce53c90f9eda0c3d37b74b2726f05ab04df243745d134c5c32 [INFO] running `Command { std: "docker" "start" "-a" "6bea5e1e839a0bce53c90f9eda0c3d37b74b2726f05ab04df243745d134c5c32", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.144 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling lock_api v0.4.9 [INFO] [stderr] Compiling parking_lot_core v0.9.7 [INFO] [stderr] Compiling signal-hook v0.3.15 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Checking smallvec v1.10.0 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking unicode-width v0.1.10 [INFO] [stderr] Checking iana-time-zone v0.1.56 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v0.8.6 [INFO] [stderr] Checking sdl2-sys v0.35.2 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking crossterm v0.26.1 [INFO] [stderr] Checking chrono v0.4.24 [INFO] [stderr] Checking sdl2 v0.35.2 [INFO] [stderr] Checking ratatui v0.20.1 [INFO] [stderr] Checking tui-logger v0.9.1 [INFO] [stderr] Checking gba v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/main.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/main.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `exit` [INFO] [stdout] --> src/main.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use std::process::{exit, Command}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `exit` [INFO] [stdout] --> src/main.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use std::process::{exit, Command}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::backtrace::PC_BACKTRACE` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::backtrace::PC_BACKTRACE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::backtrace::PC_BACKTRACE` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::backtrace::PC_BACKTRACE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MGBA_REG_DEBUG_ENABLE`, `MGBA_REG_DEBUG_FLAGS` [INFO] [stdout] --> src/cpu.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | debugger::{MgbaDebug, MGBA_REG_DEBUG_ENABLE, MGBA_REG_DEBUG_FLAGS}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MGBA_REG_DEBUG_ENABLE`, `MGBA_REG_DEBUG_FLAGS` [INFO] [stdout] --> src/cpu.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | debugger::{MgbaDebug, MGBA_REG_DEBUG_ENABLE, MGBA_REG_DEBUG_FLAGS}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Stdout`, `backtrace::Backtrace`, `panic`, `self`, `time::Duration` [INFO] [stdout] --> src/debugger.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | backtrace::Backtrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | collections::HashMap, [INFO] [stdout] 4 | io::{self, Stdout}, [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] 5 | panic, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | time::Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DisableMouseCapture`, `EnableMouseCapture`, `EnterAlternateScreen`, `Event`, `KeyCode`, `LeaveAlternateScreen`, `disable_raw_mode`, `enable_raw_mode`, `execute`, `self` [INFO] [stdout] --> src/debugger.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^ [INFO] [stdout] 11 | execute, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> src/debugger.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::error` [INFO] [stdout] --> src/debugger.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use log::error; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/debugger.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::warn` [INFO] [stdout] --> src/debugger.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use log::warn; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `CrosstermBackend`, `Style`, `Terminal` [INFO] [stdout] --> src/debugger.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | backend::{Backend, CrosstermBackend}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | layout::{Constraint, Direction, Layout, Rect}, [INFO] [stdout] 21 | style::{Color, Style}, [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] 22 | widgets::{Block, Borders, Paragraph}, [INFO] [stdout] 23 | Frame, Terminal, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TuiLoggerSmartWidget`, `TuiWidgetState`, `init_logger` [INFO] [stdout] --> src/debugger.rs:25:18 [INFO] [stdout] | [INFO] [stdout] 25 | use tui_logger::{init_logger, TuiLoggerSmartWidget, TuiWidgetState}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `print_cpu_backtrace` [INFO] [stdout] --> src/debugger.rs:29:19 [INFO] [stdout] | [INFO] [stdout] 29 | disassembler, print_cpu_backtrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/game_window.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Texture`, `rect::Rect` [INFO] [stdout] --> src/game_window.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | rect::Rect, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 9 | render::{Canvas, Texture, TextureCreator}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Stdout`, `backtrace::Backtrace`, `panic`, `self`, `time::Duration` [INFO] [stdout] --> src/debugger.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | backtrace::Backtrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | collections::HashMap, [INFO] [stdout] 4 | io::{self, Stdout}, [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] 5 | panic, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | time::Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DisableMouseCapture`, `EnableMouseCapture`, `EnterAlternateScreen`, `Event`, `KeyCode`, `LeaveAlternateScreen`, `disable_raw_mode`, `enable_raw_mode`, `execute`, `self` [INFO] [stdout] --> src/debugger.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | event::{self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode}, [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^ [INFO] [stdout] 11 | execute, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> src/debugger.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::error` [INFO] [stdout] --> src/debugger.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use log::error; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/debugger.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::warn` [INFO] [stdout] --> src/debugger.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use log::warn; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color`, `CrosstermBackend`, `Style`, `Terminal` [INFO] [stdout] --> src/debugger.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | backend::{Backend, CrosstermBackend}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | layout::{Constraint, Direction, Layout, Rect}, [INFO] [stdout] 21 | style::{Color, Style}, [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] 22 | widgets::{Block, Borders, Paragraph}, [INFO] [stdout] 23 | Frame, Terminal, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TuiLoggerSmartWidget`, `TuiWidgetState`, `init_logger` [INFO] [stdout] --> src/debugger.rs:25:18 [INFO] [stdout] | [INFO] [stdout] 25 | use tui_logger::{init_logger, TuiLoggerSmartWidget, TuiWidgetState}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `print_cpu_backtrace` [INFO] [stdout] --> src/debugger.rs:29:19 [INFO] [stdout] | [INFO] [stdout] 29 | disassembler, print_cpu_backtrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::info` [INFO] [stdout] --> src/game_window.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use log::info; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Texture`, `rect::Rect` [INFO] [stdout] --> src/game_window.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | rect::Rect, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 9 | render::{Canvas, Texture, TextureCreator}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/cpu.rs:963:21 [INFO] [stdout] | [INFO] [stdout] 962 | todo!("Implement DMA dest increment+reload"); [INFO] [stdout] | -------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 963 | dest_ptr + step [INFO] [stdout] | ^^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/cpu.rs:963:21 [INFO] [stdout] | [INFO] [stdout] 962 | todo!("Implement DMA dest increment+reload"); [INFO] [stdout] | -------------------------------------------- any code following this expression is unreachable [INFO] [stdout] 963 | dest_ptr + step [INFO] [stdout] | ^^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `if_enable` [INFO] [stdout] --> src/cpu.rs:739:13 [INFO] [stdout] | [INFO] [stdout] 739 | let if_enable = (self.io_if & irq) == irq; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_enable` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enable` [INFO] [stdout] --> src/cpu.rs:928:13 [INFO] [stdout] | [INFO] [stdout] 928 | let enable = (control & 0x8000) != 0; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_enable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1185:13 [INFO] [stdout] | [INFO] [stdout] 1185 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1186:13 [INFO] [stdout] | [INFO] [stdout] 1186 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_calc` [INFO] [stdout] --> src/cpu.rs:1187:13 [INFO] [stdout] | [INFO] [stdout] 1187 | let num_calc = self.read_register(2); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_calc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/cpu.rs:1188:13 [INFO] [stdout] | [INFO] [stdout] 1188 | let offset = self.read_register(3); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1195:13 [INFO] [stdout] | [INFO] [stdout] 1195 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1196:13 [INFO] [stdout] | [INFO] [stdout] 1196 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1203:13 [INFO] [stdout] | [INFO] [stdout] 1203 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1204:13 [INFO] [stdout] | [INFO] [stdout] 1204 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `if_enable` [INFO] [stdout] --> src/cpu.rs:739:13 [INFO] [stdout] | [INFO] [stdout] 739 | let if_enable = (self.io_if & irq) == irq; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_enable` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enable` [INFO] [stdout] --> src/cpu.rs:928:13 [INFO] [stdout] | [INFO] [stdout] 928 | let enable = (control & 0x8000) != 0; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_enable` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1185:13 [INFO] [stdout] | [INFO] [stdout] 1185 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1186:13 [INFO] [stdout] | [INFO] [stdout] 1186 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_calc` [INFO] [stdout] --> src/cpu.rs:1187:13 [INFO] [stdout] | [INFO] [stdout] 1187 | let num_calc = self.read_register(2); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_calc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/cpu.rs:1188:13 [INFO] [stdout] | [INFO] [stdout] 1188 | let offset = self.read_register(3); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1195:13 [INFO] [stdout] | [INFO] [stdout] 1195 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1196:13 [INFO] [stdout] | [INFO] [stdout] 1196 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src_addr` [INFO] [stdout] --> src/cpu.rs:1203:13 [INFO] [stdout] | [INFO] [stdout] 1203 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1204:13 [INFO] [stdout] | [INFO] [stdout] 1204 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dest_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:3032:13 [INFO] [stdout] | [INFO] [stdout] 3032 | _ => { [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/debugger.rs:522:37 [INFO] [stdout] | [INFO] [stdout] 522 | fn format_opcode_thumb(opcode: u16, cpu: &CPU) -> String { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:3032:13 [INFO] [stdout] | [INFO] [stdout] 3032 | _ => { [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/debugger.rs:625:17 [INFO] [stdout] | [INFO] [stdout] 625 | fn format_sound(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode_cmp` [INFO] [stdout] --> src/cpu.rs:3244:13 [INFO] [stdout] | [INFO] [stdout] 3244 | let opcode_cmp = 0x2800 | offset; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode_cmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode_sub` [INFO] [stdout] --> src/cpu.rs:3246:13 [INFO] [stdout] | [INFO] [stdout] 3246 | let opcode_sub = 0x3800 | offset; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode_sub` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu.rs:3923:17 [INFO] [stdout] | [INFO] [stdout] 3923 | let mut cpu = CPU::new(&vram, &palette, &oam); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/disassembler.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | _ => ("???".to_string(), "???".to_string()), [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cond` [INFO] [stdout] --> src/disassembler.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let cond = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_cond` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/disassembler.rs:123:21 [INFO] [stdout] | [INFO] [stdout] 123 | let i = (opcode & 0x2000000) != 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pre_index` [INFO] [stdout] --> src/disassembler.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | let pre_index = (opcode & (1 << 24)) != 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rlist` [INFO] [stdout] --> src/disassembler.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | let rlist = opcode & 0xFFFF; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_rlist` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rn` [INFO] [stdout] --> src/disassembler.rs:205:17 [INFO] [stdout] | [INFO] [stdout] 205 | let rn = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write_back` [INFO] [stdout] --> src/disassembler.rs:207:17 [INFO] [stdout] | [INFO] [stdout] 207 | let write_back = (opcode & 0x200000) != 0; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_back` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `psr` [INFO] [stdout] --> src/disassembler.rs:208:17 [INFO] [stdout] | [INFO] [stdout] 208 | let psr = (opcode & 0x400000) != 0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_psr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mnemonic` [INFO] [stdout] --> src/disassembler.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | let mut mnemonic = match load { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mnemonic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:3923:13 [INFO] [stdout] | [INFO] [stdout] 3923 | let mut cpu = CPU::new(&vram, &palette, &oam); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | let mut offset = opcode & 0xFFF; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:4188:13 [INFO] [stdout] | [INFO] [stdout] 4188 | let mut cpu = CPU::new(&vram, &palette, &oam); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | let mut mnemonic = match load { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:217:17 [INFO] [stdout] | [INFO] [stdout] 217 | let mut mnemonic = match (load, pre, up) { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/debugger.rs:522:37 [INFO] [stdout] | [INFO] [stdout] 522 | fn format_opcode_thumb(opcode: u16, cpu: &CPU) -> String { [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/debugger.rs:625:17 [INFO] [stdout] | [INFO] [stdout] 625 | fn format_sound(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mosaic` [INFO] [stdout] --> src/renderer.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | let mosaic = (msg.control & 0x40) != 0x00; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mosaic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/disassembler.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | _ => ("???".to_string(), "???".to_string()), [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cond` [INFO] [stdout] --> src/disassembler.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let cond = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_cond` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/disassembler.rs:123:21 [INFO] [stdout] | [INFO] [stdout] 123 | let i = (opcode & 0x2000000) != 0; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pre_index` [INFO] [stdout] --> src/disassembler.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | let pre_index = (opcode & (1 << 24)) != 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rlist` [INFO] [stdout] --> src/disassembler.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | let rlist = opcode & 0xFFFF; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_rlist` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rn` [INFO] [stdout] --> src/disassembler.rs:205:17 [INFO] [stdout] | [INFO] [stdout] 205 | let rn = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rn` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write_back` [INFO] [stdout] --> src/disassembler.rs:207:17 [INFO] [stdout] | [INFO] [stdout] 207 | let write_back = (opcode & 0x200000) != 0; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_back` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `psr` [INFO] [stdout] --> src/disassembler.rs:208:17 [INFO] [stdout] | [INFO] [stdout] 208 | let psr = (opcode & 0x400000) != 0; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_psr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mnemonic` [INFO] [stdout] --> src/disassembler.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | let mut mnemonic = match load { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mnemonic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prio` [INFO] [stdout] --> src/renderer.rs:737:13 [INFO] [stdout] | [INFO] [stdout] 737 | let prio = obj.get_priority(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_prio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:158:21 [INFO] [stdout] | [INFO] [stdout] 158 | let mut offset = opcode & 0xFFF; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | let mut mnemonic = match load { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/disassembler.rs:217:17 [INFO] [stdout] | [INFO] [stdout] 217 | let mut mnemonic = match (load, pre, up) { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window_handle` [INFO] [stdout] --> src/main.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | let window_handle = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `PC_BACKTRACE` is never used [INFO] [stdout] --> src/backtrace.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | pub static mut PC_BACKTRACE: VecDeque<(u32, u32, bool, String, String)> = VecDeque::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `replace_registers_in_string` is never used [INFO] [stdout] --> src/backtrace.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn replace_registers_in_string(cpu: &CPU, str: &String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_mode`, `disable_irq`, `memcpy`, and `operation_ldrh_strh` are never used [INFO] [stdout] --> src/cpu.rs:644:8 [INFO] [stdout] | [INFO] [stdout] 586 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 644 | fn set_mode(&mut self, mode: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 837 | fn disable_irq(&mut self, disable: bool) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 859 | fn memcpy(&mut self, dest: u32, src: u32, count: u32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2852 | fn operation_ldrh_strh(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/debugger.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | Delay(u32, u32), // (Break after X, counter of hits) [INFO] [stdout] | ----- ^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 36 | Delay((), ()), // (Break after X, counter of hits) [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Default` and `Conditional` are never constructed [INFO] [stdout] --> src/debugger.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub enum Breakpoint { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 35 | Default, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 36 | Delay(u32, u32), // (Break after X, counter of hits) [INFO] [stdout] 37 | Conditional(Box bool>), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `IO` and `LOG` are never constructed [INFO] [stdout] --> src/debugger.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub enum ViewState { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 41 | RAM, [INFO] [stdout] 42 | IO, [INFO] [stdout] | ^^ [INFO] [stdout] 43 | LOG, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Quit`, `Reset`, and `Back` are never constructed [INFO] [stdout] --> src/debugger.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum DebuggerEvent { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] 48 | None, [INFO] [stdout] 49 | Quit, [INFO] [stdout] | ^^^^ [INFO] [stdout] 50 | Reset, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | Back, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GAME` is never constructed [INFO] [stdout] --> src/debugger.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum InputMode { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] 56 | GAME, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InputMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_ENABLE` is never used [INFO] [stdout] --> src/debugger.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | pub const MGBA_REG_DEBUG_ENABLE: usize = 0x04FFF780; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_FLAGS` is never used [INFO] [stdout] --> src/debugger.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const MGBA_REG_DEBUG_FLAGS: usize = 0x04FFF700; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_STRING` is never used [INFO] [stdout] --> src/debugger.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | pub const MGBA_REG_DEBUG_STRING: usize = 0x04FFF600; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `state` and `input_mode` are never read [INFO] [stdout] --> src/debugger.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 130 | pub struct Debugger { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 131 | pub opcode: u32, [INFO] [stdout] 132 | pub state: ViewState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub input_mode: InputMode, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/debugger.rs:379:12 [INFO] [stdout] | [INFO] [stdout] 378 | impl Debugger { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 379 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_stack` is never used [INFO] [stdout] --> src/debugger.rs:388:4 [INFO] [stdout] | [INFO] [stdout] 388 | fn format_stack(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_rom` is never used [INFO] [stdout] --> src/debugger.rs:407:4 [INFO] [stdout] | [INFO] [stdout] 407 | fn format_rom(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_regs` is never used [INFO] [stdout] --> src/debugger.rs:441:4 [INFO] [stdout] | [INFO] [stdout] 441 | fn format_regs(cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_memory` is never used [INFO] [stdout] --> src/debugger.rs:489:4 [INFO] [stdout] | [INFO] [stdout] 489 | fn format_memory(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_opcode_thumb` is never used [INFO] [stdout] --> src/debugger.rs:522:4 [INFO] [stdout] | [INFO] [stdout] 522 | fn format_opcode_thumb(opcode: u16, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_opcode_arm` is never used [INFO] [stdout] --> src/debugger.rs:537:4 [INFO] [stdout] | [INFO] [stdout] 537 | fn format_opcode_arm(opcode: u32, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_debugger_state` is never used [INFO] [stdout] --> src/debugger.rs:552:4 [INFO] [stdout] | [INFO] [stdout] 552 | fn format_debugger_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_dma` is never used [INFO] [stdout] --> src/debugger.rs:578:4 [INFO] [stdout] | [INFO] [stdout] 578 | fn format_dma(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_interrupt` is never used [INFO] [stdout] --> src/debugger.rs:596:4 [INFO] [stdout] | [INFO] [stdout] 596 | fn format_interrupt(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_sound` is never used [INFO] [stdout] --> src/debugger.rs:625:4 [INFO] [stdout] | [INFO] [stdout] 625 | fn format_sound(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_lcd` is never used [INFO] [stdout] --> src/debugger.rs:654:4 [INFO] [stdout] | [INFO] [stdout] 654 | fn format_lcd(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_serial` is never used [INFO] [stdout] --> src/debugger.rs:699:4 [INFO] [stdout] | [INFO] [stdout] 699 | fn format_serial(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_view_ram` is never used [INFO] [stdout] --> src/debugger.rs:728:4 [INFO] [stdout] | [INFO] [stdout] 728 | fn draw_view_ram(f: &mut Frame, cpu: &mut CPU, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_view_io` is never used [INFO] [stdout] --> src/debugger.rs:762:4 [INFO] [stdout] | [INFO] [stdout] 762 | fn draw_view_io(f: &mut Frame, cpu: &mut CPU, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rlist_to_string` is never used [INFO] [stdout] --> src/disassembler.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn rlist_to_string(rlist: u8, str: &mut String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_arm` is never used [INFO] [stdout] --> src/disassembler.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn disassemble_arm(opcode: u32, pc: u32) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_thumb` is never used [INFO] [stdout] --> src/disassembler.rs:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn disassemble_thumb(opcode: u16) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `RAM`, `Object`, and `Full` are never constructed [INFO] [stdout] --> src/game_window.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum Dump { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 21 | Video, [INFO] [stdout] 22 | RAM, [INFO] [stdout] | ^^^ [INFO] [stdout] 23 | Palette, [INFO] [stdout] 24 | Object, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | Full, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Dump` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Pause` is never constructed [INFO] [stdout] --> src/game_window.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum WindowEvent { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 33 | Pause(bool), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WindowEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/lcd.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl LCD { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn set_dispcnt(&mut self, val: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_dispcnt_mode(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn set_background_control(&mut self, n: u8, val: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn get_window_dimensions(&self, n: u8) -> (u16, u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn get_winin(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn get_winout(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn get_mosaic(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn get_bldcnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn get_bldalpha(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn get_bldy(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `fill` is never read [INFO] [stdout] --> src/renderer.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 25 | struct ObjectAttributes { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 29 | fill: i16, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_obj_affine` is never used [INFO] [stdout] --> src/renderer.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn get_obj_affine(oam: &Vec, n: usize) -> [ObjectAttributes; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_rect_argb` is never used [INFO] [stdout] --> src/renderer.rs:402:4 [INFO] [stdout] | [INFO] [stdout] 402 | fn draw_rect_argb( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_draw_background` is never used [INFO] [stdout] --> src/renderer.rs:851:8 [INFO] [stdout] | [INFO] [stdout] 851 | pub fn test_draw_background(texture: &mut Texture, width: usize, height: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_u16` is never used [INFO] [stdout] --> src/serial.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl Serial { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn read_u16(&self, addr: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/sound.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Sound { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 3 | pub io_soundcnt: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 4 | pub io_soundcnt_1: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 5 | pub io_soundcnt_2: [u32; 2], // L, H [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 6 | pub io_soundcnt_3: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 7 | pub io_soundcnt_4: [u32; 2], // L, H [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 8 | [INFO] [stdout] 9 | pub io_bias: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | [INFO] [stdout] 11 | pub io_fifo_a: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | pub io_fifo_b: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mosaic` [INFO] [stdout] --> src/renderer.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | let mosaic = (msg.control & 0x40) != 0x00; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mosaic` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prio` [INFO] [stdout] --> src/renderer.rs:737:13 [INFO] [stdout] | [INFO] [stdout] 737 | let prio = obj.get_priority(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_prio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window_handle` [INFO] [stdout] --> src/main.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | let window_handle = thread::spawn(move || { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 83 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `PC_BACKTRACE` is never used [INFO] [stdout] --> src/backtrace.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | pub static mut PC_BACKTRACE: VecDeque<(u32, u32, bool, String, String)> = VecDeque::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `replace_registers_in_string` is never used [INFO] [stdout] --> src/backtrace.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn replace_registers_in_string(cpu: &CPU, str: &String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_mode`, `disable_irq`, and `operation_ldrh_strh` are never used [INFO] [stdout] --> src/cpu.rs:644:8 [INFO] [stdout] | [INFO] [stdout] 586 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 644 | fn set_mode(&mut self, mode: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 837 | fn disable_irq(&mut self, disable: bool) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2852 | fn operation_ldrh_strh(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/debugger.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | Delay(u32, u32), // (Break after X, counter of hits) [INFO] [stdout] | ----- ^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 36 | Delay((), ()), // (Break after X, counter of hits) [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Default` and `Conditional` are never constructed [INFO] [stdout] --> src/debugger.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub enum Breakpoint { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 35 | Default, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 36 | Delay(u32, u32), // (Break after X, counter of hits) [INFO] [stdout] 37 | Conditional(Box bool>), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `IO` and `LOG` are never constructed [INFO] [stdout] --> src/debugger.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub enum ViewState { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 41 | RAM, [INFO] [stdout] 42 | IO, [INFO] [stdout] | ^^ [INFO] [stdout] 43 | LOG, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Quit`, `Reset`, and `Back` are never constructed [INFO] [stdout] --> src/debugger.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum DebuggerEvent { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] 48 | None, [INFO] [stdout] 49 | Quit, [INFO] [stdout] | ^^^^ [INFO] [stdout] 50 | Reset, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 51 | Back, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GAME` is never constructed [INFO] [stdout] --> src/debugger.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum InputMode { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] 56 | GAME, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InputMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_ENABLE` is never used [INFO] [stdout] --> src/debugger.rs:60:11 [INFO] [stdout] | [INFO] [stdout] 60 | pub const MGBA_REG_DEBUG_ENABLE: usize = 0x04FFF780; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_FLAGS` is never used [INFO] [stdout] --> src/debugger.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const MGBA_REG_DEBUG_FLAGS: usize = 0x04FFF700; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MGBA_REG_DEBUG_STRING` is never used [INFO] [stdout] --> src/debugger.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | pub const MGBA_REG_DEBUG_STRING: usize = 0x04FFF600; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `state` and `input_mode` are never read [INFO] [stdout] --> src/debugger.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 130 | pub struct Debugger { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 131 | pub opcode: u32, [INFO] [stdout] 132 | pub state: ViewState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub input_mode: InputMode, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/debugger.rs:379:12 [INFO] [stdout] | [INFO] [stdout] 378 | impl Debugger { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 379 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_stack` is never used [INFO] [stdout] --> src/debugger.rs:388:4 [INFO] [stdout] | [INFO] [stdout] 388 | fn format_stack(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_rom` is never used [INFO] [stdout] --> src/debugger.rs:407:4 [INFO] [stdout] | [INFO] [stdout] 407 | fn format_rom(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_regs` is never used [INFO] [stdout] --> src/debugger.rs:441:4 [INFO] [stdout] | [INFO] [stdout] 441 | fn format_regs(cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_memory` is never used [INFO] [stdout] --> src/debugger.rs:489:4 [INFO] [stdout] | [INFO] [stdout] 489 | fn format_memory(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_opcode_thumb` is never used [INFO] [stdout] --> src/debugger.rs:522:4 [INFO] [stdout] | [INFO] [stdout] 522 | fn format_opcode_thumb(opcode: u16, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_opcode_arm` is never used [INFO] [stdout] --> src/debugger.rs:537:4 [INFO] [stdout] | [INFO] [stdout] 537 | fn format_opcode_arm(opcode: u32, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_debugger_state` is never used [INFO] [stdout] --> src/debugger.rs:552:4 [INFO] [stdout] | [INFO] [stdout] 552 | fn format_debugger_state( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_dma` is never used [INFO] [stdout] --> src/debugger.rs:578:4 [INFO] [stdout] | [INFO] [stdout] 578 | fn format_dma(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_interrupt` is never used [INFO] [stdout] --> src/debugger.rs:596:4 [INFO] [stdout] | [INFO] [stdout] 596 | fn format_interrupt(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_sound` is never used [INFO] [stdout] --> src/debugger.rs:625:4 [INFO] [stdout] | [INFO] [stdout] 625 | fn format_sound(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_lcd` is never used [INFO] [stdout] --> src/debugger.rs:654:4 [INFO] [stdout] | [INFO] [stdout] 654 | fn format_lcd(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_serial` is never used [INFO] [stdout] --> src/debugger.rs:699:4 [INFO] [stdout] | [INFO] [stdout] 699 | fn format_serial(cpu: &mut CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_view_ram` is never used [INFO] [stdout] --> src/debugger.rs:728:4 [INFO] [stdout] | [INFO] [stdout] 728 | fn draw_view_ram(f: &mut Frame, cpu: &mut CPU, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_view_io` is never used [INFO] [stdout] --> src/debugger.rs:762:4 [INFO] [stdout] | [INFO] [stdout] 762 | fn draw_view_io(f: &mut Frame, cpu: &mut CPU, area: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rlist_to_string` is never used [INFO] [stdout] --> src/disassembler.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn rlist_to_string(rlist: u8, str: &mut String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_arm` is never used [INFO] [stdout] --> src/disassembler.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn disassemble_arm(opcode: u32, pc: u32) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `disassemble_thumb` is never used [INFO] [stdout] --> src/disassembler.rs:269:8 [INFO] [stdout] | [INFO] [stdout] 269 | pub fn disassemble_thumb(opcode: u16) -> (String, String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `RAM`, `Object`, and `Full` are never constructed [INFO] [stdout] --> src/game_window.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum Dump { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] 21 | Video, [INFO] [stdout] 22 | RAM, [INFO] [stdout] | ^^^ [INFO] [stdout] 23 | Palette, [INFO] [stdout] 24 | Object, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | Full, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Dump` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Pause` is never constructed [INFO] [stdout] --> src/game_window.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum WindowEvent { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 33 | Pause(bool), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WindowEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/lcd.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl LCD { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn set_dispcnt(&mut self, val: u16) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_dispcnt_mode(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn set_background_control(&mut self, n: u8, val: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn get_window_dimensions(&self, n: u8) -> (u16, u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn get_winin(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn get_winout(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn get_mosaic(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn get_bldcnt(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn get_bldalpha(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn get_bldy(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `fill` is never read [INFO] [stdout] --> src/renderer.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 25 | struct ObjectAttributes { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 29 | fill: i16, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_obj_affine` is never used [INFO] [stdout] --> src/renderer.rs:71:4 [INFO] [stdout] | [INFO] [stdout] 71 | fn get_obj_affine(oam: &Vec, n: usize) -> [ObjectAttributes; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_rect_argb` is never used [INFO] [stdout] --> src/renderer.rs:402:4 [INFO] [stdout] | [INFO] [stdout] 402 | fn draw_rect_argb( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_draw_background` is never used [INFO] [stdout] --> src/renderer.rs:851:8 [INFO] [stdout] | [INFO] [stdout] 851 | pub fn test_draw_background(texture: &mut Texture, width: usize, height: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_u16` is never used [INFO] [stdout] --> src/serial.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl Serial { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn read_u16(&self, addr: u32) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/sound.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Sound { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 3 | pub io_soundcnt: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 4 | pub io_soundcnt_1: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 5 | pub io_soundcnt_2: [u32; 2], // L, H [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 6 | pub io_soundcnt_3: [u32; 3], // L, H, X [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 7 | pub io_soundcnt_4: [u32; 2], // L, H [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 8 | [INFO] [stdout] 9 | pub io_bias: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | [INFO] [stdout] 11 | pub io_fifo_a: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | pub io_fifo_b: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 88 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.85s [INFO] running `Command { std: "docker" "inspect" "6bea5e1e839a0bce53c90f9eda0c3d37b74b2726f05ab04df243745d134c5c32", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6bea5e1e839a0bce53c90f9eda0c3d37b74b2726f05ab04df243745d134c5c32", kill_on_drop: false }` [INFO] [stdout] 6bea5e1e839a0bce53c90f9eda0c3d37b74b2726f05ab04df243745d134c5c32