1- // skip-filecheck
21// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
32// unit-test: NormalizeArrayLen
43// compile-flags: -Zmir-enable-passes=+LowerSliceLenCalls
54
65// EMIT_MIR lower_array_len.array_bound.NormalizeArrayLen.diff
76pub fn array_bound < const N : usize > ( index : usize , slice : & [ u8 ; N ] ) -> u8 {
7+ // CHECK-LABEL: fn array_bound(
8+ // CHECK: [[len:_.*]] = const N;
9+ // CHECK: Lt(move {{_.*}}, move [[len]]);
810 if index < slice. len ( ) {
911 slice[ index]
1012 } else {
@@ -14,6 +16,9 @@ pub fn array_bound<const N: usize>(index: usize, slice: &[u8; N]) -> u8 {
1416
1517// EMIT_MIR lower_array_len.array_bound_mut.NormalizeArrayLen.diff
1618pub fn array_bound_mut < const N : usize > ( index : usize , slice : & mut [ u8 ; N ] ) -> u8 {
19+ // CHECK-LABEL: fn array_bound_mut(
20+ // CHECK: [[len:_.*]] = const N;
21+ // CHECK: Lt(move {{_.*}}, move [[len]]);
1722 if index < slice. len ( ) {
1823 slice[ index]
1924 } else {
@@ -25,23 +30,31 @@ pub fn array_bound_mut<const N: usize>(index: usize, slice: &mut [u8; N]) -> u8
2530
2631// EMIT_MIR lower_array_len.array_len.NormalizeArrayLen.diff
2732pub fn array_len < const N : usize > ( arr : & [ u8 ; N ] ) -> usize {
33+ // CHECK-LABEL: fn array_len(
34+ // CHECK: _0 = const N;
2835 arr. len ( )
2936}
3037
3138// EMIT_MIR lower_array_len.array_len_by_value.NormalizeArrayLen.diff
3239pub fn array_len_by_value < const N : usize > ( arr : [ u8 ; N ] ) -> usize {
40+ // CHECK-LABEL: fn array_len_by_value(
41+ // CHECK: _0 = const N;
3342 arr. len ( )
3443}
3544
3645// EMIT_MIR lower_array_len.array_len_reborrow.NormalizeArrayLen.diff
3746pub fn array_len_reborrow < const N : usize > ( mut arr : [ u8 ; N ] ) -> usize {
47+ // CHECK-LABEL: fn array_len_reborrow(
48+ // CHECK: _0 = const N;
3849 let arr: & mut [ _ ] = & mut arr;
3950 let arr = & * arr;
4051 arr. len ( )
4152}
4253
4354// EMIT_MIR lower_array_len.array_len_raw.NormalizeArrayLen.diff
4455pub fn array_len_raw < const N : usize > ( arr : [ u8 ; N ] ) -> usize {
56+ // CHECK-LABEL: fn array_len_raw(
57+ // CHECK: _0 = const N;
4558 let arr: & [ _ ] = & arr;
4659 let arr = std:: ptr:: addr_of!( * arr) ;
4760 unsafe { & * arr } . len ( )
0 commit comments