[INFO] cloning repository https://github.com/meloidae/gubaa [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/meloidae/gubaa" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmeloidae%2Fgubaa", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmeloidae%2Fgubaa'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d5c428576fb4d5534e8de59471ce67d0e13778be [INFO] building meloidae/gubaa against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmeloidae%2Fgubaa" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/meloidae/gubaa on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/meloidae/gubaa [INFO] finished tweaking git repo https://github.com/meloidae/gubaa [INFO] tweaked toml for git repo https://github.com/meloidae/gubaa written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/meloidae/gubaa 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded aho-corasick v0.7.12 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] dd80e4cdbab1df844a97ef015fc7527fd663ff1ea11ac9b95935d9d700b87b71 [INFO] running `Command { std: "docker" "start" "-a" "dd80e4cdbab1df844a97ef015fc7527fd663ff1ea11ac9b95935d9d700b87b71", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dd80e4cdbab1df844a97ef015fc7527fd663ff1ea11ac9b95935d9d700b87b71", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dd80e4cdbab1df844a97ef015fc7527fd663ff1ea11ac9b95935d9d700b87b71", kill_on_drop: false }` [INFO] [stdout] dd80e4cdbab1df844a97ef015fc7527fd663ff1ea11ac9b95935d9d700b87b71 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f4581ccc8c7a7e466a8fbc57525883e4af96220f86f23a4ead29359350b7e112 [INFO] running `Command { std: "docker" "start" "-a" "f4581ccc8c7a7e466a8fbc57525883e4af96220f86f23a4ead29359350b7e112", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Compiling libc v0.2.69 [INFO] [stderr] Compiling autocfg v1.0.0 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling unicode-xid v0.0.4 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling quote v0.3.15 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling thread_local v1.0.1 [INFO] [stderr] Compiling synom v0.11.3 [INFO] [stderr] Compiling regex-syntax v0.6.18 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling humantime v1.3.0 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Compiling num-traits v0.2.11 [INFO] [stderr] Compiling aho-corasick v0.7.12 [INFO] [stderr] Compiling termcolor v1.1.0 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling enum-primitive-derive v0.1.2 [INFO] [stderr] Compiling rand v0.3.23 [INFO] [stderr] Compiling regex v1.3.9 [INFO] [stderr] Compiling env_logger v0.7.1 [INFO] [stderr] Compiling gba_emu v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `DerefMut` and `Deref` [INFO] [stdout] --> src/memory.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ops::{Deref, DerefMut}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr` [INFO] [stdout] --> src/memory.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ptr; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cpu::Cpu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::cpu::Cpu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StatusRegister` [INFO] [stdout] --> src/arm/ins_arm.rs:1:41 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{Condition, ArmCore, REG_PC, StatusRegister, OperatingMode}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, and `info` [INFO] [stdout] --> src/arm/ins_arm.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | use log::{error, warn, info, debug}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ArmIns` [INFO] [stdout] --> src/arm/mod.rs:8:27 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::arm::ins_arm::{ArmIns, ArmLookupTable}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `game` [INFO] [stdout] --> src/cpu.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new(bios: &[u8], game: &[u8]) -> Box { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_game` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | let mut result = Box::new(Cpu { [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: unused variable: `address` [INFO] [stdout] --> src/arm/ins_arm.rs:379:9 [INFO] [stdout] | [INFO] [stdout] 379 | let address = arm.regs[ins.reg(0)]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arm` [INFO] [stdout] --> src/arm/ins_arm.rs:385:27 [INFO] [stdout] | [INFO] [stdout] 385 | fn halfword_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_arm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/ins_arm.rs:385:46 [INFO] [stdout] | [INFO] [stdout] 385 | fn halfword_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arm` [INFO] [stdout] --> src/arm/ins_arm.rs:521:24 [INFO] [stdout] | [INFO] [stdout] 521 | fn block_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_arm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/ins_arm.rs:521:43 [INFO] [stdout] | [INFO] [stdout] 521 | fn block_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arm` [INFO] [stdout] --> src/arm/ins_arm.rs:524:11 [INFO] [stdout] | [INFO] [stdout] 524 | fn branch(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_arm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/ins_arm.rs:524:30 [INFO] [stdout] | [INFO] [stdout] 524 | fn branch(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arm` [INFO] [stdout] --> src/arm/ins_arm.rs:527:23 [INFO] [stdout] | [INFO] [stdout] 527 | fn software_interrupt(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_arm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/ins_arm.rs:527:42 [INFO] [stdout] | [INFO] [stdout] 527 | fn software_interrupt(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/mod.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | let ins = self.pipe.ins[0]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/main.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | let mut cpu = Cpu::new(bios, game); [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/main.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut cpu = Cpu::new(bios, game); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_IOREGS` is never used [INFO] [stdout] --> src/cpu.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const BASE_IOREGS: u32 = 0x4; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_PALETTE` is never used [INFO] [stdout] --> src/cpu.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const BASE_PALETTE: u32 = 0x5; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_VRAM` is never used [INFO] [stdout] --> src/cpu.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const BASE_VRAM: u32 = 0x06; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_OAM` is never used [INFO] [stdout] --> src/cpu.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const BASE_OAM: u32 = 0x07; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_GAMEPAK_START` is never used [INFO] [stdout] --> src/cpu.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const BASE_GAMEPAK_START: u32 = 0x8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_GAMEPAK_END` is never used [INFO] [stdout] --> src/cpu.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const BASE_GAMEPAK_END: u32 = 0xd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Sequential` is never constructed [INFO] [stdout] --> src/arm/mod.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 54 | enum Access { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] 55 | Nonsequential = 0, [INFO] [stdout] 56 | Sequential = 1, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BANK_COUNT` is never used [INFO] [stdout] --> src/arm/mod.rs:59:7 [INFO] [stdout] | [INFO] [stdout] 59 | const BANK_COUNT: usize = 6; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `fetch_type` and `ins` are never read [INFO] [stdout] --> src/arm/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 61 | struct Pipeline { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 62 | fetch_type: Access, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 63 | ins: [u32; 2], [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_flags` is never used [INFO] [stdout] --> src/arm/mod.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 120 | impl StatusRegister { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] 121 | fn set_flags(&mut self, bits: u32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_SP` is never used [INFO] [stdout] --> src/arm/mod.rs:146:11 [INFO] [stdout] | [INFO] [stdout] 146 | pub const REG_SP: usize = 13; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_LR` is never used [INFO] [stdout] --> src/arm/mod.rs:147:11 [INFO] [stdout] | [INFO] [stdout] 147 | pub const REG_LR: usize = 14; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_PC` is never used [INFO] [stdout] --> src/arm/mod.rs:148:11 [INFO] [stdout] | [INFO] [stdout] 148 | pub const REG_PC: usize = 15; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ArmCore` is never constructed [INFO] [stdout] --> src/arm/mod.rs:150:12 [INFO] [stdout] | [INFO] [stdout] 150 | pub struct ArmCore<'a> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/arm/mod.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 160 | impl ArmCore<'_> { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 161 | pub fn new(memref: &mut dyn Memory) -> ArmCore { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | fn run(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | fn check_condition(&self, cond: Condition) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | fn get_register_bank_mode(&self, mode: OperatingMode) -> Bank { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | fn switch_mode(&mut self, mode: OperatingMode) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | fn set_reg(&mut self, index: usize, value: u32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | fn set_cpsr(&mut self, bits: u32) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | fn swap_bank(&mut self, mode: OperatingMode) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | fn get_spsr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 267 | fn get_spsr_mut(&mut self) -> Option<&mut StatusRegister> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DisResult` is never used [INFO] [stdout] --> src/arm/common.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub type DisResult = Result>; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `err` is never used [INFO] [stdout] --> src/arm/common.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn err>>(t: T) -> Box { t.into() } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lsl_carry` is never used [INFO] [stdout] --> src/arm/common.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn lsl_carry(arm: &mut ArmCore, rm: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lsl_no_carry` is never used [INFO] [stdout] --> src/arm/common.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn lsl_no_carry(_arm: &ArmCore, rm: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lsr_carry` is never used [INFO] [stdout] --> src/arm/common.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn lsr_carry(arm: &mut ArmCore, rm: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lsr_no_carry` is never used [INFO] [stdout] --> src/arm/common.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn lsr_no_carry(_arm: &ArmCore, rm: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `asr_carry` is never used [INFO] [stdout] --> src/arm/common.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn asr_carry(arm: &mut ArmCore, rm: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `asr_no_carry` is never used [INFO] [stdout] --> src/arm/common.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn asr_no_carry(_arm: &ArmCore, rm: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ror_carry` is never used [INFO] [stdout] --> src/arm/common.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn ror_carry(arm: &mut ArmCore, rm: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ror_no_carry` is never used [INFO] [stdout] --> src/arm/common.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn ror_no_carry(arm: &ArmCore, rm: u32, shift: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `and` is never used [INFO] [stdout] --> src/arm/common.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | pub fn and(arm: &mut ArmCore, op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `eor` is never used [INFO] [stdout] --> src/arm/common.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn eor(arm: &mut ArmCore, op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/arm/common.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn add(arm: &mut ArmCore, op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `adc` is never used [INFO] [stdout] --> src/arm/common.rs:131:8 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn adc(arm: &mut ArmCore, op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sub` is never used [INFO] [stdout] --> src/arm/common.rs:144:8 [INFO] [stdout] | [INFO] [stdout] 144 | pub fn sub(arm: &mut ArmCore, op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sbc` is never used [INFO] [stdout] --> src/arm/common.rs:154:8 [INFO] [stdout] | [INFO] [stdout] 154 | pub fn sbc(arm: &mut ArmCore, op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `orr` is never used [INFO] [stdout] --> src/arm/common.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn orr(arm: &mut ArmCore, op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mov` is never used [INFO] [stdout] --> src/arm/common.rs:175:8 [INFO] [stdout] | [INFO] [stdout] 175 | pub fn mov(arm: &mut ArmCore, _op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bic` is never used [INFO] [stdout] --> src/arm/common.rs:182:8 [INFO] [stdout] | [INFO] [stdout] 182 | pub fn bic(arm: &mut ArmCore, op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mvn` is never used [INFO] [stdout] --> src/arm/common.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn mvn(arm: &mut ArmCore, _op1: u32, op2: u32, set_flag: bool) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_nz` is never used [INFO] [stdout] --> src/arm/common.rs:199:8 [INFO] [stdout] | [INFO] [stdout] 199 | pub fn set_nz(arm: &mut ArmCore, value: u32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_nz_long` is never used [INFO] [stdout] --> src/arm/common.rs:205:8 [INFO] [stdout] | [INFO] [stdout] 205 | pub fn set_nz_long(arm: &mut ArmCore, value: u64) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Bit` is never used [INFO] [stdout] --> src/arm/common.rs:211:10 [INFO] [stdout] | [INFO] [stdout] 211 | pub enum Bit { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Bit` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `IndexBitPair` is never used [INFO] [stdout] --> src/arm/common.rs:217:17 [INFO] [stdout] | [INFO] [stdout] 217 | pub(super) type IndexBitPair = (usize, Bit); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_bit_format` is never used [INFO] [stdout] --> src/arm/common.rs:219:15 [INFO] [stdout] | [INFO] [stdout] 219 | pub(super) fn process_bit_format(fmt: &str, accept_index: fn(usize) -> bool) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `spec_char_to_bit` is never used [INFO] [stdout] --> src/arm/common.rs:231:4 [INFO] [stdout] | [INFO] [stdout] 231 | fn spec_char_to_bit(c: char) -> Bit { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `specs_matches` is never used [INFO] [stdout] --> src/arm/common.rs:239:15 [INFO] [stdout] | [INFO] [stdout] 239 | pub(super) fn specs_matches(index_bits: &[IndexBitPair], disc: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ArmIns` is never constructed [INFO] [stdout] --> src/arm/ins_arm.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct ArmIns(u32); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ArmIns` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `slice`, `reg`, `flag`, `cond`, and `discriminant` are never used [INFO] [stdout] --> src/arm/ins_arm.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl ArmIns { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 17 | pub fn new(bits: u32) -> ArmIns { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn slice(&self, start: u32, end: u32) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | fn reg(&self, offset: u32) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn flag(&self, offset: u32) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn cond(&self) -> Condition { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn discriminant(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ArmFn` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:43:10 [INFO] [stdout] | [INFO] [stdout] 43 | pub type ArmFn = fn(&mut ArmCore, ArmIns); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_rotated_immediate` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn get_rotated_immediate(arm: &mut ArmCore, ins: ArmIns, set_carry: bool) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_shifted_register` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn get_shifted_register(arm: &mut ArmCore, ins: ArmIns, set_carry: bool) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `undefined` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn undefined(_arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_processing` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:92:4 [INFO] [stdout] | [INFO] [stdout] 92 | fn data_processing(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mrs` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn mrs(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `msr_reg` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:179:4 [INFO] [stdout] | [INFO] [stdout] 179 | fn msr_reg(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `msr_reg_all` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:191:4 [INFO] [stdout] | [INFO] [stdout] 191 | fn msr_reg_all(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `msr_reg_flag` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:211:4 [INFO] [stdout] | [INFO] [stdout] 211 | fn msr_reg_flag(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `msr_imm_flag` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:231:4 [INFO] [stdout] | [INFO] [stdout] 231 | fn msr_imm_flag(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:252:4 [INFO] [stdout] | [INFO] [stdout] 252 | fn multiply(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `multiply_long` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:285:4 [INFO] [stdout] | [INFO] [stdout] 285 | fn multiply_long(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `swp` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:337:4 [INFO] [stdout] | [INFO] [stdout] 337 | fn swp(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `swpb` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:357:4 [INFO] [stdout] | [INFO] [stdout] 357 | fn swpb(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `branch_and_exchange` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:378:4 [INFO] [stdout] | [INFO] [stdout] 378 | fn branch_and_exchange(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `halfword_data_transfer` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:385:4 [INFO] [stdout] | [INFO] [stdout] 385 | fn halfword_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `single_data_load` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:389:4 [INFO] [stdout] | [INFO] [stdout] 389 | fn single_data_load(arm: &mut ArmCore, ins: ArmIns, load_fn: impl Fn(&mut dyn Memory, u32) -> u32, offset_fn: impl Fn(&mut ArmCore, ArmIn... [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ldr_imm` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:432:4 [INFO] [stdout] | [INFO] [stdout] 432 | fn ldr_imm(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ldr_rot_reg` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:436:4 [INFO] [stdout] | [INFO] [stdout] 436 | fn ldr_rot_reg(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ldrb_imm` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:444:4 [INFO] [stdout] | [INFO] [stdout] 444 | fn ldrb_imm(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ldrb_rot_reg` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:448:4 [INFO] [stdout] | [INFO] [stdout] 448 | fn ldrb_rot_reg(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `single_data_store` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:456:4 [INFO] [stdout] | [INFO] [stdout] 456 | fn single_data_store(arm: &mut ArmCore, ins: ArmIns, store_fn: impl Fn(&mut dyn Memory, u32, u32), offset_fn: impl Fn(&mut ArmCore, ArmIn... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `str_imm` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:497:4 [INFO] [stdout] | [INFO] [stdout] 497 | fn str_imm(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `str_rot_reg` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:501:4 [INFO] [stdout] | [INFO] [stdout] 501 | fn str_rot_reg(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strb_imm` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:509:4 [INFO] [stdout] | [INFO] [stdout] 509 | fn strb_imm(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `strb_rot_reg` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:513:4 [INFO] [stdout] | [INFO] [stdout] 513 | fn strb_rot_reg(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `block_data_transfer` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:521:4 [INFO] [stdout] | [INFO] [stdout] 521 | fn block_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `branch` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:524:4 [INFO] [stdout] | [INFO] [stdout] 524 | fn branch(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `software_interrupt` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:527:4 [INFO] [stdout] | [INFO] [stdout] 527 | fn software_interrupt(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ArmSpecs` is never constructed [INFO] [stdout] --> src/arm/ins_arm.rs:530:8 [INFO] [stdout] | [INFO] [stdout] 530 | struct ArmSpecs<'a>(Vec, &'a str, ArmFn); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `try_match_discriminant` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:533:8 [INFO] [stdout] | [INFO] [stdout] 532 | impl ArmSpecs<'_> { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 533 | fn try_match_discriminant(&self, disc: u32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ArmLookupTable` is never constructed [INFO] [stdout] --> src/arm/ins_arm.rs:542:12 [INFO] [stdout] | [INFO] [stdout] 542 | pub struct ArmLookupTable { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `compute` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:549:12 [INFO] [stdout] | [INFO] [stdout] 548 | impl ArmLookupTable { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 549 | pub fn compute() -> ArmLookupTable { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_arm_format` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:577:4 [INFO] [stdout] | [INFO] [stdout] 577 | fn process_arm_format(fmt: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `ARM_PATTERN_TABLE` is never used [INFO] [stdout] --> src/arm/ins_arm.rs:581:12 [INFO] [stdout] | [INFO] [stdout] 581 | pub static ARM_PATTERN_TABLE: &[(&str, &str, ArmFn)] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.33s [INFO] running `Command { std: "docker" "inspect" "f4581ccc8c7a7e466a8fbc57525883e4af96220f86f23a4ead29359350b7e112", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f4581ccc8c7a7e466a8fbc57525883e4af96220f86f23a4ead29359350b7e112", kill_on_drop: false }` [INFO] [stdout] f4581ccc8c7a7e466a8fbc57525883e4af96220f86f23a4ead29359350b7e112 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6761eedd8579e5b994dc8855c3ac4ea5614489113f52c71be8ae79c81ba51fbc [INFO] running `Command { std: "docker" "start" "-a" "6761eedd8579e5b994dc8855c3ac4ea5614489113f52c71be8ae79c81ba51fbc", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Compiling gba_emu v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `DerefMut` and `Deref` [INFO] [stdout] --> src/memory.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ops::{Deref, DerefMut}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr` [INFO] [stdout] --> src/memory.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ptr; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cpu::Cpu` [INFO] [stdout] --> src/memory.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::cpu::Cpu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/cpu.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StatusRegister` [INFO] [stdout] --> src/arm/ins_arm.rs:1:41 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{Condition, ArmCore, REG_PC, StatusRegister, OperatingMode}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, and `info` [INFO] [stdout] --> src/arm/ins_arm.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | use log::{error, warn, info, debug}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ArmIns` [INFO] [stdout] --> src/arm/mod.rs:8:27 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::arm::ins_arm::{ArmIns, ArmLookupTable}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `game` [INFO] [stdout] --> src/cpu.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new(bios: &[u8], game: &[u8]) -> Box { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_game` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | let mut result = Box::new(Cpu { [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: unused variable: `address` [INFO] [stdout] --> src/arm/ins_arm.rs:379:9 [INFO] [stdout] | [INFO] [stdout] 379 | let address = arm.regs[ins.reg(0)]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arm` [INFO] [stdout] --> src/arm/ins_arm.rs:385:27 [INFO] [stdout] | [INFO] [stdout] 385 | fn halfword_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_arm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/ins_arm.rs:385:46 [INFO] [stdout] | [INFO] [stdout] 385 | fn halfword_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arm` [INFO] [stdout] --> src/arm/ins_arm.rs:521:24 [INFO] [stdout] | [INFO] [stdout] 521 | fn block_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_arm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/ins_arm.rs:521:43 [INFO] [stdout] | [INFO] [stdout] 521 | fn block_data_transfer(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arm` [INFO] [stdout] --> src/arm/ins_arm.rs:524:11 [INFO] [stdout] | [INFO] [stdout] 524 | fn branch(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_arm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/ins_arm.rs:524:30 [INFO] [stdout] | [INFO] [stdout] 524 | fn branch(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `arm` [INFO] [stdout] --> src/arm/ins_arm.rs:527:23 [INFO] [stdout] | [INFO] [stdout] 527 | fn software_interrupt(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_arm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/ins_arm.rs:527:42 [INFO] [stdout] | [INFO] [stdout] 527 | fn software_interrupt(arm: &mut ArmCore, ins: ArmIns) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lut` [INFO] [stdout] --> src/arm/ins_arm.rs:701:13 [INFO] [stdout] | [INFO] [stdout] 701 | let lut = ArmLookupTable::compute(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_lut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ins` [INFO] [stdout] --> src/arm/mod.rs:174:13 [INFO] [stdout] | [INFO] [stdout] 174 | let ins = self.pipe.ins[0]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/main.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | let mut cpu = Cpu::new(bios, game); [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/main.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut cpu = Cpu::new(bios, game); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_IOREGS` is never used [INFO] [stdout] --> src/cpu.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const BASE_IOREGS: u32 = 0x4; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_PALETTE` is never used [INFO] [stdout] --> src/cpu.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const BASE_PALETTE: u32 = 0x5; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_VRAM` is never used [INFO] [stdout] --> src/cpu.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const BASE_VRAM: u32 = 0x06; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_OAM` is never used [INFO] [stdout] --> src/cpu.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const BASE_OAM: u32 = 0x07; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_GAMEPAK_START` is never used [INFO] [stdout] --> src/cpu.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const BASE_GAMEPAK_START: u32 = 0x8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BASE_GAMEPAK_END` is never used [INFO] [stdout] --> src/cpu.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const BASE_GAMEPAK_END: u32 = 0xd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Sequential` is never constructed [INFO] [stdout] --> src/arm/mod.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 54 | enum Access { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] 55 | Nonsequential = 0, [INFO] [stdout] 56 | Sequential = 1, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `fetch_type` and `ins` are never read [INFO] [stdout] --> src/arm/mod.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 61 | struct Pipeline { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 62 | fetch_type: Access, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 63 | ins: [u32; 2], [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_SP` is never used [INFO] [stdout] --> src/arm/mod.rs:146:11 [INFO] [stdout] | [INFO] [stdout] 146 | pub const REG_SP: usize = 13; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REG_LR` is never used [INFO] [stdout] --> src/arm/mod.rs:147:11 [INFO] [stdout] | [INFO] [stdout] 147 | pub const REG_LR: usize = 14; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `pipe` and `arm_lut` are never read [INFO] [stdout] --> src/arm/mod.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 150 | pub struct ArmCore<'a> { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 155 | pipe: Pipeline, [INFO] [stdout] | ^^^^ [INFO] [stdout] 156 | memory: &'a mut dyn Memory, [INFO] [stdout] 157 | arm_lut: ArmLookupTable, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `run`, and `check_condition` are never used [INFO] [stdout] --> src/arm/mod.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 160 | impl ArmCore<'_> { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 161 | pub fn new(memref: &mut dyn Memory) -> ArmCore { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | fn run(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | fn check_condition(&self, cond: Condition) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `cond`, and `discriminant` are never used [INFO] [stdout] --> src/arm/ins_arm.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl ArmIns { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 17 | pub fn new(bits: u32) -> ArmIns { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn cond(&self) -> Condition { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn discriminant(&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `1` is never read [INFO] [stdout] --> src/arm/ins_arm.rs:530:40 [INFO] [stdout] | [INFO] [stdout] 530 | struct ArmSpecs<'a>(Vec, &'a str, ArmFn); [INFO] [stdout] | -------- field in this struct ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 530 | struct ArmSpecs<'a>(Vec, (), ArmFn); [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `disc2idx` and `idx2fn` are never read [INFO] [stdout] --> src/arm/ins_arm.rs:543:5 [INFO] [stdout] | [INFO] [stdout] 542 | pub struct ArmLookupTable { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 543 | disc2idx: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 544 | idx2fn: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.64s [INFO] running `Command { std: "docker" "inspect" "6761eedd8579e5b994dc8855c3ac4ea5614489113f52c71be8ae79c81ba51fbc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6761eedd8579e5b994dc8855c3ac4ea5614489113f52c71be8ae79c81ba51fbc", kill_on_drop: false }` [INFO] [stdout] 6761eedd8579e5b994dc8855c3ac4ea5614489113f52c71be8ae79c81ba51fbc