[INFO] fetching crate gcrecomp-core 0.0.1-alpha... [INFO] testing gcrecomp-core-0.0.1-alpha against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate gcrecomp-core 0.0.1-alpha into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate gcrecomp-core 0.0.1-alpha [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate gcrecomp-core 0.0.1-alpha [INFO] tweaked toml for crates.io crate gcrecomp-core 0.0.1-alpha written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate gcrecomp-core 0.0.1-alpha on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate gcrecomp-core 0.0.1-alpha 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded scroll_derive v0.12.1 [INFO] [stderr] Downloaded which v5.0.0 [INFO] [stderr] Downloaded scroll v0.12.0 [INFO] [stderr] Downloaded goblin v0.8.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8033a54f6cf49486ccc28103a75ec72b4b49e91e33c2c69219061ad879508bca [INFO] running `Command { std: "docker" "start" "-a" "8033a54f6cf49486ccc28103a75ec72b4b49e91e33c2c69219061ad879508bca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8033a54f6cf49486ccc28103a75ec72b4b49e91e33c2c69219061ad879508bca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8033a54f6cf49486ccc28103a75ec72b4b49e91e33c2c69219061ad879508bca", kill_on_drop: false }` [INFO] [stdout] 8033a54f6cf49486ccc28103a75ec72b4b49e91e33c2c69219061ad879508bca [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] af5b3611361a65865a7a16e41cb547ee332f1c1e0a62e70b00532386a57a140b [INFO] running `Command { std: "docker" "start" "-a" "af5b3611361a65865a7a16e41cb547ee332f1c1e0a62e70b00532386a57a140b", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling home v0.5.12 [INFO] [stderr] Compiling plain v0.2.3 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling which v5.0.0 [INFO] [stderr] Compiling scroll_derive v0.12.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling scroll v0.12.0 [INFO] [stderr] Compiling goblin v0.8.2 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling gcrecomp-core v0.0.1-alpha (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/recompiler/decoder.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | use anyhow::{Context, Result}; [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: `smallvec::SmallVec` [INFO] [stdout] --> src/recompiler/analysis/type_inference.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use smallvec::SmallVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Loop` [INFO] [stdout] --> src/recompiler/analysis/loop_analysis.rs:2:67 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::recompiler::analysis::control_flow::{ControlFlowGraph, Loop}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/recompiler/codegen/mod.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use anyhow::{Result, Context}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::recompiler::analysis::type_inference::TypeInferenceEngine` [INFO] [stdout] --> src/recompiler/pipeline.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use crate::recompiler::analysis::type_inference::TypeInferenceEngine; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `smallvec::SmallVec` [INFO] [stdout] --> src/recompiler/pipeline.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | use smallvec::SmallVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1093:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1093 | 31 if ((word >> 21) & 0x1F) == 8 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1101:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1101 | 31 if ((word >> 21) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1109:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1109 | 31 if ((word >> 21) & 0x1F) == 9 && ((word >> 11) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1117:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1117 | 31 if ((word >> 21) & 0x1F) == 9 && ((word >> 11) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1310:9 [INFO] [stdout] | [INFO] [stdout] 1238 | 234 => Ok(( [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1310 | 234 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1320:9 [INFO] [stdout] | [INFO] [stdout] 1228 | 202 => Ok(( [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1320 | 202 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1352:9 [INFO] [stdout] | [INFO] [stdout] 1248 | 74 => Ok(( [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1352 | 74 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1362:9 [INFO] [stdout] | [INFO] [stdout] 1258 | 106 => Ok(( [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1362 | 106 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:2168:9 [INFO] [stdout] | [INFO] [stdout] 1693 | 32 => { [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 2168 | 32 if (word >> 26) == 63 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rc` [INFO] [stdout] --> src/recompiler/decoder.rs:1160:9 [INFO] [stdout] | [INFO] [stdout] 1160 | let rc: bool = (word & 1) != 0; // Record bit (update condition register) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rc` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imm` [INFO] [stdout] --> src/recompiler/analysis/control_flow.rs:313:46 [INFO] [stdout] | [INFO] [stdout] 313 | if let Some(Operand::Immediate32(imm)) = inst.instruction.operands.first() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_imm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/recompiler/analysis/inter_procedural.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | let mut edges = Vec::new(); [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/recompiler/analysis/loop_analysis.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let mut ivs = Vec::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/analysis/loop_analysis.rs:35:25 [INFO] [stdout] | [INFO] [stdout] 35 | for inst in &block.instructions { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/codegen/memory.rs:7:26 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn generate_load(inst: &DecodedInstruction) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/codegen/memory.rs:13:27 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn generate_store(inst: &DecodedInstruction) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `def_use_chains` [INFO] [stdout] --> src/recompiler/codegen/mod.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let def_use_chains = crate::recompiler::analysis::data_flow::DataFlowAnalyzer::build_def_use_chains(instructions); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_def_use_chains` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bo` [INFO] [stdout] --> src/recompiler/codegen/mod.rs:613:21 [INFO] [stdout] | [INFO] [stdout] 613 | let bo = match &inst.instruction.operands[0] { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `def_use_chains` [INFO] [stdout] --> src/recompiler/pipeline.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let def_use_chains = DataFlowAnalyzer::build_def_use_chains(&instructions); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_def_use_chains` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `live_analysis` [INFO] [stdout] --> src/recompiler/pipeline.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let live_analysis = DataFlowAnalyzer::live_variable_analysis(&cfg); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_live_analysis` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/recompiler/optimizer.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let mut constants: HashMap> = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `constants` [INFO] [stdout] --> src/recompiler/optimizer.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let mut constants: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constants` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/recompiler/optimizer.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let mut used_registers: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `used_registers` [INFO] [stdout] --> src/recompiler/optimizer.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let mut used_registers: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_used_registers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/optimizer.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | for inst in instructions.iter().rev() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `register_map`, `next_temp`, and `basic_block_map` are never read [INFO] [stdout] --> src/recompiler/codegen/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct CodeGenerator { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 11 | indent_level: usize, [INFO] [stdout] 12 | register_map: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 13 | next_temp: usize, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | basic_block_map: HashMap, // Map addresses to basic block indices [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Variable` is never constructed [INFO] [stdout] --> src/recompiler/codegen/mod.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 22 | enum RegisterValue { [INFO] [stdout] | ------------- variant in this enum [INFO] [stdout] 23 | Constant(u32), [INFO] [stdout] 24 | Variable(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RegisterValue` 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: methods `build_basic_blocks` and `type_to_rust` are never used [INFO] [stdout] --> src/recompiler/codegen/mod.rs:222:8 [INFO] [stdout] | [INFO] [stdout] 28 | impl CodeGenerator { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 222 | fn build_basic_blocks<'a>(&self, instructions: &'a [DecodedInstruction]) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1117 | fn type_to_rust(&self, ty: &crate::recompiler::analysis::TypeInfo) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `register_allocation` is never read [INFO] [stdout] --> src/recompiler/optimizer.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Optimizer { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | register_allocation: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.23s [INFO] running `Command { std: "docker" "inspect" "af5b3611361a65865a7a16e41cb547ee332f1c1e0a62e70b00532386a57a140b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "af5b3611361a65865a7a16e41cb547ee332f1c1e0a62e70b00532386a57a140b", kill_on_drop: false }` [INFO] [stdout] af5b3611361a65865a7a16e41cb547ee332f1c1e0a62e70b00532386a57a140b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 61f73079e7940f8fc617dd68367e681dae85515e4951a7796c1a15f3373635c3 [INFO] running `Command { std: "docker" "start" "-a" "61f73079e7940f8fc617dd68367e681dae85515e4951a7796c1a15f3373635c3", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/recompiler/decoder.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | use anyhow::{Context, Result}; [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: `smallvec::SmallVec` [INFO] [stdout] --> src/recompiler/analysis/type_inference.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use smallvec::SmallVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Loop` [INFO] [stdout] --> src/recompiler/analysis/loop_analysis.rs:2:67 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::recompiler::analysis::control_flow::{ControlFlowGraph, Loop}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/recompiler/codegen/mod.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use anyhow::{Result, Context}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::recompiler::analysis::type_inference::TypeInferenceEngine` [INFO] [stdout] --> src/recompiler/pipeline.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use crate::recompiler::analysis::type_inference::TypeInferenceEngine; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling gcrecomp-core v0.0.1-alpha (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `smallvec::SmallVec` [INFO] [stdout] --> src/recompiler/pipeline.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | use smallvec::SmallVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1093:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1093 | 31 if ((word >> 21) & 0x1F) == 8 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1101:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1101 | 31 if ((word >> 21) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1109:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1109 | 31 if ((word >> 21) & 0x1F) == 9 && ((word >> 11) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1117:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1117 | 31 if ((word >> 21) & 0x1F) == 9 && ((word >> 11) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1310:9 [INFO] [stdout] | [INFO] [stdout] 1238 | 234 => Ok(( [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1310 | 234 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1320:9 [INFO] [stdout] | [INFO] [stdout] 1228 | 202 => Ok(( [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1320 | 202 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1352:9 [INFO] [stdout] | [INFO] [stdout] 1248 | 74 => Ok(( [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1352 | 74 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1362:9 [INFO] [stdout] | [INFO] [stdout] 1258 | 106 => Ok(( [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1362 | 106 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:2168:9 [INFO] [stdout] | [INFO] [stdout] 1693 | 32 => { [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 2168 | 32 if (word >> 26) == 63 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rc` [INFO] [stdout] --> src/recompiler/decoder.rs:1160:9 [INFO] [stdout] | [INFO] [stdout] 1160 | let rc: bool = (word & 1) != 0; // Record bit (update condition register) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rc` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imm` [INFO] [stdout] --> src/recompiler/analysis/control_flow.rs:313:46 [INFO] [stdout] | [INFO] [stdout] 313 | if let Some(Operand::Immediate32(imm)) = inst.instruction.operands.first() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_imm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/recompiler/analysis/inter_procedural.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | let mut edges = Vec::new(); [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/recompiler/analysis/loop_analysis.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let mut ivs = Vec::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/analysis/loop_analysis.rs:35:25 [INFO] [stdout] | [INFO] [stdout] 35 | for inst in &block.instructions { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/codegen/memory.rs:7:26 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn generate_load(inst: &DecodedInstruction) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/codegen/memory.rs:13:27 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn generate_store(inst: &DecodedInstruction) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `def_use_chains` [INFO] [stdout] --> src/recompiler/codegen/mod.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let def_use_chains = crate::recompiler::analysis::data_flow::DataFlowAnalyzer::build_def_use_chains(instructions); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_def_use_chains` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bo` [INFO] [stdout] --> src/recompiler/codegen/mod.rs:613:21 [INFO] [stdout] | [INFO] [stdout] 613 | let bo = match &inst.instruction.operands[0] { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `def_use_chains` [INFO] [stdout] --> src/recompiler/pipeline.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let def_use_chains = DataFlowAnalyzer::build_def_use_chains(&instructions); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_def_use_chains` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `live_analysis` [INFO] [stdout] --> src/recompiler/pipeline.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let live_analysis = DataFlowAnalyzer::live_variable_analysis(&cfg); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_live_analysis` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/recompiler/optimizer.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let mut constants: HashMap> = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `constants` [INFO] [stdout] --> src/recompiler/optimizer.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let mut constants: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constants` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/recompiler/optimizer.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let mut used_registers: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `used_registers` [INFO] [stdout] --> src/recompiler/optimizer.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let mut used_registers: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_used_registers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/optimizer.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | for inst in instructions.iter().rev() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `register_map`, `next_temp`, and `basic_block_map` are never read [INFO] [stdout] --> src/recompiler/codegen/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct CodeGenerator { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 11 | indent_level: usize, [INFO] [stdout] 12 | register_map: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 13 | next_temp: usize, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | basic_block_map: HashMap, // Map addresses to basic block indices [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Variable` is never constructed [INFO] [stdout] --> src/recompiler/codegen/mod.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 22 | enum RegisterValue { [INFO] [stdout] | ------------- variant in this enum [INFO] [stdout] 23 | Constant(u32), [INFO] [stdout] 24 | Variable(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RegisterValue` 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: methods `build_basic_blocks` and `type_to_rust` are never used [INFO] [stdout] --> src/recompiler/codegen/mod.rs:222:8 [INFO] [stdout] | [INFO] [stdout] 28 | impl CodeGenerator { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 222 | fn build_basic_blocks<'a>(&self, instructions: &'a [DecodedInstruction]) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1117 | fn type_to_rust(&self, ty: &crate::recompiler::analysis::TypeInfo) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `register_allocation` is never read [INFO] [stdout] --> src/recompiler/optimizer.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Optimizer { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | register_allocation: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Operand` [INFO] [stdout] --> tests/codegen_test.rs:6:55 [INFO] [stdout] | [INFO] [stdout] 6 | DecodedInstruction, Instruction, InstructionType, Operand, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_test_instruction` is never used [INFO] [stdout] --> tests/codegen_test.rs:10:4 [INFO] [stdout] | [INFO] [stdout] 10 | fn create_test_instruction(opcode: u32, inst_type: InstructionType) -> DecodedInstruction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/recompiler/decoder.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | use anyhow::{Context, Result}; [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: `smallvec::SmallVec` [INFO] [stdout] --> src/recompiler/analysis/type_inference.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use smallvec::SmallVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Loop` [INFO] [stdout] --> src/recompiler/analysis/loop_analysis.rs:2:67 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::recompiler::analysis::control_flow::{ControlFlowGraph, Loop}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/recompiler/codegen/mod.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use anyhow::{Result, Context}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::recompiler::analysis::type_inference::TypeInferenceEngine` [INFO] [stdout] --> src/recompiler/pipeline.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use crate::recompiler::analysis::type_inference::TypeInferenceEngine; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `smallvec::SmallVec` [INFO] [stdout] --> src/recompiler/pipeline.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | use smallvec::SmallVec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1093:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1093 | 31 if ((word >> 21) & 0x1F) == 8 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1101:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1101 | 31 if ((word >> 21) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1109:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1109 | 31 if ((word >> 21) & 0x1F) == 9 && ((word >> 11) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1117:13 [INFO] [stdout] | [INFO] [stdout] 160 | 31 => Self::decode_extended(word)?, [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1117 | 31 if ((word >> 21) & 0x1F) == 9 && ((word >> 11) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1310:9 [INFO] [stdout] | [INFO] [stdout] 1238 | 234 => Ok(( [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1310 | 234 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1320:9 [INFO] [stdout] | [INFO] [stdout] 1228 | 202 => Ok(( [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1320 | 202 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1352:9 [INFO] [stdout] | [INFO] [stdout] 1248 | 74 => Ok(( [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1352 | 74 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:1362:9 [INFO] [stdout] | [INFO] [stdout] 1258 | 106 => Ok(( [INFO] [stdout] | --- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1362 | 106 if (word >> 26) == 31 => Ok(( [INFO] [stdout] | ^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/recompiler/decoder.rs:2168:9 [INFO] [stdout] | [INFO] [stdout] 1693 | 32 => { [INFO] [stdout] | -- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 2168 | 32 if (word >> 26) == 63 => { [INFO] [stdout] | ^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rc` [INFO] [stdout] --> src/recompiler/decoder.rs:1160:9 [INFO] [stdout] | [INFO] [stdout] 1160 | let rc: bool = (word & 1) != 0; // Record bit (update condition register) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_rc` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imm` [INFO] [stdout] --> src/recompiler/analysis/control_flow.rs:313:46 [INFO] [stdout] | [INFO] [stdout] 313 | if let Some(Operand::Immediate32(imm)) = inst.instruction.operands.first() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_imm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/recompiler/analysis/inter_procedural.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | let mut edges = Vec::new(); [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/recompiler/analysis/loop_analysis.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let mut ivs = Vec::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/analysis/loop_analysis.rs:35:25 [INFO] [stdout] | [INFO] [stdout] 35 | for inst in &block.instructions { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/codegen/memory.rs:7:26 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn generate_load(inst: &DecodedInstruction) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/codegen/memory.rs:13:27 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn generate_store(inst: &DecodedInstruction) -> String { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `def_use_chains` [INFO] [stdout] --> src/recompiler/codegen/mod.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let def_use_chains = crate::recompiler::analysis::data_flow::DataFlowAnalyzer::build_def_use_chains(instructions); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_def_use_chains` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bo` [INFO] [stdout] --> src/recompiler/codegen/mod.rs:613:21 [INFO] [stdout] | [INFO] [stdout] 613 | let bo = match &inst.instruction.operands[0] { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `def_use_chains` [INFO] [stdout] --> src/recompiler/pipeline.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | let def_use_chains = DataFlowAnalyzer::build_def_use_chains(&instructions); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_def_use_chains` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `live_analysis` [INFO] [stdout] --> src/recompiler/pipeline.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let live_analysis = DataFlowAnalyzer::live_variable_analysis(&cfg); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_live_analysis` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/recompiler/optimizer.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let mut constants: HashMap> = HashMap::new(); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `constants` [INFO] [stdout] --> src/recompiler/optimizer.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | let mut constants: HashMap> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constants` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/recompiler/optimizer.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let mut used_registers: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `used_registers` [INFO] [stdout] --> src/recompiler/optimizer.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let mut used_registers: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_used_registers` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inst` [INFO] [stdout] --> src/recompiler/optimizer.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | for inst in instructions.iter().rev() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `register_map`, `next_temp`, and `basic_block_map` are never read [INFO] [stdout] --> src/recompiler/codegen/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct CodeGenerator { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 11 | indent_level: usize, [INFO] [stdout] 12 | register_map: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 13 | next_temp: usize, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | basic_block_map: HashMap, // Map addresses to basic block indices [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Variable` is never constructed [INFO] [stdout] --> src/recompiler/codegen/mod.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 22 | enum RegisterValue { [INFO] [stdout] | ------------- variant in this enum [INFO] [stdout] 23 | Constant(u32), [INFO] [stdout] 24 | Variable(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RegisterValue` 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: methods `build_basic_blocks` and `type_to_rust` are never used [INFO] [stdout] --> src/recompiler/codegen/mod.rs:222:8 [INFO] [stdout] | [INFO] [stdout] 28 | impl CodeGenerator { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 222 | fn build_basic_blocks<'a>(&self, instructions: &'a [DecodedInstruction]) -> Result>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1117 | fn type_to_rust(&self, ty: &crate::recompiler::analysis::TypeInfo) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `register_allocation` is never read [INFO] [stdout] --> src/recompiler/optimizer.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Optimizer { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | register_allocation: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.17s [INFO] running `Command { std: "docker" "inspect" "61f73079e7940f8fc617dd68367e681dae85515e4951a7796c1a15f3373635c3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "61f73079e7940f8fc617dd68367e681dae85515e4951a7796c1a15f3373635c3", kill_on_drop: false }` [INFO] [stdout] 61f73079e7940f8fc617dd68367e681dae85515e4951a7796c1a15f3373635c3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1c047c7c0b7adbbe3b030cc5fceaaeb3178405a1cfc7d9326e67da719b90cf8b [INFO] running `Command { std: "docker" "start" "-a" "1c047c7c0b7adbbe3b030cc5fceaaeb3178405a1cfc7d9326e67da719b90cf8b", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `Context` [INFO] [stderr] --> src/recompiler/decoder.rs:20:14 [INFO] [stderr] | [INFO] [stderr] 20 | use anyhow::{Context, Result}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `smallvec::SmallVec` [INFO] [stderr] --> src/recompiler/analysis/type_inference.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | use smallvec::SmallVec; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Loop` [INFO] [stderr] --> src/recompiler/analysis/loop_analysis.rs:2:67 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::recompiler::analysis::control_flow::{ControlFlowGraph, Loop}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Context` [INFO] [stderr] --> src/recompiler/codegen/mod.rs:5:22 [INFO] [stderr] | [INFO] [stderr] 5 | use anyhow::{Result, Context}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::recompiler::analysis::type_inference::TypeInferenceEngine` [INFO] [stderr] --> src/recompiler/pipeline.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | use crate::recompiler::analysis::type_inference::TypeInferenceEngine; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `smallvec::SmallVec` [INFO] [stderr] --> src/recompiler/pipeline.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | use smallvec::SmallVec; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/recompiler/decoder.rs:1093:13 [INFO] [stderr] | [INFO] [stderr] 160 | 31 => Self::decode_extended(word)?, [INFO] [stderr] | -- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1093 | 31 if ((word >> 21) & 0x1F) == 8 && (word & 0x7FF) == 0 => { [INFO] [stderr] | ^^ no value can reach this [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/recompiler/decoder.rs:1101:13 [INFO] [stderr] | [INFO] [stderr] 160 | 31 => Self::decode_extended(word)?, [INFO] [stderr] | -- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1101 | 31 if ((word >> 21) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stderr] | ^^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/recompiler/decoder.rs:1109:13 [INFO] [stderr] | [INFO] [stderr] 160 | 31 => Self::decode_extended(word)?, [INFO] [stderr] | -- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1109 | 31 if ((word >> 21) & 0x1F) == 9 && ((word >> 11) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stderr] | ^^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/recompiler/decoder.rs:1117:13 [INFO] [stderr] | [INFO] [stderr] 160 | 31 => Self::decode_extended(word)?, [INFO] [stderr] | -- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1117 | 31 if ((word >> 21) & 0x1F) == 9 && ((word >> 11) & 0x1F) == 9 && (word & 0x7FF) == 0 => { [INFO] [stderr] | ^^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/recompiler/decoder.rs:1310:9 [INFO] [stderr] | [INFO] [stderr] 1238 | 234 => Ok(( [INFO] [stderr] | --- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1310 | 234 if (word >> 26) == 31 => Ok(( [INFO] [stderr] | ^^^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/recompiler/decoder.rs:1320:9 [INFO] [stderr] | [INFO] [stderr] 1228 | 202 => Ok(( [INFO] [stderr] | --- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1320 | 202 if (word >> 26) == 31 => Ok(( [INFO] [stderr] | ^^^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/recompiler/decoder.rs:1352:9 [INFO] [stderr] | [INFO] [stderr] 1248 | 74 => Ok(( [INFO] [stderr] | -- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1352 | 74 if (word >> 26) == 31 => Ok(( [INFO] [stderr] | ^^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/recompiler/decoder.rs:1362:9 [INFO] [stderr] | [INFO] [stderr] 1258 | 106 => Ok(( [INFO] [stderr] | --- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1362 | 106 if (word >> 26) == 31 => Ok(( [INFO] [stderr] | ^^^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/recompiler/decoder.rs:2168:9 [INFO] [stderr] | [INFO] [stderr] 1693 | 32 => { [INFO] [stderr] | -- matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 2168 | 32 if (word >> 26) == 63 => { [INFO] [stderr] | ^^ no value can reach this [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rc` [INFO] [stderr] --> src/recompiler/decoder.rs:1160:9 [INFO] [stderr] | [INFO] [stderr] 1160 | let rc: bool = (word & 1) != 0; // Record bit (update condition register) [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_rc` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `imm` [INFO] [stderr] --> src/recompiler/analysis/control_flow.rs:313:46 [INFO] [stderr] | [INFO] [stderr] 313 | if let Some(Operand::Immediate32(imm)) = inst.instruction.operands.first() { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_imm` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/recompiler/analysis/inter_procedural.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | let mut edges = Vec::new(); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/recompiler/analysis/loop_analysis.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | let mut ivs = Vec::new(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inst` [INFO] [stderr] --> src/recompiler/analysis/loop_analysis.rs:35:25 [INFO] [stderr] | [INFO] [stderr] 35 | for inst in &block.instructions { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inst` [INFO] [stderr] --> src/recompiler/codegen/memory.rs:7:26 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn generate_load(inst: &DecodedInstruction) -> String { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inst` [INFO] [stderr] --> src/recompiler/codegen/memory.rs:13:27 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn generate_store(inst: &DecodedInstruction) -> String { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `def_use_chains` [INFO] [stderr] --> src/recompiler/codegen/mod.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | let def_use_chains = crate::recompiler::analysis::data_flow::DataFlowAnalyzer::build_def_use_chains(instructions); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_def_use_chains` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `bo` [INFO] [stderr] --> src/recompiler/codegen/mod.rs:613:21 [INFO] [stderr] | [INFO] [stderr] 613 | let bo = match &inst.instruction.operands[0] { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_bo` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `def_use_chains` [INFO] [stderr] --> src/recompiler/pipeline.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | let def_use_chains = DataFlowAnalyzer::build_def_use_chains(&instructions); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_def_use_chains` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `live_analysis` [INFO] [stderr] --> src/recompiler/pipeline.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | let live_analysis = DataFlowAnalyzer::live_variable_analysis(&cfg); [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_live_analysis` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/recompiler/optimizer.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | let mut constants: HashMap> = HashMap::new(); [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `constants` [INFO] [stderr] --> src/recompiler/optimizer.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | let mut constants: HashMap> = HashMap::new(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constants` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/recompiler/optimizer.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | let mut used_registers: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stderr] | ----^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `used_registers` [INFO] [stderr] --> src/recompiler/optimizer.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | let mut used_registers: std::collections::HashSet = std::collections::HashSet::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_used_registers` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inst` [INFO] [stderr] --> src/recompiler/optimizer.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | for inst in instructions.iter().rev() { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_inst` [INFO] [stderr] [INFO] [stderr] warning: fields `register_map`, `next_temp`, and `basic_block_map` are never read [INFO] [stderr] --> src/recompiler/codegen/mod.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct CodeGenerator { [INFO] [stderr] | ------------- fields in this struct [INFO] [stderr] 11 | indent_level: usize, [INFO] [stderr] 12 | register_map: HashMap, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 13 | next_temp: usize, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 18 | basic_block_map: HashMap, // Map addresses to basic block indices [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variant `Variable` is never constructed [INFO] [stderr] --> src/recompiler/codegen/mod.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 22 | enum RegisterValue { [INFO] [stderr] | ------------- variant in this enum [INFO] [stderr] 23 | Constant(u32), [INFO] [stderr] 24 | Variable(String), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RegisterValue` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: methods `build_basic_blocks` and `type_to_rust` are never used [INFO] [stderr] --> src/recompiler/codegen/mod.rs:222:8 [INFO] [stderr] | [INFO] [stderr] 28 | impl CodeGenerator { [INFO] [stderr] | ------------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 222 | fn build_basic_blocks<'a>(&self, instructions: &'a [DecodedInstruction]) -> Result>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1117 | fn type_to_rust(&self, ty: &crate::recompiler::analysis::TypeInfo) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `register_allocation` is never read [INFO] [stderr] --> src/recompiler/optimizer.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 21 | pub struct Optimizer { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 27 | register_allocation: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `gcrecomp-core` (lib) generated 35 warnings (run `cargo fix --lib -p gcrecomp-core` to apply 22 suggestions) [INFO] [stderr] warning: `gcrecomp-core` (lib test) generated 35 warnings (35 duplicates) [INFO] [stderr] warning: unused import: `Operand` [INFO] [stderr] --> tests/codegen_test.rs:6:55 [INFO] [stderr] | [INFO] [stderr] 6 | DecodedInstruction, Instruction, InstructionType, Operand, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `create_test_instruction` is never used [INFO] [stderr] --> tests/codegen_test.rs:10:4 [INFO] [stderr] | [INFO] [stderr] 10 | fn create_test_instruction(opcode: u32, inst_type: InstructionType) -> DecodedInstruction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `gcrecomp-core` (test "codegen_test") generated 2 warnings (run `cargo fix --test "codegen_test" -p gcrecomp-core` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gcrecomp_core-9fe50f3fb8caa7e8) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/codegen_test.rs (/opt/rustwide/target/debug/deps/codegen_test-a97351fff0bb8346) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test test_codegen_initialization ... ok [INFO] [stdout] test test_generate_function_empty ... ok [INFO] [stdout] test test_codegen_with_optimizations ... ok [INFO] [stdout] test test_codegen_without_optimizations ... ok [INFO] [stdout] test test_sanitize_identifier ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/decoder_test.rs (/opt/rustwide/target/debug/deps/decoder_test-6a7e34fc20724a1e) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test tests::test_decode_addi ... ok [INFO] [stderr] Running tests/parser_test.rs (/opt/rustwide/target/debug/deps/parser_test-bfd66ef8843b2432) [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test tests::test_parse_empty_dol ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests gcrecomp_core [INFO] [stdout] [INFO] [stdout] running 33 tests [INFO] [stdout] test src/recompiler/analysis/control_flow.rs - recompiler::analysis::control_flow::ControlFlowAnalyzer::build_cfg (line 164) ... FAILED [INFO] [stdout] test src/recompiler/analysis/data_flow.rs - recompiler::analysis::data_flow::DataFlowAnalyzer::build_def_use_chains (line 127) ... FAILED [INFO] [stdout] test src/recompiler/optimizer.rs - recompiler::optimizer::Optimizer::new (line 37) ... FAILED [INFO] [stdout] test src/recompiler/parser.rs - recompiler::parser::DolFile::get_all_sections (line 200) ... FAILED [INFO] [stdout] test src/recompiler/pipeline.rs - recompiler::pipeline::RecompilationPipeline::recompile (line 64) ... FAILED [INFO] [stdout] test src/recompiler/decoder.rs - recompiler::decoder::Instruction::decode (line 143) ... FAILED [INFO] [stdout] test src/recompiler/analysis/control_flow.rs - recompiler::analysis::control_flow::ControlFlowAnalyzer::analyze_function_calls (line 427) ... FAILED [INFO] [stdout] test src/recompiler/analysis/control_flow.rs - recompiler::analysis::control_flow::ControlFlowAnalyzer::detect_loops (line 339) ... FAILED [INFO] [stdout] test src/recompiler/analysis/type_inference.rs - recompiler::analysis::type_inference::TypeInferenceEngine::infer_types (line 77) ... FAILED [INFO] [stdout] test src/recompiler/codegen/register.rs - recompiler::codegen::register::RegisterAllocator::allocate_register (line 64) ... FAILED [INFO] [stdout] test src/recompiler/codegen/register.rs - recompiler::codegen::register::RegisterAllocator::new (line 39) ... FAILED [INFO] [stdout] test src/recompiler/parser.rs - recompiler::parser::DolFile::parse (line 78) ... FAILED [INFO] [stdout] test src/recompiler/optimizer.rs - recompiler::optimizer::Optimizer::optimize (line 63) ... FAILED [INFO] [stdout] test src/recompiler/codegen/register.rs - recompiler::codegen::register::RegisterAllocator::spill_register (line 94) ... FAILED [INFO] [stdout] test src/recompiler/validator.rs - recompiler::validator::CodeValidator::validate_rust_code (line 38) ... FAILED [INFO] [stdout] test src/recompiler/analysis/data_flow.rs - recompiler::analysis::data_flow::DataFlowAnalyzer::live_variable_analysis (line 267) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::bulk_copy (line 414) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::load_section (line 387) ... FAILED [INFO] [stdout] test src/recompiler/validator.rs - recompiler::validator::CodeValidator::validate_function (line 123) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::new (line 45) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::read_u32 (line 148) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::read_u16 (line 121) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::get_slice (line 452) ... FAILED [INFO] [stdout] test src/recompiler/analysis/data_flow.rs - recompiler::analysis::data_flow::DataFlowAnalyzer::eliminate_dead_code (line 347) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::write_u16 (line 242) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::read_bytes (line 335) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::read_u8 (line 98) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::translate_address (line 71) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::write_u32 (line 272) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::read_u64 (line 180) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::write_bytes (line 362) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::write_u64 (line 304) ... FAILED [INFO] [stdout] test src/runtime/memory.rs - runtime::memory::MemoryManager::write_u8 (line 217) ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- src/recompiler/analysis/control_flow.rs - recompiler::analysis::control_flow::ControlFlowAnalyzer::build_cfg (line 164) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `ControlFlowAnalyzer` in this scope [INFO] [stdout] --> src/recompiler/analysis/control_flow.rs:166:11 [INFO] [stdout] | [INFO] [stdout] 166 | let cfg = ControlFlowAnalyzer::build_cfg(&instructions, 0x80000000)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ use of undeclared type `ControlFlowAnalyzer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 164 + use gcrecomp_core::recompiler::analysis::control_flow::ControlFlowAnalyzer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/analysis/data_flow.rs - recompiler::analysis::data_flow::DataFlowAnalyzer::build_def_use_chains (line 127) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `DataFlowAnalyzer` in this scope [INFO] [stdout] --> src/recompiler/analysis/data_flow.rs:129:14 [INFO] [stdout] | [INFO] [stdout] 129 | let chains = DataFlowAnalyzer::build_def_use_chains(&instructions); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ use of undeclared type `DataFlowAnalyzer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 127 + use gcrecomp_core::recompiler::analysis::data_flow::DataFlowAnalyzer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/optimizer.rs - recompiler::optimizer::Optimizer::new (line 37) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `Optimizer` in this scope [INFO] [stdout] --> src/recompiler/optimizer.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 38 | let optimizer = Optimizer::new(); [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `Optimizer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 37 + use gcrecomp_core::recompiler::optimizer::Optimizer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/parser.rs - recompiler::parser::DolFile::get_all_sections (line 200) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `dol_file` in this scope [INFO] [stdout] --> src/recompiler/parser.rs:201:20 [INFO] [stdout] | [INFO] [stdout] 201 | let all_sections = dol_file.get_all_sections(); [INFO] [stdout] | ^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/pipeline.rs - recompiler::pipeline::RecompilationPipeline::recompile (line 64) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `DolFile` in this scope [INFO] [stdout] --> src/recompiler/pipeline.rs:65:16 [INFO] [stdout] | [INFO] [stdout] 65 | let dol_file = DolFile::parse("game.dol")?; [INFO] [stdout] | ^^^^^^^ use of undeclared type `DolFile` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 64 + use gcrecomp_core::recompiler::parser::DolFile; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0433]: cannot find type `RecompilationPipeline` in this scope [INFO] [stdout] --> src/recompiler/pipeline.rs:66:1 [INFO] [stdout] | [INFO] [stdout] 66 | RecompilationPipeline::recompile(&dol_file, "output.rs")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `RecompilationPipeline` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 64 + use gcrecomp_core::recompiler::pipeline::RecompilationPipeline; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/decoder.rs - recompiler::decoder::Instruction::decode (line 143) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `Instruction` in this scope [INFO] [stdout] --> src/recompiler/decoder.rs:147:15 [INFO] [stdout] | [INFO] [stdout] 147 | let decoded = Instruction::decode(word, address)?; [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `Instruction` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 143 + use gcrecomp_core::recompiler::decoder::Instruction; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0433]: cannot find type `InstructionType` in this scope [INFO] [stdout] --> src/recompiler/decoder.rs:148:50 [INFO] [stdout] | [INFO] [stdout] 148 | assert_eq!(decoded.instruction.instruction_type, InstructionType::Arithmetic); [INFO] [stdout] | ^^^^^^^^^^^^^^^ use of undeclared type `InstructionType` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 143 + use gcrecomp_core::recompiler::decoder::InstructionType; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/analysis/control_flow.rs - recompiler::analysis::control_flow::ControlFlowAnalyzer::analyze_function_calls (line 427) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `ControlFlowAnalyzer` in this scope [INFO] [stdout] --> src/recompiler/analysis/control_flow.rs:428:13 [INFO] [stdout] | [INFO] [stdout] 428 | let calls = ControlFlowAnalyzer::analyze_function_calls(&cfg); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ use of undeclared type `ControlFlowAnalyzer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 427 + use gcrecomp_core::recompiler::analysis::control_flow::ControlFlowAnalyzer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0423]: expected value, found macro `cfg` [INFO] [stdout] --> src/recompiler/analysis/control_flow.rs:428:58 [INFO] [stdout] | [INFO] [stdout] 428 | let calls = ControlFlowAnalyzer::analyze_function_calls(&cfg); [INFO] [stdout] | ^^^ not a value [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0423, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0423`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/analysis/control_flow.rs - recompiler::analysis::control_flow::ControlFlowAnalyzer::detect_loops (line 339) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `ControlFlowAnalyzer` in this scope [INFO] [stdout] --> src/recompiler/analysis/control_flow.rs:340:13 [INFO] [stdout] | [INFO] [stdout] 340 | let loops = ControlFlowAnalyzer::detect_loops(&cfg); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ use of undeclared type `ControlFlowAnalyzer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 339 + use gcrecomp_core::recompiler::analysis::control_flow::ControlFlowAnalyzer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0423]: expected value, found macro `cfg` [INFO] [stdout] --> src/recompiler/analysis/control_flow.rs:340:48 [INFO] [stdout] | [INFO] [stdout] 340 | let loops = ControlFlowAnalyzer::detect_loops(&cfg); [INFO] [stdout] | ^^^ not a value [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0423, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0423`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/analysis/type_inference.rs - recompiler::analysis::type_inference::TypeInferenceEngine::infer_types (line 77) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `TypeInferenceEngine` in this scope [INFO] [stdout] --> src/recompiler/analysis/type_inference.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | let types = TypeInferenceEngine::infer_types(&instructions, &metadata); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ use of undeclared type `TypeInferenceEngine` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 77 + use gcrecomp_core::recompiler::analysis::type_inference::TypeInferenceEngine; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `instructions` in this scope [INFO] [stdout] --> src/recompiler/analysis/type_inference.rs:78:47 [INFO] [stdout] | [INFO] [stdout] 78 | let types = TypeInferenceEngine::infer_types(&instructions, &metadata); [INFO] [stdout] | ^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `metadata` in this scope [INFO] [stdout] --> src/recompiler/analysis/type_inference.rs:78:62 [INFO] [stdout] | [INFO] [stdout] 78 | let types = TypeInferenceEngine::infer_types(&instructions, &metadata); [INFO] [stdout] | ^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these functions [INFO] [stdout] | [INFO] [stdout] 77 + use std::fs::metadata; [INFO] [stdout] | [INFO] [stdout] 77 + use std::ptr::metadata; [INFO] [stdout] | [INFO] [stdout] 77 + use core::ptr::metadata; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/codegen/register.rs - recompiler::codegen::register::RegisterAllocator::allocate_register (line 64) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `allocator` in this scope [INFO] [stdout] --> src/recompiler/codegen/register.rs:65:16 [INFO] [stdout] | [INFO] [stdout] 65 | let var_name = allocator.allocate_register(3); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/codegen/register.rs - recompiler::codegen::register::RegisterAllocator::new (line 39) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `RegisterAllocator` in this scope [INFO] [stdout] --> src/recompiler/codegen/register.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | let mut allocator = RegisterAllocator::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ use of undeclared type `RegisterAllocator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 39 + use gcrecomp_core::recompiler::codegen::register::RegisterAllocator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/parser.rs - recompiler::parser::DolFile::parse (line 78) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `DolFile` in this scope [INFO] [stdout] --> src/recompiler/parser.rs:80:16 [INFO] [stdout] | [INFO] [stdout] 80 | let dol_file = DolFile::parse(&dol_data, "game.dol")?; [INFO] [stdout] | ^^^^^^^ use of undeclared type `DolFile` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 78 + use gcrecomp_core::recompiler::parser::DolFile; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`) [INFO] [stdout] --> src/recompiler/parser.rs:79:41 [INFO] [stdout] | [INFO] [stdout] 78 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_recompiler_parser_rs_78_0() { [INFO] [stdout] | ------------------------------------------------ this function should return `Result` or `Option` to accept `?` [INFO] [stdout] 79 | let dol_data = std::fs::read("game.dol")?; [INFO] [stdout] | ^ cannot use the `?` operator in a function that returns `()` [INFO] [stdout] | [INFO] [stdout] help: consider adding return type [INFO] [stdout] | [INFO] [stdout] 78 ~ fn main() { #[allow(non_snake_case)] fn _doctest_main_src_recompiler_parser_rs_78_0() -> Result<(), Box> { [INFO] [stdout] 79 | let dol_data = std::fs::read("game.dol")?; [INFO] [stdout] 80 | let dol_file = DolFile::parse(&dol_data, "game.dol")?; [INFO] [stdout] 81 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/optimizer.rs - recompiler::optimizer::Optimizer::optimize (line 63) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `optimizer` in this scope [INFO] [stdout] --> src/recompiler/optimizer.rs:64:17 [INFO] [stdout] | [INFO] [stdout] 64 | let optimized = optimizer.optimize(&instructions); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `instructions` in this scope [INFO] [stdout] --> src/recompiler/optimizer.rs:64:37 [INFO] [stdout] | [INFO] [stdout] 64 | let optimized = optimizer.optimize(&instructions); [INFO] [stdout] | ^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/codegen/register.rs - recompiler::codegen::register::RegisterAllocator::spill_register (line 94) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `allocator` in this scope [INFO] [stdout] --> src/recompiler/codegen/register.rs:95:17 [INFO] [stdout] | [INFO] [stdout] 95 | let stack_var = allocator.spill_register(3); [INFO] [stdout] | ^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/validator.rs - recompiler::validator::CodeValidator::validate_rust_code (line 38) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `CodeValidator` in this scope [INFO] [stdout] --> src/recompiler/validator.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | CodeValidator::validate_rust_code(&generated_code)?; [INFO] [stdout] | ^^^^^^^^^^^^^ use of undeclared type `CodeValidator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 38 + use gcrecomp_core::recompiler::validator::CodeValidator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `generated_code` in this scope [INFO] [stdout] --> src/recompiler/validator.rs:39:36 [INFO] [stdout] | [INFO] [stdout] 39 | CodeValidator::validate_rust_code(&generated_code)?; [INFO] [stdout] | ^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/analysis/data_flow.rs - recompiler::analysis::data_flow::DataFlowAnalyzer::live_variable_analysis (line 267) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `DataFlowAnalyzer` in this scope [INFO] [stdout] --> src/recompiler/analysis/data_flow.rs:268:21 [INFO] [stdout] | [INFO] [stdout] 268 | let live_analysis = DataFlowAnalyzer::live_variable_analysis(&cfg); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ use of undeclared type `DataFlowAnalyzer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 267 + use gcrecomp_core::recompiler::analysis::data_flow::DataFlowAnalyzer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0423]: expected value, found macro `cfg` [INFO] [stdout] --> src/recompiler/analysis/data_flow.rs:268:63 [INFO] [stdout] | [INFO] [stdout] 268 | let live_analysis = DataFlowAnalyzer::live_variable_analysis(&cfg); [INFO] [stdout] | ^^^ not a value [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0423, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0423`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::bulk_copy (line 414) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:415:1 [INFO] [stdout] | [INFO] [stdout] 415 | memory.bulk_copy(0x80001000, 0x80000000, 1024)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::load_section (line 387) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:388:1 [INFO] [stdout] | [INFO] [stdout] 388 | memory.load_section(0x80000000, §ion_data)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `section_data` in this scope [INFO] [stdout] --> src/runtime/memory.rs:388:34 [INFO] [stdout] | [INFO] [stdout] 388 | memory.load_section(0x80000000, §ion_data)?; [INFO] [stdout] | ^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/validator.rs - recompiler::validator::CodeValidator::validate_function (line 123) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `CodeValidator` in this scope [INFO] [stdout] --> src/recompiler/validator.rs:124:1 [INFO] [stdout] | [INFO] [stdout] 124 | CodeValidator::validate_function(&function_code)?; [INFO] [stdout] | ^^^^^^^^^^^^^ use of undeclared type `CodeValidator` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 123 + use gcrecomp_core::recompiler::validator::CodeValidator; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `function_code` in this scope [INFO] [stdout] --> src/recompiler/validator.rs:124:35 [INFO] [stdout] | [INFO] [stdout] 124 | CodeValidator::validate_function(&function_code)?; [INFO] [stdout] | ^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::new (line 45) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `MemoryManager` in this scope [INFO] [stdout] --> src/runtime/memory.rs:46:18 [INFO] [stdout] | [INFO] [stdout] 46 | let mut memory = MemoryManager::new(); [INFO] [stdout] | ^^^^^^^^^^^^^ use of undeclared type `MemoryManager` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 45 + use gcrecomp_core::runtime::memory::MemoryManager; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::read_u32 (line 148) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 149 | let value = memory.read_u32(0x80000000)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::read_u16 (line 121) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:122:13 [INFO] [stdout] | [INFO] [stdout] 122 | let value = memory.read_u16(0x80000000)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::get_slice (line 452) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:453:13 [INFO] [stdout] | [INFO] [stdout] 453 | let slice = memory.get_slice(0x80000000, 1024)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/recompiler/analysis/data_flow.rs - recompiler::analysis::data_flow::DataFlowAnalyzer::eliminate_dead_code (line 347) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `DataFlowAnalyzer` in this scope [INFO] [stdout] --> src/recompiler/analysis/data_flow.rs:348:17 [INFO] [stdout] | [INFO] [stdout] 348 | let optimized = DataFlowAnalyzer::eliminate_dead_code(&instructions, &live_analysis); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ use of undeclared type `DataFlowAnalyzer` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 347 + use gcrecomp_core::recompiler::analysis::data_flow::DataFlowAnalyzer; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `instructions` in this scope [INFO] [stdout] --> src/recompiler/analysis/data_flow.rs:348:56 [INFO] [stdout] | [INFO] [stdout] 348 | let optimized = DataFlowAnalyzer::eliminate_dead_code(&instructions, &live_analysis); [INFO] [stdout] | ^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `live_analysis` in this scope [INFO] [stdout] --> src/recompiler/analysis/data_flow.rs:348:71 [INFO] [stdout] | [INFO] [stdout] 348 | let optimized = DataFlowAnalyzer::eliminate_dead_code(&instructions, &live_analysis); [INFO] [stdout] | ^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `instructions` in this scope [INFO] [stdout] --> src/recompiler/analysis/data_flow.rs:349:42 [INFO] [stdout] | [INFO] [stdout] 349 | println!("Removed {} dead instructions", instructions.len() - optimized.len()); [INFO] [stdout] | ^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::write_u16 (line 242) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:243:1 [INFO] [stdout] | [INFO] [stdout] 243 | memory.write_u16(0x80000000, 0x1234)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::read_bytes (line 335) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:336:12 [INFO] [stdout] | [INFO] [stdout] 336 | let data = memory.read_bytes(0x80000000, 1024)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::read_u8 (line 98) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | let value = memory.read_u8(0x80000000)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::translate_address (line 71) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:72:14 [INFO] [stdout] | [INFO] [stdout] 72 | let offset = memory.translate_address(0x80000000); [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::write_u32 (line 272) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:273:1 [INFO] [stdout] | [INFO] [stdout] 273 | memory.write_u32(0x80000000, 0x12345678)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::read_u64 (line 180) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | let value = memory.read_u64(0x80000000)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::write_bytes (line 362) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:363:1 [INFO] [stdout] | [INFO] [stdout] 363 | memory.write_bytes(0x80000000, &[0x42, 0x43, 0x44])?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::write_u64 (line 304) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:305:1 [INFO] [stdout] | [INFO] [stdout] 305 | memory.write_u64(0x80000000, 0x1234567890ABCDEF)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/runtime/memory.rs - runtime::memory::MemoryManager::write_u8 (line 217) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory` in this scope [INFO] [stdout] --> src/runtime/memory.rs:218:1 [INFO] [stdout] | [INFO] [stdout] 218 | memory.write_u8(0x80000000, 0x42)?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] src/recompiler/analysis/control_flow.rs - recompiler::analysis::control_flow::ControlFlowAnalyzer::analyze_function_calls (line 427) [INFO] [stdout] src/recompiler/analysis/control_flow.rs - recompiler::analysis::control_flow::ControlFlowAnalyzer::build_cfg (line 164) [INFO] [stdout] src/recompiler/analysis/control_flow.rs - recompiler::analysis::control_flow::ControlFlowAnalyzer::detect_loops (line 339) [INFO] [stdout] src/recompiler/analysis/data_flow.rs - recompiler::analysis::data_flow::DataFlowAnalyzer::build_def_use_chains (line 127) [INFO] [stdout] src/recompiler/analysis/data_flow.rs - recompiler::analysis::data_flow::DataFlowAnalyzer::eliminate_dead_code (line 347) [INFO] [stdout] src/recompiler/analysis/data_flow.rs - recompiler::analysis::data_flow::DataFlowAnalyzer::live_variable_analysis (line 267) [INFO] [stdout] src/recompiler/analysis/type_inference.rs - recompiler::analysis::type_inference::TypeInferenceEngine::infer_types (line 77) [INFO] [stdout] src/recompiler/codegen/register.rs - recompiler::codegen::register::RegisterAllocator::allocate_register (line 64) [INFO] [stdout] src/recompiler/codegen/register.rs - recompiler::codegen::register::RegisterAllocator::new (line 39) [INFO] [stdout] src/recompiler/codegen/register.rs - recompiler::codegen::register::RegisterAllocator::spill_register (line 94) [INFO] [stdout] src/recompiler/decoder.rs - recompiler::decoder::Instruction::decode (line 143) [INFO] [stdout] src/recompiler/optimizer.rs - recompiler::optimizer::Optimizer::new (line 37) [INFO] [stdout] src/recompiler/optimizer.rs - recompiler::optimizer::Optimizer::optimize (line 63) [INFO] [stdout] src/recompiler/parser.rs - recompiler::parser::DolFile::get_all_sections (line 200) [INFO] [stdout] src/recompiler/parser.rs - recompiler::parser::DolFile::parse (line 78) [INFO] [stdout] src/recompiler/pipeline.rs - recompiler::pipeline::RecompilationPipeline::recompile (line 64) [INFO] [stdout] src/recompiler/validator.rs - recompiler::validator::CodeValidator::validate_function (line 123) [INFO] [stdout] src/recompiler/validator.rs - recompiler::validator::CodeValidator::validate_rust_code (line 38) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::bulk_copy (line 414) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::get_slice (line 452) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::load_section (line 387) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::new (line 45) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::read_bytes (line 335) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::read_u16 (line 121) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::read_u32 (line 148) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::read_u64 (line 180) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::read_u8 (line 98) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::translate_address (line 71) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::write_bytes (line 362) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::write_u16 (line 242) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::write_u32 (line 272) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::write_u64 (line 304) [INFO] [stdout] src/runtime/memory.rs - runtime::memory::MemoryManager::write_u8 (line 217) [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 33 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s [INFO] [stdout] [INFO] [stderr] error: doctest failed, to rerun pass `--doc` [INFO] running `Command { std: "docker" "inspect" "1c047c7c0b7adbbe3b030cc5fceaaeb3178405a1cfc7d9326e67da719b90cf8b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c047c7c0b7adbbe3b030cc5fceaaeb3178405a1cfc7d9326e67da719b90cf8b", kill_on_drop: false }` [INFO] [stdout] 1c047c7c0b7adbbe3b030cc5fceaaeb3178405a1cfc7d9326e67da719b90cf8b