[INFO] fetching crate lamina 0.0.6... [INFO] testing lamina-0.0.6 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7 [INFO] extracting crate lamina 0.0.6 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate lamina 0.0.6 [INFO] finished tweaking crates.io crate lamina 0.0.6 [INFO] tweaked toml for crates.io crate lamina 0.0.6 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate lamina 0.0.6 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate lamina 0.0.6 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c8fcf64f7d570e33ed37ef8666f2b6be03afb464d0b26bd74c7624858a901065 [INFO] running `Command { std: "docker" "start" "-a" "c8fcf64f7d570e33ed37ef8666f2b6be03afb464d0b26bd74c7624858a901065", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c8fcf64f7d570e33ed37ef8666f2b6be03afb464d0b26bd74c7624858a901065", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c8fcf64f7d570e33ed37ef8666f2b6be03afb464d0b26bd74c7624858a901065", kill_on_drop: false }` [INFO] [stdout] c8fcf64f7d570e33ed37ef8666f2b6be03afb464d0b26bd74c7624858a901065 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7f9721b21dc03b672cc2309df75fd95716aebe963851bebf8da38e87c06a9ed0 [INFO] running `Command { std: "docker" "start" "-a" "7f9721b21dc03b672cc2309df75fd95716aebe963851bebf8da38e87c06a9ed0", kill_on_drop: false }` [INFO] [stderr] Compiling lamina v0.0.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Type` [INFO] [stdout] --> src/codegen/riscv/globals.rs:3:70 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{GlobalDeclaration, LaminaError, Literal, Module, Result, Type}; [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: `ValueLocation` [INFO] [stdout] --> src/codegen/riscv/instructions.rs:2:68 [INFO] [stdout] | [INFO] [stdout] 2 | use super::state::{CodegenState, FunctionContext, RETURN_REGISTER, ValueLocation}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/codegen/riscv/instructions.rs:4:90 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::{BinaryOp, Identifier, Instruction, LaminaError, PrimitiveType, Result, Type, Value}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MirType` [INFO] [stdout] --> src/mir/codegen/convert.rs:4:51 [INFO] [stdout] | [INFO] [stdout] 4 | AddressMode, Block, Instruction, MemoryAttrs, MirType, Module, Operand, Parameter, Register, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/mod.rs:225:21 [INFO] [stdout] | [INFO] [stdout] 225 | _ => writeln!(w, " // TODO: unimplemented binop {}", op)?, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/mod.rs:225:21 [INFO] [stdout] | [INFO] [stdout] 124 | crate::mir::IntBinOp::Add => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 129 | crate::mir::IntBinOp::Sub => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 134 | crate::mir::IntBinOp::Mul => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 139 | crate::mir::IntBinOp::UDiv => { [INFO] [stdout] | -------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 225 | _ => writeln!(w, " // TODO: unimplemented binop {}", op)?, [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saved_area` [INFO] [stdout] --> src/codegen/riscv/functions.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | let saved_area: i64 = match state.width() { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_area` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `allocated_ty` [INFO] [stdout] --> src/codegen/riscv/instructions.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | allocated_ty, [INFO] [stdout] | ^^^^^^^^^^^^ help: try ignoring the field: `allocated_ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `free_gprs`, `used_gprs`, and `vreg_to_preg` are never read [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/regalloc.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct A64RegAlloc { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 11 | free_gprs: VecDeque<&'static str>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | used_gprs: HashSet<&'static str>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | vreg_to_preg: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_occupied`, `occupy`, `release`, `get_mapping_for`, `ensure_mapping_for_gpr`, and `mapped_for_register` are never used [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/regalloc.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl A64RegAlloc { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn is_occupied(&self, phys: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn occupy(&mut self, phys: &'static str) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn release(&mut self, phys: &'static str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn get_mapping_for(&self, v: &VirtualReg) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn ensure_mapping_for_gpr(&mut self, v: VirtualReg) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn mapped_for_register(&self, r: &Register) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_memory_contents_for_value` is never used [INFO] [stdout] --> src/codegen/wasm/state.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 55 | impl<'a> CodegenState<'a> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | fn set_memory_contents_for_value(&mut self, address: usize, val: Value<'a>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DeadCodeStats` is never constructed [INFO] [stdout] --> src/mir/transform/deadcode.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct DeadCodeStats { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DeadCodeElimination` is never constructed [INFO] [stdout] --> src/mir/transform/deadcode.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct DeadCodeElimination; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `apply`, `compute_live_registers`, `process_block_liveness`, `remove_dead_instructions`, `is_dead_instruction`, and `has_no_side_effects` are never used [INFO] [stdout] --> src/mir/transform/deadcode.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl DeadCodeElimination { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn apply(&self, func: &mut Function) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn compute_live_registers(&self, func: &Function) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn process_block_liveness(&self, block: &Block, live_regs: &mut HashSet) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | fn remove_dead_instructions(&self, block: &mut Block, live_regs: &HashSet) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | fn is_dead_instruction(&self, instr: &Instruction, live_regs: &HashSet) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | fn has_no_side_effects(&self, instr: &Instruction) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Peephole` is never constructed [INFO] [stdout] --> src/mir/transform/peephole.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Peephole; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `run_on_function`, `run_on_block`, and `try_fold_int_identity` are never used [INFO] [stdout] --> src/mir/transform/peephole.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl Peephole { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 33 | /// Apply peephole rewrites to a function. Returns true if any change occurred. [INFO] [stdout] 34 | pub fn run_on_function(&self, func: &mut Function) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | fn run_on_block(&self, block: &mut Block) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn try_fold_int_identity( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_zero` is never used [INFO] [stdout] --> src/mir/transform/peephole.rs:131:4 [INFO] [stdout] | [INFO] [stdout] 131 | fn is_zero(i: Option) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_one` is never used [INFO] [stdout] --> src/mir/transform/peephole.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn is_one(i: Option) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.45s [INFO] running `Command { std: "docker" "inspect" "7f9721b21dc03b672cc2309df75fd95716aebe963851bebf8da38e87c06a9ed0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7f9721b21dc03b672cc2309df75fd95716aebe963851bebf8da38e87c06a9ed0", kill_on_drop: false }` [INFO] [stdout] 7f9721b21dc03b672cc2309df75fd95716aebe963851bebf8da38e87c06a9ed0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 665af2dda5417fc7cc5881aef7cda4038f2eca7cc759ecb0ae475e64e8d44a66 [INFO] running `Command { std: "docker" "start" "-a" "665af2dda5417fc7cc5881aef7cda4038f2eca7cc759ecb0ae475e64e8d44a66", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `Type` [INFO] [stdout] --> src/codegen/riscv/globals.rs:3:70 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{GlobalDeclaration, LaminaError, Literal, Module, Result, Type}; [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: `ValueLocation` [INFO] [stdout] --> src/codegen/riscv/instructions.rs:2:68 [INFO] [stdout] | [INFO] [stdout] 2 | use super::state::{CodegenState, FunctionContext, RETURN_REGISTER, ValueLocation}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/codegen/riscv/instructions.rs:4:90 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::{BinaryOp, Identifier, Instruction, LaminaError, PrimitiveType, Result, Type, Value}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MirType` [INFO] [stdout] --> src/mir/codegen/convert.rs:4:51 [INFO] [stdout] | [INFO] [stdout] 4 | AddressMode, Block, Instruction, MemoryAttrs, MirType, Module, Operand, Parameter, Register, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/mod.rs:225:21 [INFO] [stdout] | [INFO] [stdout] 225 | _ => writeln!(w, " // TODO: unimplemented binop {}", op)?, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/mod.rs:225:21 [INFO] [stdout] | [INFO] [stdout] 124 | crate::mir::IntBinOp::Add => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 129 | crate::mir::IntBinOp::Sub => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 134 | crate::mir::IntBinOp::Mul => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 139 | crate::mir::IntBinOp::UDiv => { [INFO] [stdout] | -------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 225 | _ => writeln!(w, " // TODO: unimplemented binop {}", op)?, [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saved_area` [INFO] [stdout] --> src/codegen/riscv/functions.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | let saved_area: i64 = match state.width() { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_area` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `allocated_ty` [INFO] [stdout] --> src/codegen/riscv/instructions.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | allocated_ty, [INFO] [stdout] | ^^^^^^^^^^^^ help: try ignoring the field: `allocated_ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `free_gprs`, `used_gprs`, and `vreg_to_preg` are never read [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/regalloc.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct A64RegAlloc { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 11 | free_gprs: VecDeque<&'static str>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | used_gprs: HashSet<&'static str>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | vreg_to_preg: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_occupied`, `occupy`, `release`, `get_mapping_for`, `ensure_mapping_for_gpr`, and `mapped_for_register` are never used [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/regalloc.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl A64RegAlloc { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn is_occupied(&self, phys: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn occupy(&mut self, phys: &'static str) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn release(&mut self, phys: &'static str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn get_mapping_for(&self, v: &VirtualReg) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn ensure_mapping_for_gpr(&mut self, v: VirtualReg) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn mapped_for_register(&self, r: &Register) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_memory_contents_for_value` is never used [INFO] [stdout] --> src/codegen/wasm/state.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 55 | impl<'a> CodegenState<'a> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | fn set_memory_contents_for_value(&mut self, address: usize, val: Value<'a>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DeadCodeStats` is never constructed [INFO] [stdout] --> src/mir/transform/deadcode.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct DeadCodeStats { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DeadCodeElimination` is never constructed [INFO] [stdout] --> src/mir/transform/deadcode.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct DeadCodeElimination; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `apply`, `compute_live_registers`, `process_block_liveness`, `remove_dead_instructions`, `is_dead_instruction`, and `has_no_side_effects` are never used [INFO] [stdout] --> src/mir/transform/deadcode.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl DeadCodeElimination { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn apply(&self, func: &mut Function) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn compute_live_registers(&self, func: &Function) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn process_block_liveness(&self, block: &Block, live_regs: &mut HashSet) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | fn remove_dead_instructions(&self, block: &mut Block, live_regs: &HashSet) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | fn is_dead_instruction(&self, instr: &Instruction, live_regs: &HashSet) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | fn has_no_side_effects(&self, instr: &Instruction) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Peephole` is never constructed [INFO] [stdout] --> src/mir/transform/peephole.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Peephole; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `run_on_function`, `run_on_block`, and `try_fold_int_identity` are never used [INFO] [stdout] --> src/mir/transform/peephole.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl Peephole { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 33 | /// Apply peephole rewrites to a function. Returns true if any change occurred. [INFO] [stdout] 34 | pub fn run_on_function(&self, func: &mut Function) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | fn run_on_block(&self, block: &mut Block) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn try_fold_int_identity( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_zero` is never used [INFO] [stdout] --> src/mir/transform/peephole.rs:131:4 [INFO] [stdout] | [INFO] [stdout] 131 | fn is_zero(i: Option) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_one` is never used [INFO] [stdout] --> src/mir/transform/peephole.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn is_one(i: Option) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling lamina v0.0.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Type` [INFO] [stdout] --> src/codegen/riscv/globals.rs:3:70 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{GlobalDeclaration, LaminaError, Literal, Module, Result, Type}; [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: `ValueLocation` [INFO] [stdout] --> src/codegen/riscv/instructions.rs:2:68 [INFO] [stdout] | [INFO] [stdout] 2 | use super::state::{CodegenState, FunctionContext, RETURN_REGISTER, ValueLocation}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/codegen/riscv/instructions.rs:4:90 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::{BinaryOp, Identifier, Instruction, LaminaError, PrimitiveType, Result, Type, Value}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `i64 as ir_i64` [INFO] [stdout] --> src/mir/codegen/convert.rs:814:30 [INFO] [stdout] | [INFO] [stdout] 814 | use crate::ir::builder::{i64 as ir_i64, var}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Immediate` [INFO] [stdout] --> src/mir/function.rs:234:35 [INFO] [stdout] | [INFO] [stdout] 234 | use crate::mir::instruction::{Immediate, Instruction, IntBinOp, Operand}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/mod.rs:225:21 [INFO] [stdout] | [INFO] [stdout] 225 | _ => writeln!(w, " // TODO: unimplemented binop {}", op)?, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/mod.rs:225:21 [INFO] [stdout] | [INFO] [stdout] 124 | crate::mir::IntBinOp::Add => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 129 | crate::mir::IntBinOp::Sub => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 134 | crate::mir::IntBinOp::Mul => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 139 | crate::mir::IntBinOp::UDiv => { [INFO] [stdout] | -------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 225 | _ => writeln!(w, " // TODO: unimplemented binop {}", op)?, [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saved_area` [INFO] [stdout] --> src/codegen/riscv/functions.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | let saved_area: i64 = match state.width() { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_area` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `allocated_ty` [INFO] [stdout] --> src/codegen/riscv/instructions.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | allocated_ty, [INFO] [stdout] | ^^^^^^^^^^^^ help: try ignoring the field: `allocated_ty: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `free_gprs`, `used_gprs`, and `vreg_to_preg` are never read [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/regalloc.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct A64RegAlloc { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 11 | free_gprs: VecDeque<&'static str>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | used_gprs: HashSet<&'static str>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | vreg_to_preg: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_occupied`, `occupy`, `release`, `get_mapping_for`, `ensure_mapping_for_gpr`, and `mapped_for_register` are never used [INFO] [stdout] --> src/codegen/mir_ver/arm/aarch64/regalloc.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl A64RegAlloc { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn is_occupied(&self, phys: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn occupy(&mut self, phys: &'static str) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn release(&mut self, phys: &'static str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn get_mapping_for(&self, v: &VirtualReg) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn ensure_mapping_for_gpr(&mut self, v: VirtualReg) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn mapped_for_register(&self, r: &Register) -> Option<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_memory_contents_for_value` is never used [INFO] [stdout] --> src/codegen/wasm/state.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 55 | impl<'a> CodegenState<'a> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | fn set_memory_contents_for_value(&mut self, address: usize, val: Value<'a>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/parser/impl_.rs:1507:26 [INFO] [stdout] | [INFO] [stdout] 1507 | fn test_state(input: &str) -> ParserState { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 1507 | fn test_state(input: &str) -> ParserState<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 6.33s [INFO] running `Command { std: "docker" "inspect" "665af2dda5417fc7cc5881aef7cda4038f2eca7cc759ecb0ae475e64e8d44a66", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "665af2dda5417fc7cc5881aef7cda4038f2eca7cc759ecb0ae475e64e8d44a66", kill_on_drop: false }` [INFO] [stdout] 665af2dda5417fc7cc5881aef7cda4038f2eca7cc759ecb0ae475e64e8d44a66 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] f26deaf35d15fb648b1540a80aae9d67bdb71ab32ddf2c454e554d84be765a64 [INFO] running `Command { std: "docker" "start" "-a" "f26deaf35d15fb648b1540a80aae9d67bdb71ab32ddf2c454e554d84be765a64", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `Type` [INFO] [stderr] --> src/codegen/riscv/globals.rs:3:70 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::{GlobalDeclaration, LaminaError, Literal, Module, Result, Type}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `ValueLocation` [INFO] [stderr] --> src/codegen/riscv/instructions.rs:2:68 [INFO] [stderr] | [INFO] [stderr] 2 | use super::state::{CodegenState, FunctionContext, RETURN_REGISTER, ValueLocation}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Value` [INFO] [stderr] --> src/codegen/riscv/instructions.rs:4:90 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::{BinaryOp, Identifier, Instruction, LaminaError, PrimitiveType, Result, Type, Value}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MirType` [INFO] [stderr] --> src/mir/codegen/convert.rs:4:51 [INFO] [stderr] | [INFO] [stderr] 4 | AddressMode, Block, Instruction, MemoryAttrs, MirType, Module, Operand, Parameter, Register, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/codegen/mir_ver/arm/aarch64/mod.rs:225:21 [INFO] [stderr] | [INFO] [stderr] 225 | _ => writeln!(w, " // TODO: unimplemented binop {}", op)?, [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/codegen/mir_ver/arm/aarch64/mod.rs:225:21 [INFO] [stderr] | [INFO] [stderr] 124 | crate::mir::IntBinOp::Add => { [INFO] [stderr] | ------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 129 | crate::mir::IntBinOp::Sub => { [INFO] [stderr] | ------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 134 | crate::mir::IntBinOp::Mul => { [INFO] [stderr] | ------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 139 | crate::mir::IntBinOp::UDiv => { [INFO] [stderr] | -------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 225 | _ => writeln!(w, " // TODO: unimplemented binop {}", op)?, [INFO] [stderr] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `saved_area` [INFO] [stderr] --> src/codegen/riscv/functions.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | let saved_area: i64 = match state.width() { [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_area` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `allocated_ty` [INFO] [stderr] --> src/codegen/riscv/instructions.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | allocated_ty, [INFO] [stderr] | ^^^^^^^^^^^^ help: try ignoring the field: `allocated_ty: _` [INFO] [stderr] [INFO] [stderr] warning: fields `free_gprs`, `used_gprs`, and `vreg_to_preg` are never read [INFO] [stderr] --> src/codegen/mir_ver/arm/aarch64/regalloc.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct A64RegAlloc { [INFO] [stderr] | ----------- fields in this struct [INFO] [stderr] 11 | free_gprs: VecDeque<&'static str>, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 12 | used_gprs: HashSet<&'static str>, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 13 | vreg_to_preg: HashMap, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: methods `is_occupied`, `occupy`, `release`, `get_mapping_for`, `ensure_mapping_for_gpr`, and `mapped_for_register` are never used [INFO] [stderr] --> src/codegen/mir_ver/arm/aarch64/regalloc.rs:72:12 [INFO] [stderr] | [INFO] [stderr] 36 | impl A64RegAlloc { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 72 | pub fn is_occupied(&self, phys: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 77 | pub fn occupy(&mut self, phys: &'static str) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 87 | pub fn release(&mut self, phys: &'static str) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 94 | pub fn get_mapping_for(&self, v: &VirtualReg) -> Option<&'static str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 100 | pub fn ensure_mapping_for_gpr(&mut self, v: VirtualReg) -> Option<&'static str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 117 | pub fn mapped_for_register(&self, r: &Register) -> Option<&'static str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `set_memory_contents_for_value` is never used [INFO] [stderr] --> src/codegen/wasm/state.rs:84:8 [INFO] [stderr] | [INFO] [stderr] 55 | impl<'a> CodegenState<'a> { [INFO] [stderr] | ------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 84 | fn set_memory_contents_for_value(&mut self, address: usize, val: Value<'a>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DeadCodeStats` is never constructed [INFO] [stderr] --> src/mir/transform/deadcode.rs:11:12 [INFO] [stderr] | [INFO] [stderr] 11 | pub struct DeadCodeStats { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DeadCodeElimination` is never constructed [INFO] [stderr] --> src/mir/transform/deadcode.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | pub struct DeadCodeElimination; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `apply`, `compute_live_registers`, `process_block_liveness`, `remove_dead_instructions`, `is_dead_instruction`, and `has_no_side_effects` are never used [INFO] [stderr] --> src/mir/transform/deadcode.rs:45:12 [INFO] [stderr] | [INFO] [stderr] 40 | impl DeadCodeElimination { [INFO] [stderr] | ------------------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 45 | pub fn apply(&self, func: &mut Function) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 88 | fn compute_live_registers(&self, func: &Function) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 112 | fn process_block_liveness(&self, block: &Block, live_regs: &mut HashSet) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 139 | fn remove_dead_instructions(&self, block: &mut Block, live_regs: &HashSet) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 158 | fn is_dead_instruction(&self, instr: &Instruction, live_regs: &HashSet) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 177 | fn has_no_side_effects(&self, instr: &Instruction) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Peephole` is never constructed [INFO] [stderr] --> src/mir/transform/peephole.rs:12:12 [INFO] [stderr] | [INFO] [stderr] 12 | pub struct Peephole; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `run_on_function`, `run_on_block`, and `try_fold_int_identity` are never used [INFO] [stderr] --> src/mir/transform/peephole.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 32 | impl Peephole { [INFO] [stderr] | ------------- methods in this implementation [INFO] [stderr] 33 | /// Apply peephole rewrites to a function. Returns true if any change occurred. [INFO] [stderr] 34 | pub fn run_on_function(&self, func: &mut Function) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 44 | fn run_on_block(&self, block: &mut Block) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 72 | fn try_fold_int_identity( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_zero` is never used [INFO] [stderr] --> src/mir/transform/peephole.rs:131:4 [INFO] [stderr] | [INFO] [stderr] 131 | fn is_zero(i: Option) -> bool { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_one` is never used [INFO] [stderr] --> src/mir/transform/peephole.rs:142:4 [INFO] [stderr] | [INFO] [stderr] 142 | fn is_one(i: Option) -> bool { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `lamina` (lib) generated 17 warnings (run `cargo fix --lib -p lamina` to apply 6 suggestions) [INFO] [stderr] warning: unused import: `i64 as ir_i64` [INFO] [stderr] --> src/mir/codegen/convert.rs:814:30 [INFO] [stderr] | [INFO] [stderr] 814 | use crate::ir::builder::{i64 as ir_i64, var}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Immediate` [INFO] [stderr] --> src/mir/function.rs:234:35 [INFO] [stderr] | [INFO] [stderr] 234 | use crate::mir::instruction::{Immediate, Instruction, IntBinOp, Operand}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/parser/impl_.rs:1507:26 [INFO] [stderr] | [INFO] [stderr] 1507 | fn test_state(input: &str) -> ParserState { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 1507 | fn test_state(input: &str) -> ParserState<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `lamina` (lib test) generated 12 warnings (9 duplicates) (run `cargo fix --lib -p lamina --tests` to apply 3 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lamina-6024558e47afcab1) [INFO] [stdout] [INFO] [stdout] running 143 tests [INFO] [stdout] test codegen::common::globals::tests::test_generate_literal_data ... ok [INFO] [stdout] test codegen::common::globals::tests::test_get_alignment_for_type ... ok [INFO] [stdout] test codegen::common::globals::tests::test_global_manager ... ok [INFO] [stdout] test codegen::common::instruction_sel::tests::test_fits_in_immediate ... ok [INFO] [stdout] test codegen::common::register_alloc::tests::test_calculate_spill_cost ... ok [INFO] [stdout] test codegen::common::globals::tests::test_standard_global_generator ... ok [INFO] [stdout] test codegen::common::register_alloc::tests::test_linear_scan_allocator ... ok [INFO] [stdout] test codegen::common::instruction_sel::tests::test_addressing_mode_att_syntax ... ok [INFO] [stdout] test codegen::common::instruction_sel::tests::test_addressing_mode_intel_syntax ... ok [INFO] [stdout] test codegen::common::instruction_sel::tests::test_cost_model ... ok [INFO] [stdout] test codegen::common::register_alloc::tests::test_ranges_interfere ... ok [INFO] [stdout] test codegen::common::stack_layout::tests::test_calculate_outgoing_args_size ... ok [INFO] [stdout] test codegen::common::stack_layout::tests::test_standard_stack_layout ... ok [INFO] [stdout] test codegen::common::stack_layout::tests::test_optimize_stack_layout ... ok [INFO] [stdout] test codegen::common::utils::tests::test_bits_needed_for_value ... ok [INFO] [stdout] test codegen::common::utils::tests::test_escape_asm_string ... ok [INFO] [stdout] test codegen::common::utils::tests::test_align_to_signed ... ok [INFO] [stdout] test codegen::common::utils::tests::test_fits_in_signed_bits ... ok [INFO] [stdout] test codegen::common::utils::tests::test_fits_in_unsigned_bits ... ok [INFO] [stdout] test codegen::common::utils::tests::test_generate_temp_name ... ok [INFO] [stdout] test codegen::common::utils::tests::test_get_type_alignment ... ok [INFO] [stdout] test codegen::common::utils::tests::test_get_type_size_bytes ... ok [INFO] [stdout] test codegen::common::utils::tests::test_is_aligned ... ok [INFO] [stdout] test codegen::common::utils::tests::test_align_to ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_binary_operations ... ok [INFO] [stdout] test codegen::common::globals::tests::test_global_optimizer ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_exported_function ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_function_argument_spilling ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_function_with_multiple_blocks ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_function_calls ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_different_primitive_types ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_block_ordering ... ok [INFO] [stdout] test codegen::common::instruction_sel::tests::test_peephole_optimizer ... ok [INFO] [stdout] test codegen::x86_64::globals::tests::test_generate_globals_no_rodata ... ok [INFO] [stdout] test codegen::x86_64::globals::tests::test_generate_global_initializer ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_matmul_consistency ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_nested_if_statements ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_global_variables ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_simple_loop ... ok [INFO] [stdout] test codegen::x86_64::globals::tests::test_escape_asm_string ... ok [INFO] [stdout] test codegen::x86_64::functions::tests::test_many_function_args ... ok [INFO] [stdout] test codegen::x86_64::globals::tests::test_generate_globals_rodata ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_alloc_instructions ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_br_instruction ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_binary_instructions ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_getfieldptr_instruction ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_cmp_instructions ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_call_instruction ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_getelementptr_instruction ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_complex_instruction_sequence ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_jmp_instruction ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_load_instructions ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_load_stack_heap_variants ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_print_instruction ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_ret_instruction ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_store_instructions ... ok [INFO] [stdout] test codegen::x86_64::optimization::tests::test_apply_peephole_optimizations ... ok [INFO] [stdout] test codegen::x86_64::optimization::tests::test_estimate_inlining_benefit ... ok [INFO] [stdout] test codegen::x86_64::register_allocator::tests::test_interference_detection ... ok [INFO] [stdout] test codegen::x86_64::instructions::tests::test_zeroextend_instructions ... ok [INFO] [stdout] test codegen::x86_64::register_info::tests::test_get_register_suffix_for_size ... ok [INFO] [stdout] test codegen::x86_64::register_info::tests::test_register_constants ... ok [INFO] [stdout] test codegen::x86_64::state::tests::test_function_context_get_block_label ... ok [INFO] [stdout] test codegen::x86_64::optimization::tests::test_analyze_function_complexity ... ok [INFO] [stdout] test codegen::x86_64::register_allocator::tests::test_live_interval_creation ... ok [INFO] [stdout] test codegen::x86_64::optimization::tests::test_optimization_config ... ok [INFO] [stdout] test codegen::x86_64::util::tests::test_get_type_size_directive_and_bytes_array ... ok [INFO] [stdout] test codegen::x86_64::util::tests::test_get_type_size_directive_and_bytes_invalid ... ok [INFO] [stdout] test codegen::x86_64::register_info::tests::test_get_sized_register ... ok [INFO] [stdout] test codegen::x86_64::register_allocator::tests::test_register_allocation_result ... ok [INFO] [stdout] test codegen::x86_64::register_info::tests::test_register_classification ... ok [INFO] [stdout] test codegen::x86_64::state::tests::test_function_context_new ... ok [INFO] [stdout] test codegen::x86_64::util::tests::test_get_value_operand_asm_constants ... ok [INFO] [stdout] test codegen::x86_64::util::tests::test_get_value_operand_asm_global ... ok [INFO] [stdout] test ir::builder::tests::test_alloc_store_load_pattern ... ok [INFO] [stdout] test codegen::x86_64::util::tests::test_get_value_operand_asm_variable ... ok [INFO] [stdout] test codegen::x86_64::util::tests::test_get_type_size_directive_and_bytes_primitives ... ok [INFO] [stdout] test ir::function::tests::test_display_function ... ok [INFO] [stdout] test ir::builder::tests::test_build_func_with_multiple_blocks ... ok [INFO] [stdout] test ir::function::tests::test_display_function_annotation ... ok [INFO] [stdout] test ir::function::tests::test_display_basic_block ... ok [INFO] [stdout] test ir::builder::tests::test_build_simple_function ... ok [INFO] [stdout] test ir::function::tests::test_display_function_signature ... ok [INFO] [stdout] test ir::function::tests::test_display_function_parameter ... ok [INFO] [stdout] test ir::instruction::tests::test_display_instruction ... ok [INFO] [stdout] test ir::module::tests::test_display_module ... ok [INFO] [stdout] test ir::module::tests::test_display_global_declaration ... ok [INFO] [stdout] test ir::module::tests::test_display_empty_module ... ok [INFO] [stdout] test ir::module::tests::test_display_type_declaration ... ok [INFO] [stdout] test ir::types::tests::test_display_primitive_type ... ok [INFO] [stdout] test ir::types::tests::test_display_literal ... ok [INFO] [stdout] test ir::types::tests::test_display_type ... ok [INFO] [stdout] test mir::block::tests::test_basic_block_creation ... ok [INFO] [stdout] test mir::block::tests::test_basic_block_push ... ok [INFO] [stdout] test mir::function::tests::test_function_builder ... ok [INFO] [stdout] test ir::instruction::tests::test_display_alloc_type ... ok [INFO] [stdout] test ir::instruction::tests::test_display_binary_op ... ok [INFO] [stdout] test ir::instruction::tests::test_display_cmp_op ... ok [INFO] [stdout] test mir::instruction::tests::test_instruction_def_reg ... ok [INFO] [stdout] test mir::function::tests::test_function_validation ... ok [INFO] [stdout] test mir::instruction::tests::test_instruction_is_terminator ... ok [INFO] [stdout] test ir::types::tests::test_display_value ... ok [INFO] [stdout] test mir::module::tests::test_module_add_function ... ok [INFO] [stdout] test mir::module::tests::test_module_builder ... ok [INFO] [stdout] test mir::function::tests::test_signature_creation ... ok [INFO] [stdout] test mir::module::tests::test_module_creation ... ok [INFO] [stdout] test mir::module::tests::test_module_add_global ... ok [INFO] [stdout] test mir::register::tests::test_physical_reg ... ok [INFO] [stdout] test mir::block::tests::test_basic_block_terminator ... ok [INFO] [stdout] test mir::register::tests::test_virtual_reg_creation ... ok [INFO] [stdout] test mir::transform::deadcode::tests::test_dead_code_elimination_basic ... ok [INFO] [stdout] test mir::transform::deadcode::tests::test_dead_code_elimination_no_changes ... ok [INFO] [stdout] test mir::transform::deadcode::tests::test_dead_code_elimination_side_effects ... ok [INFO] [stdout] test mir::transform::peephole::tests::fold_add_zero_right ... ok [INFO] [stdout] test mir::transform::peephole::tests::fold_mul_one_left ... ok [INFO] [stdout] test mir::transform::deadcode::tests::test_dead_code_elimination_terminators ... ok [INFO] [stdout] test mir::types::tests::test_float_detection ... ok [INFO] [stdout] test mir::types::tests::test_vector_sizes ... ok [INFO] [stdout] test parser::impl_::tests::test_parse_boolean_literals ... ok [INFO] [stdout] test mir::register::tests::test_register_enum ... ok [INFO] [stdout] test parser::impl_::tests::test_parse_float_literals_with_hints ... ok [INFO] [stdout] test parser::impl_::tests::test_parse_integer_literals_with_hints ... ok [INFO] [stdout] test mir::register::tests::test_virtual_reg_allocator ... ok [INFO] [stdout] test parser::impl_::tests::test_parse_named_type ... ok [INFO] [stdout] test mir::types::tests::test_scalar_sizes ... ok [INFO] [stdout] test parser::impl_::tests::test_parse_invalid_type ... ok [INFO] [stdout] test mir::codegen::convert::tests::test_from_ir_simple_add ... ok [INFO] [stdout] test ir::function::tests::test_display_function_multiple_blocks ... ok [INFO] [stdout] test parser::impl_::tests::test_parse_primitive_types ... ok [INFO] [stdout] test parser::impl_::tests::test_parse_string_literals ... ok [INFO] [stdout] test parser::impl_::tests::test_parse_type_mismatches ... ok [INFO] [stdout] test parser::impl_::tests::test_parse_variables_and_globals ... ok [INFO] [stdout] test parser::tests::test_parse_block_missing_terminator ... ok [INFO] [stdout] test parser::tests::test_parse_comments_and_whitespace ... ok [INFO] [stdout] test parser::tests::test_parse_comparison_operators ... ok [INFO] [stdout] test parser::tests::test_parse_function_call ... ok [INFO] [stdout] test parser::tests::test_parse_function_with_multiple_blocks ... ok [INFO] [stdout] test parser::tests::test_parse_global_declarations ... ok [INFO] [stdout] test parser::tests::test_parse_tensor_benchmark ... FAILED [INFO] [stdout] test parser::tests::test_parse_i8_type_and_zext ... ok [INFO] [stdout] test parser::tests::test_parse_type_declarations ... ok [INFO] [stdout] test parser::tests::test_parse_array_and_struct_operations ... ok [INFO] [stdout] test parser::tests::test_parse_simple_add_function ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- parser::tests::test_parse_tensor_benchmark stdout ---- [INFO] [stdout] Error: ParsingError("Failed to read benchmark file: No such file or directory (os error 2)") [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] parser::tests::test_parse_tensor_benchmark [INFO] [stdout] [INFO] [stdout] test result: FAILED. 142 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--lib` [INFO] running `Command { std: "docker" "inspect" "f26deaf35d15fb648b1540a80aae9d67bdb71ab32ddf2c454e554d84be765a64", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f26deaf35d15fb648b1540a80aae9d67bdb71ab32ddf2c454e554d84be765a64", kill_on_drop: false }` [INFO] [stdout] f26deaf35d15fb648b1540a80aae9d67bdb71ab32ddf2c454e554d84be765a64