1 - // MIR for `main` before ConstProp
2 + // MIR for `main` after ConstProp
5 let mut _0: (); // return place in scope 0 at $DIR/array_index.rs:4:11: 4:11
6 let _1: u32; // in scope 0 at $DIR/array_index.rs:5:9: 5:10
7 let mut _2: [u32; 4]; // in scope 0 at $DIR/array_index.rs:5:18: 5:30
8 let _3: usize; // in scope 0 at $DIR/array_index.rs:5:31: 5:32
9 let mut _4: usize; // in scope 0 at $DIR/array_index.rs:5:18: 5:33
10 let mut _5: bool; // in scope 0 at $DIR/array_index.rs:5:18: 5:33
12 debug x => _1; // in scope 1 at $DIR/array_index.rs:5:9: 5:10
16 StorageLive(_1); // scope 0 at $DIR/array_index.rs:5:9: 5:10
17 StorageLive(_2); // scope 0 at $DIR/array_index.rs:5:18: 5:30
18 _2 = [const 0_u32, const 1_u32, const 2_u32, const 3_u32]; // scope 0 at $DIR/array_index.rs:5:18: 5:30
21 // + val: Value(Scalar(0x00000000))
23 // + span: $DIR/array_index.rs:5:19: 5:20
24 // + literal: Const { ty: u32, val: Value(Scalar(0x00000000)) }
27 // + val: Value(Scalar(0x00000001))
29 // + span: $DIR/array_index.rs:5:22: 5:23
30 // + literal: Const { ty: u32, val: Value(Scalar(0x00000001)) }
33 // + val: Value(Scalar(0x00000002))
35 // + span: $DIR/array_index.rs:5:25: 5:26
36 // + literal: Const { ty: u32, val: Value(Scalar(0x00000002)) }
39 // + val: Value(Scalar(0x00000003))
41 // + span: $DIR/array_index.rs:5:28: 5:29
42 // + literal: Const { ty: u32, val: Value(Scalar(0x00000003)) }
43 StorageLive(_3); // scope 0 at $DIR/array_index.rs:5:31: 5:32
44 _3 = const 2_usize; // scope 0 at $DIR/array_index.rs:5:31: 5:32
47 // + val: Value(Scalar(0x0000000000000002))
49 // + span: $DIR/array_index.rs:5:31: 5:32
50 // + literal: Const { ty: usize, val: Value(Scalar(0x0000000000000002)) }
51 _4 = const 4_usize; // scope 0 at $DIR/array_index.rs:5:18: 5:33
54 // + val: Value(Scalar(0x0000000000000004))
56 // + span: $DIR/array_index.rs:5:18: 5:33
57 // + literal: Const { ty: usize, val: Value(Scalar(0x0000000000000004)) }
58 - _5 = Lt(_3, _4); // scope 0 at $DIR/array_index.rs:5:18: 5:33
59 - assert(move _5, "index out of bounds: the len is {} but the index is {}", move _4, _3) -> bb1; // scope 0 at $DIR/array_index.rs:5:18: 5:33
60 + _5 = const true; // scope 0 at $DIR/array_index.rs:5:18: 5:33
63 + // + val: Value(Scalar(0x01))
65 + // + span: $DIR/array_index.rs:5:18: 5:33
66 + // + literal: Const { ty: bool, val: Value(Scalar(0x01)) }
67 + assert(const true, "index out of bounds: the len is {} but the index is {}", const 4_usize, const 2_usize) -> bb1; // scope 0 at $DIR/array_index.rs:5:18: 5:33
70 + // + val: Value(Scalar(0x01))
72 + // + span: $DIR/array_index.rs:5:18: 5:33
73 + // + literal: Const { ty: bool, val: Value(Scalar(0x01)) }
76 + // + val: Value(Scalar(0x0000000000000004))
78 + // + span: $DIR/array_index.rs:5:18: 5:33
79 + // + literal: Const { ty: usize, val: Value(Scalar(0x0000000000000004)) }
82 + // + val: Value(Scalar(0x0000000000000002))
84 + // + span: $DIR/array_index.rs:5:18: 5:33
85 + // + literal: Const { ty: usize, val: Value(Scalar(0x0000000000000002)) }
89 - _1 = _2[_3]; // scope 0 at $DIR/array_index.rs:5:18: 5:33
90 + _1 = const 2_u32; // scope 0 at $DIR/array_index.rs:5:18: 5:33
93 + // + val: Value(Scalar(0x00000002))
95 + // + span: $DIR/array_index.rs:5:18: 5:33
96 + // + literal: Const { ty: u32, val: Value(Scalar(0x00000002)) }
97 StorageDead(_3); // scope 0 at $DIR/array_index.rs:5:33: 5:34
98 StorageDead(_2); // scope 0 at $DIR/array_index.rs:5:33: 5:34
99 _0 = const (); // scope 0 at $DIR/array_index.rs:4:11: 6:2
102 // + val: Value(Scalar(<ZST>))
104 // + span: $DIR/array_index.rs:4:11: 6:2
105 // + literal: Const { ty: (), val: Value(Scalar(<ZST>)) }
106 StorageDead(_1); // scope 0 at $DIR/array_index.rs:6:1: 6:2
107 return; // scope 0 at $DIR/array_index.rs:6:2: 6:2