rust/tests/mir-opt/building/match/array_len.rs
Camille Gillot de73af9ec4 Add test.
2025-09-16 22:44:35 +00:00

31 lines
729 B
Rust

// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
//@ compile-flags: -Zmir-opt-level=0
fn opaque<T>(x: T) {}
// EMIT_MIR array_len.const_array_len.built.after.mir
fn const_array_len<T>(x: [T; 5]) {
// CHECK-LABEL: fn const_array_len(
// CHECK-NOT: Len
// CHECK-NOT: PtrMetadata
// CHECK: = const 5_usize;
if let [a, b, rest @ .., e] = x {
opaque(a);
opaque(b);
opaque(rest);
opaque(e);
}
}
// EMIT_MIR array_len.slice_len.built.after.mir
fn slice_len<T>(x: &[T]) {
// CHECK-LABEL: fn slice_len(
// CHECK-NOT: Len
// CHECK: = PtrMetadata(copy _1);
if let [a, b, rest @ .., e] = x {
opaque(a);
opaque(b);
opaque(rest);
opaque(e);
}
}