[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 try#69cf48176da7795067be67cef76e41a8aac9b134 for pr-146013-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmppadding%2Fgba" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [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-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mppadding/gba on toolchain 69cf48176da7795067be67cef76e41a8aac9b134 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+69cf48176da7795067be67cef76e41a8aac9b134" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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" "+69cf48176da7795067be67cef76e41a8aac9b134" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+69cf48176da7795067be67cef76e41a8aac9b134" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1b1864858ff06a9d01a2665a4ec6a6ef682e0743b3e5c60af93d6869d87cde0d [INFO] running `Command { std: "docker" "start" "-a" "1b1864858ff06a9d01a2665a4ec6a6ef682e0743b3e5c60af93d6869d87cde0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1b1864858ff06a9d01a2665a4ec6a6ef682e0743b3e5c60af93d6869d87cde0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1b1864858ff06a9d01a2665a4ec6a6ef682e0743b3e5c60af93d6869d87cde0d", kill_on_drop: false }` [INFO] [stdout] 1b1864858ff06a9d01a2665a4ec6a6ef682e0743b3e5c60af93d6869d87cde0d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+69cf48176da7795067be67cef76e41a8aac9b134" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9dbeb0d114b7d4497d2d3167ea18fb18177801ce897bf1cf538e3953501f0c49 [INFO] running `Command { std: "docker" "start" "-a" "9dbeb0d114b7d4497d2d3167ea18fb18177801ce897bf1cf538e3953501f0c49", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling libc v0.2.144 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling signal-hook v0.3.15 [INFO] [stderr] Compiling parking_lot_core v0.9.7 [INFO] [stderr] Compiling version-compare v0.1.1 [INFO] [stderr] Checking smallvec v1.10.0 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Checking unicode-width v0.1.10 [INFO] [stderr] Compiling sdl2 v0.35.2 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking unicode-segmentation v1.10.1 [INFO] [stderr] Checking iana-time-zone v0.1.56 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Compiling sdl2-sys v0.35.2 [INFO] [stderr] Compiling lock_api v0.4.9 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v0.8.6 [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 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)]` (part of `#[warn(unused)]`) 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` and `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 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)]` (part of `#[warn(unused)]`) 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 imports: `Stdout`, `backtrace::Backtrace`, `panic`, `self`, and `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`, and `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`, and `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`, and `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: `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: `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: `MGBA_REG_DEBUG_ENABLE` and `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: `Texture` and `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`, and `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`, and `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`, and `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`, and `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` and `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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 739 | let _if_enable = (self.io_if & irq) == irq; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 739 - let if_enable = (self.io_if & irq) == irq; [INFO] [stdout] 739 + let cpu::INTERNAL_PANIC = (self.io_if & irq) == irq; [INFO] [stdout] | [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] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 928 | let _enable = (control & 0x8000) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 928 - let enable = (control & 0x8000) != 0; [INFO] [stdout] 928 + let cpu::INTERNAL_PANIC = (control & 0x8000) != 0; [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1185 | let _src_addr = self.read_register(0); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1185 - let src_addr = self.read_register(0); [INFO] [stdout] 1185 + let cpu::STATUS_FLAG_I = self.read_register(0); [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1186 | let _dest_addr = self.read_register(1); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1186 - let dest_addr = self.read_register(1); [INFO] [stdout] 1186 + let cpu::STATUS_FLAG_I = self.read_register(1); [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1187 | let _num_calc = self.read_register(2); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1187 - let num_calc = self.read_register(2); [INFO] [stdout] 1187 + let cpu::STATUS_FLAG_I = self.read_register(2); [INFO] [stdout] | [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] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1188 | let _offset = self.read_register(3); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1188 - let offset = self.read_register(3); [INFO] [stdout] 1188 + let cpu::STATUS_FLAG_I = self.read_register(3); [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1195 | let _src_addr = self.read_register(0); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1195 - let src_addr = self.read_register(0); [INFO] [stdout] 1195 + let cpu::STATUS_FLAG_I = self.read_register(0); [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1196 | let _dest_addr = self.read_register(1); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1196 - let dest_addr = self.read_register(1); [INFO] [stdout] 1196 + let cpu::STATUS_FLAG_I = self.read_register(1); [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1203 | let _src_addr = self.read_register(0); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1203 - let src_addr = self.read_register(0); [INFO] [stdout] 1203 + let cpu::STATUS_FLAG_I = self.read_register(0); [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1204 | let _dest_addr = self.read_register(1); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1204 - let dest_addr = self.read_register(1); [INFO] [stdout] 1204 + let cpu::STATUS_FLAG_I = self.read_register(1); [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] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:3032:13 [INFO] [stdout] | [INFO] [stdout] 2982 | 0x00..=0x3F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 3005 | 0x40..=0x7F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 3012 | 0x80..=0x9F => self.arm_block_data_transfer(opcode), [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] 3013 | 0xA0..=0xBF => self.arm_branch(opcode), [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 3032 | _ => { [INFO] [stdout] | ^ ...and 3 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) 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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 739 | let _if_enable = (self.io_if & irq) == irq; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 739 - let if_enable = (self.io_if & irq) == irq; [INFO] [stdout] 739 + let cpu::INTERNAL_PANIC = (self.io_if & irq) == irq; [INFO] [stdout] | [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] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 928 | let _enable = (control & 0x8000) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 928 - let enable = (control & 0x8000) != 0; [INFO] [stdout] 928 + let cpu::INTERNAL_PANIC = (control & 0x8000) != 0; [INFO] [stdout] | [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: `src_addr` [INFO] [stdout] --> src/cpu.rs:1185:13 [INFO] [stdout] | [INFO] [stdout] 1185 | let src_addr = self.read_register(0); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1185 | let _src_addr = self.read_register(0); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1185 - let src_addr = self.read_register(0); [INFO] [stdout] 1185 + let cpu::STATUS_FLAG_I = self.read_register(0); [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1186 | let _dest_addr = self.read_register(1); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1186 - let dest_addr = self.read_register(1); [INFO] [stdout] 1186 + let cpu::STATUS_FLAG_I = self.read_register(1); [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1187 | let _num_calc = self.read_register(2); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1187 - let num_calc = self.read_register(2); [INFO] [stdout] 1187 + let cpu::STATUS_FLAG_I = self.read_register(2); [INFO] [stdout] | [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] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1188 | let _offset = self.read_register(3); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1188 - let offset = self.read_register(3); [INFO] [stdout] 1188 + let cpu::STATUS_FLAG_I = self.read_register(3); [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1195 | let _src_addr = self.read_register(0); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1195 - let src_addr = self.read_register(0); [INFO] [stdout] 1195 + let cpu::STATUS_FLAG_I = self.read_register(0); [INFO] [stdout] | [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: `dest_addr` [INFO] [stdout] --> src/cpu.rs:1196:13 [INFO] [stdout] | [INFO] [stdout] 1196 | let dest_addr = self.read_register(1); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1196 | let _dest_addr = self.read_register(1); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1196 - let dest_addr = self.read_register(1); [INFO] [stdout] 1196 + let cpu::STATUS_FLAG_I = self.read_register(1); [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1203 | let _src_addr = self.read_register(0); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1203 - let src_addr = self.read_register(0); [INFO] [stdout] 1203 + let cpu::STATUS_FLAG_I = self.read_register(0); [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1204 | let _dest_addr = self.read_register(1); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 1204 - let dest_addr = self.read_register(1); [INFO] [stdout] 1204 + let cpu::STATUS_FLAG_I = self.read_register(1); [INFO] [stdout] | [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] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/disassembler.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 23 | 0x00..=0x3F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 154 | 0x40..=0x7F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 203 | 0x80..=0x9F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 233 | 0xA0..=0xBF => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 265 | _ => ("???".to_string(), "???".to_string()), [INFO] [stdout] | ^ ...and 3 other patterns collectively make this unreachable [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] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 20 | let _cond = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ALU_MVN` [INFO] [stdout] | [INFO] [stdout] 20 - let cond = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] 20 + let cpu::ALU_MVN = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] | [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] | ^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 123 | let _i = (opcode & 0x2000000) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 123 - let i = (opcode & 0x2000000) != 0; [INFO] [stdout] 123 + let cpu::INTERNAL_PANIC = (opcode & 0x2000000) != 0; [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 166 | let _pre_index = (opcode & (1 << 24)) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 166 - let pre_index = (opcode & (1 << 24)) != 0; [INFO] [stdout] 166 + let cpu::INTERNAL_PANIC = (opcode & (1 << 24)) != 0; [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 204 | let _rlist = opcode & 0xFFFF; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 204 - let rlist = opcode & 0xFFFF; [INFO] [stdout] 204 + let cpu::STATUS_FLAG_I = opcode & 0xFFFF; [INFO] [stdout] | [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] | ^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 205 | let _rn = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ALU_MVN` [INFO] [stdout] | [INFO] [stdout] 205 - let rn = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] 205 + let cpu::ALU_MVN = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] | [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] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 207 | let _write_back = (opcode & 0x200000) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 207 - let write_back = (opcode & 0x200000) != 0; [INFO] [stdout] 207 + let cpu::INTERNAL_PANIC = (opcode & 0x200000) != 0; [INFO] [stdout] | [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] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 208 | let _psr = (opcode & 0x400000) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 208 - let psr = (opcode & 0x400000) != 0; [INFO] [stdout] 208 + let cpu::INTERNAL_PANIC = (opcode & 0x400000) != 0; [INFO] [stdout] | [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)]` (part of `#[warn(unused)]`) 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: `mosaic` [INFO] [stdout] --> src/renderer.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | let mosaic = (msg.control & 0x40) != 0x00; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 351 | let _mosaic = (msg.control & 0x40) != 0x00; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 351 - let mosaic = (msg.control & 0x40) != 0x00; [INFO] [stdout] 351 + let cpu::INTERNAL_PANIC = (msg.control & 0x40) != 0x00; [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] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:3032:13 [INFO] [stdout] | [INFO] [stdout] 2982 | 0x00..=0x3F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 3005 | 0x40..=0x7F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 3012 | 0x80..=0x9F => self.arm_block_data_transfer(opcode), [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] 3013 | 0xA0..=0xBF => self.arm_branch(opcode), [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 3032 | _ => { [INFO] [stdout] | ^ ...and 3 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [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] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 737 | let _prio = obj.get_priority(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ALU_MVN` [INFO] [stdout] | [INFO] [stdout] 737 - let prio = obj.get_priority(); [INFO] [stdout] 737 + let cpu::ALU_MVN = obj.get_priority(); [INFO] [stdout] | [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: `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)]` (part of `#[warn(unused)]`) 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(u32, u32), // (Break after X, counter of hits) [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: struct `Sound` is never constructed [INFO] [stdout] --> src/sound.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Sound { [INFO] [stdout] | ^^^^^ [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)]` (part of `#[warn(unused)]`) 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: 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] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/disassembler.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 23 | 0x00..=0x3F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 154 | 0x40..=0x7F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 203 | 0x80..=0x9F => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 233 | 0xA0..=0xBF => { [INFO] [stdout] | ----------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 265 | _ => ("???".to_string(), "???".to_string()), [INFO] [stdout] | ^ ...and 3 other patterns collectively make this unreachable [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] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 20 | let _cond = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ALU_MVN` [INFO] [stdout] | [INFO] [stdout] 20 - let cond = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] 20 + let cpu::ALU_MVN = ((opcode >> 28) & 0xF) as u8; [INFO] [stdout] | [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] | ^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 123 | let _i = (opcode & 0x2000000) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 123 - let i = (opcode & 0x2000000) != 0; [INFO] [stdout] 123 + let cpu::INTERNAL_PANIC = (opcode & 0x2000000) != 0; [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 166 | let _pre_index = (opcode & (1 << 24)) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 166 - let pre_index = (opcode & (1 << 24)) != 0; [INFO] [stdout] 166 + let cpu::INTERNAL_PANIC = (opcode & (1 << 24)) != 0; [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 204 | let _rlist = opcode & 0xFFFF; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STATUS_FLAG_I` [INFO] [stdout] | [INFO] [stdout] 204 - let rlist = opcode & 0xFFFF; [INFO] [stdout] 204 + let cpu::STATUS_FLAG_I = opcode & 0xFFFF; [INFO] [stdout] | [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] | ^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 205 | let _rn = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ALU_MVN` [INFO] [stdout] | [INFO] [stdout] 205 - let rn = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] 205 + let cpu::ALU_MVN = ((opcode >> 16) & 0xF) as u8; [INFO] [stdout] | [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] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 207 | let _write_back = (opcode & 0x200000) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 207 - let write_back = (opcode & 0x200000) != 0; [INFO] [stdout] 207 + let cpu::INTERNAL_PANIC = (opcode & 0x200000) != 0; [INFO] [stdout] | [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] | ^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 208 | let _psr = (opcode & 0x400000) != 0; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 208 - let psr = (opcode & 0x400000) != 0; [INFO] [stdout] 208 + let cpu::INTERNAL_PANIC = (opcode & 0x400000) != 0; [INFO] [stdout] | [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] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 351 | let _mosaic = (msg.control & 0x40) != 0x00; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `INTERNAL_PANIC` [INFO] [stdout] | [INFO] [stdout] 351 - let mosaic = (msg.control & 0x40) != 0x00; [INFO] [stdout] 351 + let cpu::INTERNAL_PANIC = (msg.control & 0x40) != 0x00; [INFO] [stdout] | [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] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 737 | let _prio = obj.get_priority(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ALU_MVN` [INFO] [stdout] | [INFO] [stdout] 737 - let prio = obj.get_priority(); [INFO] [stdout] 737 + let cpu::ALU_MVN = obj.get_priority(); [INFO] [stdout] | [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)]` (part of `#[warn(unused)]`) 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(u32, u32), // (Break after X, counter of hits) [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: struct `Sound` is never constructed [INFO] [stdout] --> src/sound.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Sound { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.89s [INFO] running `Command { std: "docker" "inspect" "9dbeb0d114b7d4497d2d3167ea18fb18177801ce897bf1cf538e3953501f0c49", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9dbeb0d114b7d4497d2d3167ea18fb18177801ce897bf1cf538e3953501f0c49", kill_on_drop: false }` [INFO] [stdout] 9dbeb0d114b7d4497d2d3167ea18fb18177801ce897bf1cf538e3953501f0c49