rust/tests/mir-opt/remove_zsts.rs
2025-01-11 15:56:58 -08:00

30 lines
673 B
Rust

//@ test-mir-pass: RemoveZsts
union Foo {
x: (),
y: u64,
}
// EMIT_MIR remove_zsts.get_union.RemoveZsts.diff
fn get_union() -> Foo {
// CHECK-LABEL: fn get_union
// CHECK: _0 = Foo { x: const () };
Foo { x: () }
}
const MYSTERY: usize = 280_usize.isqrt() - 260_usize.isqrt();
// EMIT_MIR remove_zsts.remove_generic_array.RemoveZsts.diff
fn remove_generic_array<T: Copy>(x: T) {
// CHECK-LABEL: fn remove_generic_array
// CHECK: debug a => const ZeroSized: [T; 0];
// CHECK: debug b => const ZeroSized: [T; 0];
// CHECK-NOT: = [];
// CHECK-NOT: ; 1]
let a = [x; 0];
let b = [x; MYSTERY];
}
fn main() {
get_union();
}