--- /dev/null
+// MIR for `main` after SimplifyCfg-elaborate-drops
+
+fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/array-index-is-temporary.rs:12:11: 12:11
+ let mut _1: [u32; 3]; // in scope 0 at $DIR/array-index-is-temporary.rs:13:9: 13:14
+ let mut _4: &mut usize; // in scope 0 at $DIR/array-index-is-temporary.rs:15:25: 15:31
+ let mut _5: u32; // in scope 0 at $DIR/array-index-is-temporary.rs:16:12: 16:29
+ let mut _6: *mut usize; // in scope 0 at $DIR/array-index-is-temporary.rs:16:25: 16:26
+ let _7: usize; // in scope 0 at $DIR/array-index-is-temporary.rs:16:7: 16:8
+ let mut _8: usize; // in scope 0 at $DIR/array-index-is-temporary.rs:16:5: 16:9
+ let mut _9: bool; // in scope 0 at $DIR/array-index-is-temporary.rs:16:5: 16:9
+ scope 1 {
+ debug x => _1; // in scope 1 at $DIR/array-index-is-temporary.rs:13:9: 13:14
+ let mut _2: usize; // in scope 1 at $DIR/array-index-is-temporary.rs:14:9: 14:14
+ scope 2 {
+ debug y => _2; // in scope 2 at $DIR/array-index-is-temporary.rs:14:9: 14:14
+ let _3: *mut usize; // in scope 2 at $DIR/array-index-is-temporary.rs:15:9: 15:10
+ scope 3 {
+ debug z => _3; // in scope 3 at $DIR/array-index-is-temporary.rs:15:9: 15:10
+ scope 4 {
+ }
+ }
+ }
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/array-index-is-temporary.rs:13:9: 13:14
+ _1 = [const 42_u32, const 43_u32, const 44_u32]; // scope 0 at $DIR/array-index-is-temporary.rs:13:17: 13:29
+ StorageLive(_2); // scope 1 at $DIR/array-index-is-temporary.rs:14:9: 14:14
+ _2 = const 1_usize; // scope 1 at $DIR/array-index-is-temporary.rs:14:17: 14:18
+ StorageLive(_3); // scope 2 at $DIR/array-index-is-temporary.rs:15:9: 15:10
+ StorageLive(_4); // scope 2 at $DIR/array-index-is-temporary.rs:15:25: 15:31
+ _4 = &mut _2; // scope 2 at $DIR/array-index-is-temporary.rs:15:25: 15:31
+ _3 = &raw mut (*_4); // scope 2 at $DIR/array-index-is-temporary.rs:15:25: 15:31
+ StorageDead(_4); // scope 2 at $DIR/array-index-is-temporary.rs:15:31: 15:32
+ StorageLive(_5); // scope 3 at $DIR/array-index-is-temporary.rs:16:12: 16:29
+ StorageLive(_6); // scope 4 at $DIR/array-index-is-temporary.rs:16:25: 16:26
+ _6 = _3; // scope 4 at $DIR/array-index-is-temporary.rs:16:25: 16:26
+ _5 = foo(move _6) -> bb1; // scope 4 at $DIR/array-index-is-temporary.rs:16:21: 16:27
+ // mir::Constant
+ // + span: $DIR/array-index-is-temporary.rs:16:21: 16:24
+ // + literal: Const { ty: unsafe fn(*mut usize) -> u32 {foo}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb1: {
+ StorageDead(_6); // scope 4 at $DIR/array-index-is-temporary.rs:16:26: 16:27
+ StorageLive(_7); // scope 3 at $DIR/array-index-is-temporary.rs:16:7: 16:8
+ _7 = _2; // scope 3 at $DIR/array-index-is-temporary.rs:16:7: 16:8
+ _8 = Len(_1); // scope 3 at $DIR/array-index-is-temporary.rs:16:5: 16:9
+ _9 = Lt(_7, _8); // scope 3 at $DIR/array-index-is-temporary.rs:16:5: 16:9
+ assert(move _9, "index out of bounds: the len is {} but the index is {}", move _8, _7) -> bb2; // scope 3 at $DIR/array-index-is-temporary.rs:16:5: 16:9
+ }
+
+ bb2: {
+ _1[_7] = move _5; // scope 3 at $DIR/array-index-is-temporary.rs:16:5: 16:29
+ StorageDead(_5); // scope 3 at $DIR/array-index-is-temporary.rs:16:28: 16:29
+ StorageDead(_7); // scope 3 at $DIR/array-index-is-temporary.rs:16:29: 16:30
+ _0 = const (); // scope 0 at $DIR/array-index-is-temporary.rs:12:11: 17:2
+ StorageDead(_3); // scope 2 at $DIR/array-index-is-temporary.rs:17:1: 17:2
+ StorageDead(_2); // scope 1 at $DIR/array-index-is-temporary.rs:17:1: 17:2
+ StorageDead(_1); // scope 0 at $DIR/array-index-is-temporary.rs:17:1: 17:2
+ return; // scope 0 at $DIR/array-index-is-temporary.rs:17:2: 17:2
+ }
+}
+++ /dev/null
-// MIR for `main` after SimplifyCfg-elaborate-drops
-
-fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/array-index-is-temporary.rs:12:11: 12:11
- let mut _1: [u32; 3]; // in scope 0 at $DIR/array-index-is-temporary.rs:13:9: 13:14
- let mut _4: &mut usize; // in scope 0 at $DIR/array-index-is-temporary.rs:15:25: 15:31
- let mut _5: u32; // in scope 0 at $DIR/array-index-is-temporary.rs:16:12: 16:29
- let mut _6: *mut usize; // in scope 0 at $DIR/array-index-is-temporary.rs:16:25: 16:26
- let _7: usize; // in scope 0 at $DIR/array-index-is-temporary.rs:16:7: 16:8
- let mut _8: usize; // in scope 0 at $DIR/array-index-is-temporary.rs:16:5: 16:9
- let mut _9: bool; // in scope 0 at $DIR/array-index-is-temporary.rs:16:5: 16:9
- scope 1 {
- debug x => _1; // in scope 1 at $DIR/array-index-is-temporary.rs:13:9: 13:14
- let mut _2: usize; // in scope 1 at $DIR/array-index-is-temporary.rs:14:9: 14:14
- scope 2 {
- debug y => _2; // in scope 2 at $DIR/array-index-is-temporary.rs:14:9: 14:14
- let _3: *mut usize; // in scope 2 at $DIR/array-index-is-temporary.rs:15:9: 15:10
- scope 3 {
- debug z => _3; // in scope 3 at $DIR/array-index-is-temporary.rs:15:9: 15:10
- scope 4 {
- }
- }
- }
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/array-index-is-temporary.rs:13:9: 13:14
- _1 = [const 42_u32, const 43_u32, const 44_u32]; // scope 0 at $DIR/array-index-is-temporary.rs:13:17: 13:29
- StorageLive(_2); // scope 1 at $DIR/array-index-is-temporary.rs:14:9: 14:14
- _2 = const 1_usize; // scope 1 at $DIR/array-index-is-temporary.rs:14:17: 14:18
- StorageLive(_3); // scope 2 at $DIR/array-index-is-temporary.rs:15:9: 15:10
- StorageLive(_4); // scope 2 at $DIR/array-index-is-temporary.rs:15:25: 15:31
- _4 = &mut _2; // scope 2 at $DIR/array-index-is-temporary.rs:15:25: 15:31
- _3 = &raw mut (*_4); // scope 2 at $DIR/array-index-is-temporary.rs:15:25: 15:31
- StorageDead(_4); // scope 2 at $DIR/array-index-is-temporary.rs:15:31: 15:32
- StorageLive(_5); // scope 3 at $DIR/array-index-is-temporary.rs:16:12: 16:29
- StorageLive(_6); // scope 4 at $DIR/array-index-is-temporary.rs:16:25: 16:26
- _6 = _3; // scope 4 at $DIR/array-index-is-temporary.rs:16:25: 16:26
- _5 = foo(move _6) -> bb1; // scope 4 at $DIR/array-index-is-temporary.rs:16:21: 16:27
- // mir::Constant
- // + span: $DIR/array-index-is-temporary.rs:16:21: 16:24
- // + literal: Const { ty: unsafe fn(*mut usize) -> u32 {foo}, val: Value(Scalar(<ZST>)) }
- }
-
- bb1: {
- StorageDead(_6); // scope 4 at $DIR/array-index-is-temporary.rs:16:26: 16:27
- StorageLive(_7); // scope 3 at $DIR/array-index-is-temporary.rs:16:7: 16:8
- _7 = _2; // scope 3 at $DIR/array-index-is-temporary.rs:16:7: 16:8
- _8 = Len(_1); // scope 3 at $DIR/array-index-is-temporary.rs:16:5: 16:9
- _9 = Lt(_7, _8); // scope 3 at $DIR/array-index-is-temporary.rs:16:5: 16:9
- assert(move _9, "index out of bounds: the len is {} but the index is {}", move _8, _7) -> bb2; // scope 3 at $DIR/array-index-is-temporary.rs:16:5: 16:9
- }
-
- bb2: {
- _1[_7] = move _5; // scope 3 at $DIR/array-index-is-temporary.rs:16:5: 16:29
- StorageDead(_5); // scope 3 at $DIR/array-index-is-temporary.rs:16:28: 16:29
- StorageDead(_7); // scope 3 at $DIR/array-index-is-temporary.rs:16:29: 16:30
- _0 = const (); // scope 0 at $DIR/array-index-is-temporary.rs:12:11: 17:2
- StorageDead(_3); // scope 2 at $DIR/array-index-is-temporary.rs:17:1: 17:2
- StorageDead(_2); // scope 1 at $DIR/array-index-is-temporary.rs:17:1: 17:2
- StorageDead(_1); // scope 0 at $DIR/array-index-is-temporary.rs:17:1: 17:2
- return; // scope 0 at $DIR/array-index-is-temporary.rs:17:2: 17:2
- }
-}
--- /dev/null
+- // MIR for `norm2` before InstCombine
++ // MIR for `norm2` after InstCombine
+
+ fn norm2(_1: [f32; 2]) -> f32 {
+ debug x => _1; // in scope 0 at $DIR/combine_array_len.rs:4:10: 4:11
+ let mut _0: f32; // return place in scope 0 at $DIR/combine_array_len.rs:4:26: 4:29
+ let _2: f32; // in scope 0 at $DIR/combine_array_len.rs:5:9: 5:10
+ let _3: usize; // in scope 0 at $DIR/combine_array_len.rs:5:15: 5:16
+ let mut _4: usize; // in scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
+ let mut _5: bool; // in scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
+ let _7: usize; // in scope 0 at $DIR/combine_array_len.rs:6:15: 6:16
+ let mut _8: usize; // in scope 0 at $DIR/combine_array_len.rs:6:13: 6:17
+ let mut _9: bool; // in scope 0 at $DIR/combine_array_len.rs:6:13: 6:17
+ let mut _10: f32; // in scope 0 at $DIR/combine_array_len.rs:7:5: 7:8
+ let mut _11: f32; // in scope 0 at $DIR/combine_array_len.rs:7:5: 7:6
+ let mut _12: f32; // in scope 0 at $DIR/combine_array_len.rs:7:7: 7:8
+ let mut _13: f32; // in scope 0 at $DIR/combine_array_len.rs:7:11: 7:14
+ let mut _14: f32; // in scope 0 at $DIR/combine_array_len.rs:7:11: 7:12
+ let mut _15: f32; // in scope 0 at $DIR/combine_array_len.rs:7:13: 7:14
+ scope 1 {
+ debug a => _2; // in scope 1 at $DIR/combine_array_len.rs:5:9: 5:10
+ let _6: f32; // in scope 1 at $DIR/combine_array_len.rs:6:9: 6:10
+ scope 2 {
+ debug b => _6; // in scope 2 at $DIR/combine_array_len.rs:6:9: 6:10
+ }
+ }
+
+ bb0: {
+ StorageLive(_2); // scope 0 at $DIR/combine_array_len.rs:5:9: 5:10
+ StorageLive(_3); // scope 0 at $DIR/combine_array_len.rs:5:15: 5:16
+ _3 = const 0_usize; // scope 0 at $DIR/combine_array_len.rs:5:15: 5:16
+- _4 = Len(_1); // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
++ _4 = const 2_usize; // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
+ _5 = Lt(_3, _4); // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
+ assert(move _5, "index out of bounds: the len is {} but the index is {}", move _4, _3) -> bb1; // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
+ }
+
+ bb1: {
+ _2 = _1[_3]; // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
+ StorageDead(_3); // scope 0 at $DIR/combine_array_len.rs:5:17: 5:18
+ StorageLive(_6); // scope 1 at $DIR/combine_array_len.rs:6:9: 6:10
+ StorageLive(_7); // scope 1 at $DIR/combine_array_len.rs:6:15: 6:16
+ _7 = const 1_usize; // scope 1 at $DIR/combine_array_len.rs:6:15: 6:16
+- _8 = Len(_1); // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
++ _8 = const 2_usize; // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
+ _9 = Lt(_7, _8); // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
+ assert(move _9, "index out of bounds: the len is {} but the index is {}", move _8, _7) -> bb2; // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
+ }
+
+ bb2: {
+ _6 = _1[_7]; // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
+ StorageDead(_7); // scope 1 at $DIR/combine_array_len.rs:6:17: 6:18
+ StorageLive(_10); // scope 2 at $DIR/combine_array_len.rs:7:5: 7:8
+ StorageLive(_11); // scope 2 at $DIR/combine_array_len.rs:7:5: 7:6
+ _11 = _2; // scope 2 at $DIR/combine_array_len.rs:7:5: 7:6
+ StorageLive(_12); // scope 2 at $DIR/combine_array_len.rs:7:7: 7:8
+ _12 = _2; // scope 2 at $DIR/combine_array_len.rs:7:7: 7:8
+ _10 = Mul(move _11, move _12); // scope 2 at $DIR/combine_array_len.rs:7:5: 7:8
+ StorageDead(_12); // scope 2 at $DIR/combine_array_len.rs:7:7: 7:8
+ StorageDead(_11); // scope 2 at $DIR/combine_array_len.rs:7:7: 7:8
+ StorageLive(_13); // scope 2 at $DIR/combine_array_len.rs:7:11: 7:14
+ StorageLive(_14); // scope 2 at $DIR/combine_array_len.rs:7:11: 7:12
+ _14 = _6; // scope 2 at $DIR/combine_array_len.rs:7:11: 7:12
+ StorageLive(_15); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
+ _15 = _6; // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
+ _13 = Mul(move _14, move _15); // scope 2 at $DIR/combine_array_len.rs:7:11: 7:14
+ StorageDead(_15); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
+ StorageDead(_14); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
+ _0 = Add(move _10, move _13); // scope 2 at $DIR/combine_array_len.rs:7:5: 7:14
+ StorageDead(_13); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
+ StorageDead(_10); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
+ StorageDead(_6); // scope 1 at $DIR/combine_array_len.rs:8:1: 8:2
+ StorageDead(_2); // scope 0 at $DIR/combine_array_len.rs:8:1: 8:2
+ return; // scope 0 at $DIR/combine_array_len.rs:8:2: 8:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `norm2` before InstCombine
-+ // MIR for `norm2` after InstCombine
-
- fn norm2(_1: [f32; 2]) -> f32 {
- debug x => _1; // in scope 0 at $DIR/combine_array_len.rs:4:10: 4:11
- let mut _0: f32; // return place in scope 0 at $DIR/combine_array_len.rs:4:26: 4:29
- let _2: f32; // in scope 0 at $DIR/combine_array_len.rs:5:9: 5:10
- let _3: usize; // in scope 0 at $DIR/combine_array_len.rs:5:15: 5:16
- let mut _4: usize; // in scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
- let mut _5: bool; // in scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
- let _7: usize; // in scope 0 at $DIR/combine_array_len.rs:6:15: 6:16
- let mut _8: usize; // in scope 0 at $DIR/combine_array_len.rs:6:13: 6:17
- let mut _9: bool; // in scope 0 at $DIR/combine_array_len.rs:6:13: 6:17
- let mut _10: f32; // in scope 0 at $DIR/combine_array_len.rs:7:5: 7:8
- let mut _11: f32; // in scope 0 at $DIR/combine_array_len.rs:7:5: 7:6
- let mut _12: f32; // in scope 0 at $DIR/combine_array_len.rs:7:7: 7:8
- let mut _13: f32; // in scope 0 at $DIR/combine_array_len.rs:7:11: 7:14
- let mut _14: f32; // in scope 0 at $DIR/combine_array_len.rs:7:11: 7:12
- let mut _15: f32; // in scope 0 at $DIR/combine_array_len.rs:7:13: 7:14
- scope 1 {
- debug a => _2; // in scope 1 at $DIR/combine_array_len.rs:5:9: 5:10
- let _6: f32; // in scope 1 at $DIR/combine_array_len.rs:6:9: 6:10
- scope 2 {
- debug b => _6; // in scope 2 at $DIR/combine_array_len.rs:6:9: 6:10
- }
- }
-
- bb0: {
- StorageLive(_2); // scope 0 at $DIR/combine_array_len.rs:5:9: 5:10
- StorageLive(_3); // scope 0 at $DIR/combine_array_len.rs:5:15: 5:16
- _3 = const 0_usize; // scope 0 at $DIR/combine_array_len.rs:5:15: 5:16
-- _4 = Len(_1); // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
-+ _4 = const 2_usize; // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
- _5 = Lt(_3, _4); // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
- assert(move _5, "index out of bounds: the len is {} but the index is {}", move _4, _3) -> bb1; // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
- }
-
- bb1: {
- _2 = _1[_3]; // scope 0 at $DIR/combine_array_len.rs:5:13: 5:17
- StorageDead(_3); // scope 0 at $DIR/combine_array_len.rs:5:17: 5:18
- StorageLive(_6); // scope 1 at $DIR/combine_array_len.rs:6:9: 6:10
- StorageLive(_7); // scope 1 at $DIR/combine_array_len.rs:6:15: 6:16
- _7 = const 1_usize; // scope 1 at $DIR/combine_array_len.rs:6:15: 6:16
-- _8 = Len(_1); // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
-+ _8 = const 2_usize; // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
- _9 = Lt(_7, _8); // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
- assert(move _9, "index out of bounds: the len is {} but the index is {}", move _8, _7) -> bb2; // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
- }
-
- bb2: {
- _6 = _1[_7]; // scope 1 at $DIR/combine_array_len.rs:6:13: 6:17
- StorageDead(_7); // scope 1 at $DIR/combine_array_len.rs:6:17: 6:18
- StorageLive(_10); // scope 2 at $DIR/combine_array_len.rs:7:5: 7:8
- StorageLive(_11); // scope 2 at $DIR/combine_array_len.rs:7:5: 7:6
- _11 = _2; // scope 2 at $DIR/combine_array_len.rs:7:5: 7:6
- StorageLive(_12); // scope 2 at $DIR/combine_array_len.rs:7:7: 7:8
- _12 = _2; // scope 2 at $DIR/combine_array_len.rs:7:7: 7:8
- _10 = Mul(move _11, move _12); // scope 2 at $DIR/combine_array_len.rs:7:5: 7:8
- StorageDead(_12); // scope 2 at $DIR/combine_array_len.rs:7:7: 7:8
- StorageDead(_11); // scope 2 at $DIR/combine_array_len.rs:7:7: 7:8
- StorageLive(_13); // scope 2 at $DIR/combine_array_len.rs:7:11: 7:14
- StorageLive(_14); // scope 2 at $DIR/combine_array_len.rs:7:11: 7:12
- _14 = _6; // scope 2 at $DIR/combine_array_len.rs:7:11: 7:12
- StorageLive(_15); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
- _15 = _6; // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
- _13 = Mul(move _14, move _15); // scope 2 at $DIR/combine_array_len.rs:7:11: 7:14
- StorageDead(_15); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
- StorageDead(_14); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
- _0 = Add(move _10, move _13); // scope 2 at $DIR/combine_array_len.rs:7:5: 7:14
- StorageDead(_13); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
- StorageDead(_10); // scope 2 at $DIR/combine_array_len.rs:7:13: 7:14
- StorageDead(_6); // scope 1 at $DIR/combine_array_len.rs:8:1: 8:2
- StorageDead(_2); // scope 0 at $DIR/combine_array_len.rs:8:1: 8:2
- return; // scope 0 at $DIR/combine_array_len.rs:8:2: 8:2
- }
- }
-
--- /dev/null
+// MIR for `main` after ConstProp
+
+fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/const_allocation.rs:7:11: 7:11
+ let _1: &[(std::option::Option<i32>, &[&str])]; // in scope 0 at $DIR/const_allocation.rs:8:5: 8:8
+ let mut _2: &&[(std::option::Option<i32>, &[&str])]; // in scope 0 at $DIR/const_allocation.rs:8:5: 8:8
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/const_allocation.rs:8:5: 8:8
+ StorageLive(_2); // scope 0 at $DIR/const_allocation.rs:8:5: 8:8
+ _2 = const {alloc0: &&[(Option<i32>, &[&str])]}; // scope 0 at $DIR/const_allocation.rs:8:5: 8:8
+ // ty::Const
+ // + ty: &&[(std::option::Option<i32>, &[&str])]
+ // + val: Value(Scalar(alloc0))
+ // mir::Constant
+ // + span: $DIR/const_allocation.rs:8:5: 8:8
+ // + literal: Const { ty: &&[(std::option::Option<i32>, &[&str])], val: Value(Scalar(alloc0)) }
+ _1 = (*_2); // scope 0 at $DIR/const_allocation.rs:8:5: 8:8
+ StorageDead(_2); // scope 0 at $DIR/const_allocation.rs:8:8: 8:9
+ StorageDead(_1); // scope 0 at $DIR/const_allocation.rs:8:8: 8:9
+ _0 = const (); // scope 0 at $DIR/const_allocation.rs:7:11: 9:2
+ return; // scope 0 at $DIR/const_allocation.rs:9:2: 9:2
+ }
+}
+
+alloc0 (static: FOO, size: 8, align: 4) {
+ ╾─alloc17─╼ 03 00 00 00 │ ╾──╼....
+}
+
+alloc17 (size: 48, align: 4) {
+ 0x00 │ 00 00 00 00 __ __ __ __ ╾─alloc4──╼ 00 00 00 00 │ ....░░░░╾──╼....
+ 0x10 │ 00 00 00 00 __ __ __ __ ╾─alloc8──╼ 02 00 00 00 │ ....░░░░╾──╼....
+ 0x20 │ 01 00 00 00 2a 00 00 00 ╾─alloc13─╼ 03 00 00 00 │ ....*...╾──╼....
+}
+
+alloc4 (size: 0, align: 4) {}
+
+alloc8 (size: 16, align: 4) {
+ ╾─alloc7──╼ 03 00 00 00 ╾─alloc9──╼ 03 00 00 00 │ ╾──╼....╾──╼....
+}
+
+alloc7 (size: 3, align: 1) {
+ 66 6f 6f │ foo
+}
+
+alloc9 (size: 3, align: 1) {
+ 62 61 72 │ bar
+}
+
+alloc13 (size: 24, align: 4) {
+ 0x00 │ ╾─alloc12─╼ 03 00 00 00 ╾─alloc14─╼ 03 00 00 00 │ ╾──╼....╾──╼....
+ 0x10 │ ╾─alloc15─╼ 04 00 00 00 │ ╾──╼....
+}
+
+alloc12 (size: 3, align: 1) {
+ 6d 65 68 │ meh
+}
+
+alloc14 (size: 3, align: 1) {
+ 6d 6f 70 │ mop
+}
+
+alloc15 (size: 4, align: 1) {
+ 6d c3 b6 70 │ m..p
+}
+++ /dev/null
-// MIR for `main` after ConstProp
-
-fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/const_allocation.rs:7:11: 7:11
- let _1: &[(std::option::Option<i32>, &[&str])]; // in scope 0 at $DIR/const_allocation.rs:8:5: 8:8
- let mut _2: &&[(std::option::Option<i32>, &[&str])]; // in scope 0 at $DIR/const_allocation.rs:8:5: 8:8
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/const_allocation.rs:8:5: 8:8
- StorageLive(_2); // scope 0 at $DIR/const_allocation.rs:8:5: 8:8
- _2 = const {alloc0: &&[(Option<i32>, &[&str])]}; // scope 0 at $DIR/const_allocation.rs:8:5: 8:8
- // ty::Const
- // + ty: &&[(std::option::Option<i32>, &[&str])]
- // + val: Value(Scalar(alloc0))
- // mir::Constant
- // + span: $DIR/const_allocation.rs:8:5: 8:8
- // + literal: Const { ty: &&[(std::option::Option<i32>, &[&str])], val: Value(Scalar(alloc0)) }
- _1 = (*_2); // scope 0 at $DIR/const_allocation.rs:8:5: 8:8
- StorageDead(_2); // scope 0 at $DIR/const_allocation.rs:8:8: 8:9
- StorageDead(_1); // scope 0 at $DIR/const_allocation.rs:8:8: 8:9
- _0 = const (); // scope 0 at $DIR/const_allocation.rs:7:11: 9:2
- return; // scope 0 at $DIR/const_allocation.rs:9:2: 9:2
- }
-}
-
-alloc0 (static: FOO, size: 8, align: 4) {
- ╾─alloc17─╼ 03 00 00 00 │ ╾──╼....
-}
-
-alloc17 (size: 48, align: 4) {
- 0x00 │ 00 00 00 00 __ __ __ __ ╾─alloc4──╼ 00 00 00 00 │ ....░░░░╾──╼....
- 0x10 │ 00 00 00 00 __ __ __ __ ╾─alloc8──╼ 02 00 00 00 │ ....░░░░╾──╼....
- 0x20 │ 01 00 00 00 2a 00 00 00 ╾─alloc13─╼ 03 00 00 00 │ ....*...╾──╼....
-}
-
-alloc4 (size: 0, align: 4) {}
-
-alloc8 (size: 16, align: 4) {
- ╾─alloc7──╼ 03 00 00 00 ╾─alloc9──╼ 03 00 00 00 │ ╾──╼....╾──╼....
-}
-
-alloc7 (size: 3, align: 1) {
- 66 6f 6f │ foo
-}
-
-alloc9 (size: 3, align: 1) {
- 62 61 72 │ bar
-}
-
-alloc13 (size: 24, align: 4) {
- 0x00 │ ╾─alloc12─╼ 03 00 00 00 ╾─alloc14─╼ 03 00 00 00 │ ╾──╼....╾──╼....
- 0x10 │ ╾─alloc15─╼ 04 00 00 00 │ ╾──╼....
-}
-
-alloc12 (size: 3, align: 1) {
- 6d 65 68 │ meh
-}
-
-alloc14 (size: 3, align: 1) {
- 6d 6f 70 │ mop
-}
-
-alloc15 (size: 4, align: 1) {
- 6d c3 b6 70 │ m..p
-}
--- /dev/null
+// MIR for `main` after ConstProp
+
+fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/const_allocation2.rs:4:11: 4:11
+ let _1: &[(std::option::Option<i32>, &[&u8])]; // in scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
+ let mut _2: &&[(std::option::Option<i32>, &[&u8])]; // in scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
+ StorageLive(_2); // scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
+ _2 = const {alloc0: &&[(Option<i32>, &[&u8])]}; // scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
+ // ty::Const
+ // + ty: &&[(std::option::Option<i32>, &[&u8])]
+ // + val: Value(Scalar(alloc0))
+ // mir::Constant
+ // + span: $DIR/const_allocation2.rs:5:5: 5:8
+ // + literal: Const { ty: &&[(std::option::Option<i32>, &[&u8])], val: Value(Scalar(alloc0)) }
+ _1 = (*_2); // scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
+ StorageDead(_2); // scope 0 at $DIR/const_allocation2.rs:5:8: 5:9
+ StorageDead(_1); // scope 0 at $DIR/const_allocation2.rs:5:8: 5:9
+ _0 = const (); // scope 0 at $DIR/const_allocation2.rs:4:11: 6:2
+ return; // scope 0 at $DIR/const_allocation2.rs:6:2: 6:2
+ }
+}
+
+alloc0 (static: FOO, size: 8, align: 4) {
+ ╾─alloc23─╼ 03 00 00 00 │ ╾──╼....
+}
+
+alloc23 (size: 48, align: 4) {
+ 0x00 │ 00 00 00 00 __ __ __ __ ╾─alloc8──╼ 00 00 00 00 │ ....░░░░╾──╼....
+ 0x10 │ 00 00 00 00 __ __ __ __ ╾─alloc13─╼ 02 00 00 00 │ ....░░░░╾──╼....
+ 0x20 │ 01 00 00 00 2a 00 00 00 ╾─alloc21─╼ 03 00 00 00 │ ....*...╾──╼....
+}
+
+alloc8 (size: 0, align: 4) {}
+
+alloc13 (size: 8, align: 4) {
+ ╾─alloc11─╼ ╾─alloc12─╼ │ ╾──╼╾──╼
+}
+
+alloc11 (size: 1, align: 1) {
+ 05 │ .
+}
+
+alloc12 (size: 1, align: 1) {
+ 06 │ .
+}
+
+alloc21 (size: 12, align: 4) {
+ ╾─a17+0x3─╼ ╾─alloc18─╼ ╾─a20+0x2─╼ │ ╾──╼╾──╼╾──╼
+}
+
+alloc17 (size: 4, align: 1) {
+ 2a 45 15 6f │ *E.o
+}
+
+alloc18 (size: 1, align: 1) {
+ 2a │ *
+}
+
+alloc20 (size: 4, align: 1) {
+ 2a 45 15 6f │ *E.o
+}
+++ /dev/null
-// MIR for `main` after ConstProp
-
-fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/const_allocation2.rs:4:11: 4:11
- let _1: &[(std::option::Option<i32>, &[&u8])]; // in scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
- let mut _2: &&[(std::option::Option<i32>, &[&u8])]; // in scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
- StorageLive(_2); // scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
- _2 = const {alloc0: &&[(Option<i32>, &[&u8])]}; // scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
- // ty::Const
- // + ty: &&[(std::option::Option<i32>, &[&u8])]
- // + val: Value(Scalar(alloc0))
- // mir::Constant
- // + span: $DIR/const_allocation2.rs:5:5: 5:8
- // + literal: Const { ty: &&[(std::option::Option<i32>, &[&u8])], val: Value(Scalar(alloc0)) }
- _1 = (*_2); // scope 0 at $DIR/const_allocation2.rs:5:5: 5:8
- StorageDead(_2); // scope 0 at $DIR/const_allocation2.rs:5:8: 5:9
- StorageDead(_1); // scope 0 at $DIR/const_allocation2.rs:5:8: 5:9
- _0 = const (); // scope 0 at $DIR/const_allocation2.rs:4:11: 6:2
- return; // scope 0 at $DIR/const_allocation2.rs:6:2: 6:2
- }
-}
-
-alloc0 (static: FOO, size: 8, align: 4) {
- ╾─alloc23─╼ 03 00 00 00 │ ╾──╼....
-}
-
-alloc23 (size: 48, align: 4) {
- 0x00 │ 00 00 00 00 __ __ __ __ ╾─alloc8──╼ 00 00 00 00 │ ....░░░░╾──╼....
- 0x10 │ 00 00 00 00 __ __ __ __ ╾─alloc13─╼ 02 00 00 00 │ ....░░░░╾──╼....
- 0x20 │ 01 00 00 00 2a 00 00 00 ╾─alloc21─╼ 03 00 00 00 │ ....*...╾──╼....
-}
-
-alloc8 (size: 0, align: 4) {}
-
-alloc13 (size: 8, align: 4) {
- ╾─alloc11─╼ ╾─alloc12─╼ │ ╾──╼╾──╼
-}
-
-alloc11 (size: 1, align: 1) {
- 05 │ .
-}
-
-alloc12 (size: 1, align: 1) {
- 06 │ .
-}
-
-alloc21 (size: 12, align: 4) {
- ╾─a17+0x3─╼ ╾─alloc18─╼ ╾─a20+0x2─╼ │ ╾──╼╾──╼╾──╼
-}
-
-alloc17 (size: 4, align: 1) {
- 2a 45 15 6f │ *E.o
-}
-
-alloc18 (size: 1, align: 1) {
- 2a │ *
-}
-
-alloc20 (size: 4, align: 1) {
- 2a 45 15 6f │ *E.o
-}
--- /dev/null
+// MIR for `main` after ConstProp
+
+fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/const_allocation3.rs:4:11: 4:11
+ let _1: &Packed; // in scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
+ let mut _2: &&Packed; // in scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
+ StorageLive(_2); // scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
+ _2 = const {alloc0: &&Packed}; // scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
+ // ty::Const
+ // + ty: &&Packed
+ // + val: Value(Scalar(alloc0))
+ // mir::Constant
+ // + span: $DIR/const_allocation3.rs:5:5: 5:8
+ // + literal: Const { ty: &&Packed, val: Value(Scalar(alloc0)) }
+ _1 = (*_2); // scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
+ StorageDead(_2); // scope 0 at $DIR/const_allocation3.rs:5:8: 5:9
+ StorageDead(_1); // scope 0 at $DIR/const_allocation3.rs:5:8: 5:9
+ _0 = const (); // scope 0 at $DIR/const_allocation3.rs:4:11: 6:2
+ return; // scope 0 at $DIR/const_allocation3.rs:6:2: 6:2
+ }
+}
+
+alloc0 (static: FOO, size: 4, align: 4) {
+ ╾─alloc9──╼ │ ╾──╼
+}
+
+alloc9 (size: 168, align: 1) {
+ 0x00 │ ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab │ ................
+ 0x10 │ ab ab ab ab ab ab ab ab ab ab ab ab ╾─alloc4──╼ │ ............╾──╼
+ 0x20 │ 01 ef cd ab 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x30 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x40 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x50 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x60 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x70 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x80 │ 00 00 00 00 00 00 00 00 00 00 ╾─alloc6──╼ 00 00 │ ..........╾──╼..
+ 0x90 │ ╾─a7+0x63─╼ 00 00 00 00 00 00 00 00 00 00 00 00 │ ╾──╼............
+ 0xa0 │ 00 00 00 00 00 00 00 00 │ ........
+}
+
+alloc4 (size: 4, align: 4) {
+ 2a 00 00 00 │ *...
+}
+
+alloc6 (fn: main)
+
+alloc7 (size: 100, align: 1) {
+ 0x00 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x10 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x20 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x30 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x40 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x50 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
+ 0x60 │ 00 00 00 00 │ ....
+}
+++ /dev/null
-// MIR for `main` after ConstProp
-
-fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/const_allocation3.rs:4:11: 4:11
- let _1: &Packed; // in scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
- let mut _2: &&Packed; // in scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
- StorageLive(_2); // scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
- _2 = const {alloc0: &&Packed}; // scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
- // ty::Const
- // + ty: &&Packed
- // + val: Value(Scalar(alloc0))
- // mir::Constant
- // + span: $DIR/const_allocation3.rs:5:5: 5:8
- // + literal: Const { ty: &&Packed, val: Value(Scalar(alloc0)) }
- _1 = (*_2); // scope 0 at $DIR/const_allocation3.rs:5:5: 5:8
- StorageDead(_2); // scope 0 at $DIR/const_allocation3.rs:5:8: 5:9
- StorageDead(_1); // scope 0 at $DIR/const_allocation3.rs:5:8: 5:9
- _0 = const (); // scope 0 at $DIR/const_allocation3.rs:4:11: 6:2
- return; // scope 0 at $DIR/const_allocation3.rs:6:2: 6:2
- }
-}
-
-alloc0 (static: FOO, size: 4, align: 4) {
- ╾─alloc9──╼ │ ╾──╼
-}
-
-alloc9 (size: 168, align: 1) {
- 0x00 │ ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab │ ................
- 0x10 │ ab ab ab ab ab ab ab ab ab ab ab ab ╾─alloc4──╼ │ ............╾──╼
- 0x20 │ 01 ef cd ab 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x30 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x40 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x50 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x60 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x70 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x80 │ 00 00 00 00 00 00 00 00 00 00 ╾─alloc6──╼ 00 00 │ ..........╾──╼..
- 0x90 │ ╾─a7+0x63─╼ 00 00 00 00 00 00 00 00 00 00 00 00 │ ╾──╼............
- 0xa0 │ 00 00 00 00 00 00 00 00 │ ........
-}
-
-alloc4 (size: 4, align: 4) {
- 2a 00 00 00 │ *...
-}
-
-alloc6 (fn: main)
-
-alloc7 (size: 100, align: 1) {
- 0x00 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x10 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x20 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x30 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x40 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x50 │ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 │ ................
- 0x60 │ 00 00 00 00 │ ....
-}
--- /dev/null
+- // MIR for `main` before ConstProp
++ // MIR for `main` after ConstProp
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/array_index.rs:4:11: 4:11
+ let _1: u32; // in scope 0 at $DIR/array_index.rs:5:9: 5:10
+ let mut _2: [u32; 4]; // in scope 0 at $DIR/array_index.rs:5:18: 5:30
+ let _3: usize; // in scope 0 at $DIR/array_index.rs:5:31: 5:32
+ let mut _4: usize; // in scope 0 at $DIR/array_index.rs:5:18: 5:33
+ let mut _5: bool; // in scope 0 at $DIR/array_index.rs:5:18: 5:33
+ scope 1 {
+ debug x => _1; // in scope 1 at $DIR/array_index.rs:5:9: 5:10
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/array_index.rs:5:9: 5:10
+ StorageLive(_2); // scope 0 at $DIR/array_index.rs:5:18: 5:30
+ _2 = [const 0_u32, const 1_u32, const 2_u32, const 3_u32]; // scope 0 at $DIR/array_index.rs:5:18: 5:30
+ StorageLive(_3); // scope 0 at $DIR/array_index.rs:5:31: 5:32
+ _3 = const 2_usize; // scope 0 at $DIR/array_index.rs:5:31: 5:32
+ _4 = const 4_usize; // scope 0 at $DIR/array_index.rs:5:18: 5:33
+- _5 = Lt(_3, _4); // scope 0 at $DIR/array_index.rs:5:18: 5:33
+- 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
++ _5 = const true; // scope 0 at $DIR/array_index.rs:5:18: 5:33
++ 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
+ }
+
+ bb1: {
+- _1 = _2[_3]; // scope 0 at $DIR/array_index.rs:5:18: 5:33
++ _1 = const 2_u32; // scope 0 at $DIR/array_index.rs:5:18: 5:33
+ StorageDead(_3); // scope 0 at $DIR/array_index.rs:5:33: 5:34
+ StorageDead(_2); // scope 0 at $DIR/array_index.rs:5:33: 5:34
+ _0 = const (); // scope 0 at $DIR/array_index.rs:4:11: 6:2
+ StorageDead(_1); // scope 0 at $DIR/array_index.rs:6:1: 6:2
+ return; // scope 0 at $DIR/array_index.rs:6:2: 6:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before ConstProp
-+ // MIR for `main` after ConstProp
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/array_index.rs:4:11: 4:11
- let _1: u32; // in scope 0 at $DIR/array_index.rs:5:9: 5:10
- let mut _2: [u32; 4]; // in scope 0 at $DIR/array_index.rs:5:18: 5:30
- let _3: usize; // in scope 0 at $DIR/array_index.rs:5:31: 5:32
- let mut _4: usize; // in scope 0 at $DIR/array_index.rs:5:18: 5:33
- let mut _5: bool; // in scope 0 at $DIR/array_index.rs:5:18: 5:33
- scope 1 {
- debug x => _1; // in scope 1 at $DIR/array_index.rs:5:9: 5:10
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/array_index.rs:5:9: 5:10
- StorageLive(_2); // scope 0 at $DIR/array_index.rs:5:18: 5:30
- _2 = [const 0_u32, const 1_u32, const 2_u32, const 3_u32]; // scope 0 at $DIR/array_index.rs:5:18: 5:30
- StorageLive(_3); // scope 0 at $DIR/array_index.rs:5:31: 5:32
- _3 = const 2_usize; // scope 0 at $DIR/array_index.rs:5:31: 5:32
- _4 = const 4_usize; // scope 0 at $DIR/array_index.rs:5:18: 5:33
-- _5 = Lt(_3, _4); // scope 0 at $DIR/array_index.rs:5:18: 5:33
-- 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
-+ _5 = const true; // scope 0 at $DIR/array_index.rs:5:18: 5:33
-+ 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
- }
-
- bb1: {
-- _1 = _2[_3]; // scope 0 at $DIR/array_index.rs:5:18: 5:33
-+ _1 = const 2_u32; // scope 0 at $DIR/array_index.rs:5:18: 5:33
- StorageDead(_3); // scope 0 at $DIR/array_index.rs:5:33: 5:34
- StorageDead(_2); // scope 0 at $DIR/array_index.rs:5:33: 5:34
- _0 = const (); // scope 0 at $DIR/array_index.rs:4:11: 6:2
- StorageDead(_1); // scope 0 at $DIR/array_index.rs:6:1: 6:2
- return; // scope 0 at $DIR/array_index.rs:6:2: 6:2
- }
- }
-
--- /dev/null
+- // MIR for `main` before ConstProp
++ // MIR for `main` after ConstProp
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:4:11: 4:11
+ let _1: *const [i32]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:9: 5:10
+ let mut _2: *const [i32; 3]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ let _3: &[i32; 3]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ let _4: [i32; 3]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:26: 5:35
+ let _6: usize; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:23: 7:24
+ let mut _7: usize; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
+ let mut _8: bool; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
+ let mut _9: &[i32; 3]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ scope 1 {
+ debug a => _1; // in scope 1 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:9: 5:10
+ scope 2 {
+ let _5: i32; // in scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:13: 7:15
+ scope 3 {
+ debug _b => _5; // in scope 3 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:13: 7:15
+ }
+ }
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:9: 5:10
+ StorageLive(_2); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ StorageLive(_3); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ _9 = const main::promoted[0]; // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ // ty::Const
+ // + ty: &[i32; 3]
+ // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ bad_op_unsafe_oob_for_slices[317d]::main[0]), const_param_did: None }, [], Some(promoted[0]))
+ // mir::Constant
+ // + span: $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ // + literal: Const { ty: &[i32; 3], val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ bad_op_unsafe_oob_for_slices[317d]::main[0]), const_param_did: None }, [], Some(promoted[0])) }
+ _3 = _9; // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ _2 = &raw const (*_3); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ _1 = move _2 as *const [i32] (Pointer(Unsize)); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
+ StorageDead(_2); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:34: 5:35
+ StorageDead(_3); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:35: 5:36
+ StorageLive(_5); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:13: 7:15
+ StorageLive(_6); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:23: 7:24
+ _6 = const 3_usize; // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:23: 7:24
+ _7 = Len((*_1)); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
+- _8 = Lt(_6, _7); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
+- assert(move _8, "index out of bounds: the len is {} but the index is {}", move _7, _6) -> bb1; // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
++ _8 = Lt(const 3_usize, _7); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
++ assert(move _8, "index out of bounds: the len is {} but the index is {}", move _7, const 3_usize) -> bb1; // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
+ }
+
+ bb1: {
+ _5 = (*_1)[_6]; // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
+ StorageDead(_6); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:25: 7:26
+ _0 = const (); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:6:5: 8:6
+ StorageDead(_5); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:8:5: 8:6
+ StorageDead(_1); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:9:1: 9:2
+ return; // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:9:2: 9:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before ConstProp
-+ // MIR for `main` after ConstProp
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:4:11: 4:11
- let _1: *const [i32]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:9: 5:10
- let mut _2: *const [i32; 3]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- let _3: &[i32; 3]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- let _4: [i32; 3]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:26: 5:35
- let _6: usize; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:23: 7:24
- let mut _7: usize; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
- let mut _8: bool; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
- let mut _9: &[i32; 3]; // in scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- scope 1 {
- debug a => _1; // in scope 1 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:9: 5:10
- scope 2 {
- let _5: i32; // in scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:13: 7:15
- scope 3 {
- debug _b => _5; // in scope 3 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:13: 7:15
- }
- }
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:9: 5:10
- StorageLive(_2); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- StorageLive(_3); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- _9 = const main::promoted[0]; // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- // ty::Const
- // + ty: &[i32; 3]
- // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ bad_op_unsafe_oob_for_slices[317d]::main[0]), const_param_did: None }, [], Some(promoted[0]))
- // mir::Constant
- // + span: $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- // + literal: Const { ty: &[i32; 3], val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ bad_op_unsafe_oob_for_slices[317d]::main[0]), const_param_did: None }, [], Some(promoted[0])) }
- _3 = _9; // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- _2 = &raw const (*_3); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- _1 = move _2 as *const [i32] (Pointer(Unsize)); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:25: 5:35
- StorageDead(_2); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:34: 5:35
- StorageDead(_3); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:5:35: 5:36
- StorageLive(_5); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:13: 7:15
- StorageLive(_6); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:23: 7:24
- _6 = const 3_usize; // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:23: 7:24
- _7 = Len((*_1)); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
-- _8 = Lt(_6, _7); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
-- assert(move _8, "index out of bounds: the len is {} but the index is {}", move _7, _6) -> bb1; // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
-+ _8 = Lt(const 3_usize, _7); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
-+ assert(move _8, "index out of bounds: the len is {} but the index is {}", move _7, const 3_usize) -> bb1; // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
- }
-
- bb1: {
- _5 = (*_1)[_6]; // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:18: 7:25
- StorageDead(_6); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:7:25: 7:26
- _0 = const (); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:6:5: 8:6
- StorageDead(_5); // scope 2 at $DIR/bad_op_unsafe_oob_for_slices.rs:8:5: 8:6
- StorageDead(_1); // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:9:1: 9:2
- return; // scope 0 at $DIR/bad_op_unsafe_oob_for_slices.rs:9:2: 9:2
- }
- }
-
--- /dev/null
+- // MIR for `main` before ConstProp
++ // MIR for `main` after ConstProp
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/discriminant.rs:10:11: 10:11
+ let _1: i32; // in scope 0 at $DIR/discriminant.rs:11:9: 11:10
+ let mut _2: i32; // in scope 0 at $DIR/discriminant.rs:11:13: 11:64
+ let mut _3: std::option::Option<bool>; // in scope 0 at $DIR/discriminant.rs:11:34: 11:44
+ let mut _4: isize; // in scope 0 at $DIR/discriminant.rs:11:21: 11:31
+ scope 1 {
+ debug x => _1; // in scope 1 at $DIR/discriminant.rs:11:9: 11:10
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/discriminant.rs:11:9: 11:10
+ StorageLive(_2); // scope 0 at $DIR/discriminant.rs:11:13: 11:64
+ StorageLive(_3); // scope 0 at $DIR/discriminant.rs:11:34: 11:44
+ ((_3 as Some).0: bool) = const true; // scope 0 at $DIR/discriminant.rs:11:34: 11:44
+ discriminant(_3) = 1; // scope 0 at $DIR/discriminant.rs:11:34: 11:44
+- _4 = discriminant(_3); // scope 0 at $DIR/discriminant.rs:11:21: 11:31
+- switchInt(move _4) -> [1_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/discriminant.rs:11:21: 11:31
++ _4 = const 1_isize; // scope 0 at $DIR/discriminant.rs:11:21: 11:31
++ switchInt(const 1_isize) -> [1_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/discriminant.rs:11:21: 11:31
+ }
+
+ bb1: {
+ _2 = const 10_i32; // scope 0 at $DIR/discriminant.rs:11:59: 11:61
+ goto -> bb4; // scope 0 at $DIR/discriminant.rs:11:13: 11:64
+ }
+
+ bb2: {
+ switchInt(((_3 as Some).0: bool)) -> [false: bb1, otherwise: bb3]; // scope 0 at $DIR/discriminant.rs:11:26: 11:30
+ }
+
+ bb3: {
+ _2 = const 42_i32; // scope 0 at $DIR/discriminant.rs:11:47: 11:49
+ goto -> bb4; // scope 0 at $DIR/discriminant.rs:11:13: 11:64
+ }
+
+ bb4: {
+ _1 = Add(move _2, const 0_i32); // scope 0 at $DIR/discriminant.rs:11:13: 11:68
+ StorageDead(_2); // scope 0 at $DIR/discriminant.rs:11:67: 11:68
+ StorageDead(_3); // scope 0 at $DIR/discriminant.rs:11:68: 11:69
+ _0 = const (); // scope 0 at $DIR/discriminant.rs:10:11: 12:2
+ StorageDead(_1); // scope 0 at $DIR/discriminant.rs:12:1: 12:2
+ return; // scope 0 at $DIR/discriminant.rs:12:2: 12:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before ConstProp
-+ // MIR for `main` after ConstProp
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/discriminant.rs:10:11: 10:11
- let _1: i32; // in scope 0 at $DIR/discriminant.rs:11:9: 11:10
- let mut _2: i32; // in scope 0 at $DIR/discriminant.rs:11:13: 11:64
- let mut _3: std::option::Option<bool>; // in scope 0 at $DIR/discriminant.rs:11:34: 11:44
- let mut _4: isize; // in scope 0 at $DIR/discriminant.rs:11:21: 11:31
- scope 1 {
- debug x => _1; // in scope 1 at $DIR/discriminant.rs:11:9: 11:10
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/discriminant.rs:11:9: 11:10
- StorageLive(_2); // scope 0 at $DIR/discriminant.rs:11:13: 11:64
- StorageLive(_3); // scope 0 at $DIR/discriminant.rs:11:34: 11:44
- ((_3 as Some).0: bool) = const true; // scope 0 at $DIR/discriminant.rs:11:34: 11:44
- discriminant(_3) = 1; // scope 0 at $DIR/discriminant.rs:11:34: 11:44
-- _4 = discriminant(_3); // scope 0 at $DIR/discriminant.rs:11:21: 11:31
-- switchInt(move _4) -> [1_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/discriminant.rs:11:21: 11:31
-+ _4 = const 1_isize; // scope 0 at $DIR/discriminant.rs:11:21: 11:31
-+ switchInt(const 1_isize) -> [1_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/discriminant.rs:11:21: 11:31
- }
-
- bb1: {
- _2 = const 10_i32; // scope 0 at $DIR/discriminant.rs:11:59: 11:61
- goto -> bb4; // scope 0 at $DIR/discriminant.rs:11:13: 11:64
- }
-
- bb2: {
- switchInt(((_3 as Some).0: bool)) -> [false: bb1, otherwise: bb3]; // scope 0 at $DIR/discriminant.rs:11:26: 11:30
- }
-
- bb3: {
- _2 = const 42_i32; // scope 0 at $DIR/discriminant.rs:11:47: 11:49
- goto -> bb4; // scope 0 at $DIR/discriminant.rs:11:13: 11:64
- }
-
- bb4: {
- _1 = Add(move _2, const 0_i32); // scope 0 at $DIR/discriminant.rs:11:13: 11:68
- StorageDead(_2); // scope 0 at $DIR/discriminant.rs:11:67: 11:68
- StorageDead(_3); // scope 0 at $DIR/discriminant.rs:11:68: 11:69
- _0 = const (); // scope 0 at $DIR/discriminant.rs:10:11: 12:2
- StorageDead(_1); // scope 0 at $DIR/discriminant.rs:12:1: 12:2
- return; // scope 0 at $DIR/discriminant.rs:12:2: 12:2
- }
- }
-
--- /dev/null
+- // MIR for `main` before ConstProp
++ // MIR for `main` after ConstProp
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/large_array_index.rs:4:11: 4:11
+ let _1: u8; // in scope 0 at $DIR/large_array_index.rs:6:9: 6:10
+ let mut _2: [u8; 5000]; // in scope 0 at $DIR/large_array_index.rs:6:17: 6:29
+ let _3: usize; // in scope 0 at $DIR/large_array_index.rs:6:30: 6:31
+ let mut _4: usize; // in scope 0 at $DIR/large_array_index.rs:6:17: 6:32
+ let mut _5: bool; // in scope 0 at $DIR/large_array_index.rs:6:17: 6:32
+ scope 1 {
+ debug x => _1; // in scope 1 at $DIR/large_array_index.rs:6:9: 6:10
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/large_array_index.rs:6:9: 6:10
+ StorageLive(_2); // scope 0 at $DIR/large_array_index.rs:6:17: 6:29
+ _2 = [const 0_u8; 5000]; // scope 0 at $DIR/large_array_index.rs:6:17: 6:29
+ StorageLive(_3); // scope 0 at $DIR/large_array_index.rs:6:30: 6:31
+ _3 = const 2_usize; // scope 0 at $DIR/large_array_index.rs:6:30: 6:31
+ _4 = const 5000_usize; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
+- _5 = Lt(_3, _4); // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
+- assert(move _5, "index out of bounds: the len is {} but the index is {}", move _4, _3) -> bb1; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
++ _5 = const true; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
++ assert(const true, "index out of bounds: the len is {} but the index is {}", const 5000_usize, const 2_usize) -> bb1; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
+ }
+
+ bb1: {
+ _1 = _2[_3]; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
+ StorageDead(_3); // scope 0 at $DIR/large_array_index.rs:6:32: 6:33
+ StorageDead(_2); // scope 0 at $DIR/large_array_index.rs:6:32: 6:33
+ _0 = const (); // scope 0 at $DIR/large_array_index.rs:4:11: 7:2
+ StorageDead(_1); // scope 0 at $DIR/large_array_index.rs:7:1: 7:2
+ return; // scope 0 at $DIR/large_array_index.rs:7:2: 7:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before ConstProp
-+ // MIR for `main` after ConstProp
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/large_array_index.rs:4:11: 4:11
- let _1: u8; // in scope 0 at $DIR/large_array_index.rs:6:9: 6:10
- let mut _2: [u8; 5000]; // in scope 0 at $DIR/large_array_index.rs:6:17: 6:29
- let _3: usize; // in scope 0 at $DIR/large_array_index.rs:6:30: 6:31
- let mut _4: usize; // in scope 0 at $DIR/large_array_index.rs:6:17: 6:32
- let mut _5: bool; // in scope 0 at $DIR/large_array_index.rs:6:17: 6:32
- scope 1 {
- debug x => _1; // in scope 1 at $DIR/large_array_index.rs:6:9: 6:10
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/large_array_index.rs:6:9: 6:10
- StorageLive(_2); // scope 0 at $DIR/large_array_index.rs:6:17: 6:29
- _2 = [const 0_u8; 5000]; // scope 0 at $DIR/large_array_index.rs:6:17: 6:29
- StorageLive(_3); // scope 0 at $DIR/large_array_index.rs:6:30: 6:31
- _3 = const 2_usize; // scope 0 at $DIR/large_array_index.rs:6:30: 6:31
- _4 = const 5000_usize; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
-- _5 = Lt(_3, _4); // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
-- assert(move _5, "index out of bounds: the len is {} but the index is {}", move _4, _3) -> bb1; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
-+ _5 = const true; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
-+ assert(const true, "index out of bounds: the len is {} but the index is {}", const 5000_usize, const 2_usize) -> bb1; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
- }
-
- bb1: {
- _1 = _2[_3]; // scope 0 at $DIR/large_array_index.rs:6:17: 6:32
- StorageDead(_3); // scope 0 at $DIR/large_array_index.rs:6:32: 6:33
- StorageDead(_2); // scope 0 at $DIR/large_array_index.rs:6:32: 6:33
- _0 = const (); // scope 0 at $DIR/large_array_index.rs:4:11: 7:2
- StorageDead(_1); // scope 0 at $DIR/large_array_index.rs:7:1: 7:2
- return; // scope 0 at $DIR/large_array_index.rs:7:2: 7:2
- }
- }
-
--- /dev/null
+- // MIR for `main` before ConstProp
++ // MIR for `main` after ConstProp
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/optimizes_into_variable.rs:11:11: 11:11
+ let _1: i32; // in scope 0 at $DIR/optimizes_into_variable.rs:12:9: 12:10
+ let mut _2: (i32, bool); // in scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
+ let mut _4: [i32; 6]; // in scope 0 at $DIR/optimizes_into_variable.rs:13:13: 13:31
+ let _5: usize; // in scope 0 at $DIR/optimizes_into_variable.rs:13:32: 13:33
+ let mut _6: usize; // in scope 0 at $DIR/optimizes_into_variable.rs:13:13: 13:34
+ let mut _7: bool; // in scope 0 at $DIR/optimizes_into_variable.rs:13:13: 13:34
+ let mut _9: Point; // in scope 0 at $DIR/optimizes_into_variable.rs:14:13: 14:36
+ scope 1 {
+ debug x => _1; // in scope 1 at $DIR/optimizes_into_variable.rs:12:9: 12:10
+ let _3: i32; // in scope 1 at $DIR/optimizes_into_variable.rs:13:9: 13:10
+ scope 2 {
+ debug y => _3; // in scope 2 at $DIR/optimizes_into_variable.rs:13:9: 13:10
+ let _8: u32; // in scope 2 at $DIR/optimizes_into_variable.rs:14:9: 14:10
+ scope 3 {
+ debug z => _8; // in scope 3 at $DIR/optimizes_into_variable.rs:14:9: 14:10
+ }
+ }
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/optimizes_into_variable.rs:12:9: 12:10
+- _2 = CheckedAdd(const 2_i32, const 2_i32); // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
+- assert(!move (_2.1: bool), "attempt to compute `{} + {}` which would overflow", const 2_i32, const 2_i32) -> bb1; // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
++ _2 = const (4_i32, false); // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
++ // ty::Const
++ // + ty: (i32, bool)
++ // + val: Value(ByRef { alloc: Allocation { bytes: [4, 0, 0, 0, 0, 0, 0, 0], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [31], len: Size { raw: 8 } }, size: Size { raw: 8 }, align: Align { pow2: 2 }, mutability: Not, extra: () }, offset: Size { raw: 0 } })
++ // mir::Constant
++ // + span: $DIR/optimizes_into_variable.rs:12:13: 12:18
++ // + literal: Const { ty: (i32, bool), val: Value(ByRef { alloc: Allocation { bytes: [4, 0, 0, 0, 0, 0, 0, 0], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [31], len: Size { raw: 8 } }, size: Size { raw: 8 }, align: Align { pow2: 2 }, mutability: Not, extra: () }, offset: Size { raw: 0 } }) }
++ assert(!const false, "attempt to compute `{} + {}` which would overflow", const 2_i32, const 2_i32) -> bb1; // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
+ }
+
+ bb1: {
+- _1 = move (_2.0: i32); // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
++ _1 = const 4_i32; // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
+ StorageLive(_3); // scope 1 at $DIR/optimizes_into_variable.rs:13:9: 13:10
+ StorageLive(_4); // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:31
+ _4 = [const 0_i32, const 1_i32, const 2_i32, const 3_i32, const 4_i32, const 5_i32]; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:31
+ StorageLive(_5); // scope 1 at $DIR/optimizes_into_variable.rs:13:32: 13:33
+ _5 = const 3_usize; // scope 1 at $DIR/optimizes_into_variable.rs:13:32: 13:33
+ _6 = const 6_usize; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
+- _7 = Lt(_5, _6); // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
+- assert(move _7, "index out of bounds: the len is {} but the index is {}", move _6, _5) -> bb2; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
++ _7 = const true; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
++ assert(const true, "index out of bounds: the len is {} but the index is {}", const 6_usize, const 3_usize) -> bb2; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
+ }
+
+ bb2: {
+- _3 = _4[_5]; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
++ _3 = const 3_i32; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
+ StorageDead(_5); // scope 1 at $DIR/optimizes_into_variable.rs:13:34: 13:35
+ StorageDead(_4); // scope 1 at $DIR/optimizes_into_variable.rs:13:34: 13:35
+ StorageLive(_8); // scope 2 at $DIR/optimizes_into_variable.rs:14:9: 14:10
+ StorageLive(_9); // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:36
+ (_9.0: u32) = const 12_u32; // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:36
+ (_9.1: u32) = const 42_u32; // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:36
+- _8 = (_9.1: u32); // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:38
++ _8 = const 42_u32; // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:38
+ StorageDead(_9); // scope 2 at $DIR/optimizes_into_variable.rs:14:38: 14:39
+ _0 = const (); // scope 0 at $DIR/optimizes_into_variable.rs:11:11: 15:2
+ StorageDead(_8); // scope 2 at $DIR/optimizes_into_variable.rs:15:1: 15:2
+ StorageDead(_3); // scope 1 at $DIR/optimizes_into_variable.rs:15:1: 15:2
+ StorageDead(_1); // scope 0 at $DIR/optimizes_into_variable.rs:15:1: 15:2
+ return; // scope 0 at $DIR/optimizes_into_variable.rs:15:2: 15:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before ConstProp
-+ // MIR for `main` after ConstProp
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/optimizes_into_variable.rs:11:11: 11:11
- let _1: i32; // in scope 0 at $DIR/optimizes_into_variable.rs:12:9: 12:10
- let mut _2: (i32, bool); // in scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
- let mut _4: [i32; 6]; // in scope 0 at $DIR/optimizes_into_variable.rs:13:13: 13:31
- let _5: usize; // in scope 0 at $DIR/optimizes_into_variable.rs:13:32: 13:33
- let mut _6: usize; // in scope 0 at $DIR/optimizes_into_variable.rs:13:13: 13:34
- let mut _7: bool; // in scope 0 at $DIR/optimizes_into_variable.rs:13:13: 13:34
- let mut _9: Point; // in scope 0 at $DIR/optimizes_into_variable.rs:14:13: 14:36
- scope 1 {
- debug x => _1; // in scope 1 at $DIR/optimizes_into_variable.rs:12:9: 12:10
- let _3: i32; // in scope 1 at $DIR/optimizes_into_variable.rs:13:9: 13:10
- scope 2 {
- debug y => _3; // in scope 2 at $DIR/optimizes_into_variable.rs:13:9: 13:10
- let _8: u32; // in scope 2 at $DIR/optimizes_into_variable.rs:14:9: 14:10
- scope 3 {
- debug z => _8; // in scope 3 at $DIR/optimizes_into_variable.rs:14:9: 14:10
- }
- }
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/optimizes_into_variable.rs:12:9: 12:10
-- _2 = CheckedAdd(const 2_i32, const 2_i32); // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
-- assert(!move (_2.1: bool), "attempt to compute `{} + {}` which would overflow", const 2_i32, const 2_i32) -> bb1; // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
-+ _2 = const (4_i32, false); // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
-+ // ty::Const
-+ // + ty: (i32, bool)
-+ // + val: Value(ByRef { alloc: Allocation { bytes: [4, 0, 0, 0, 0, 0, 0, 0], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [31], len: Size { raw: 8 } }, size: Size { raw: 8 }, align: Align { pow2: 2 }, mutability: Not, extra: () }, offset: Size { raw: 0 } })
-+ // mir::Constant
-+ // + span: $DIR/optimizes_into_variable.rs:12:13: 12:18
-+ // + literal: Const { ty: (i32, bool), val: Value(ByRef { alloc: Allocation { bytes: [4, 0, 0, 0, 0, 0, 0, 0], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [31], len: Size { raw: 8 } }, size: Size { raw: 8 }, align: Align { pow2: 2 }, mutability: Not, extra: () }, offset: Size { raw: 0 } }) }
-+ assert(!const false, "attempt to compute `{} + {}` which would overflow", const 2_i32, const 2_i32) -> bb1; // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
- }
-
- bb1: {
-- _1 = move (_2.0: i32); // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
-+ _1 = const 4_i32; // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
- StorageLive(_3); // scope 1 at $DIR/optimizes_into_variable.rs:13:9: 13:10
- StorageLive(_4); // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:31
- _4 = [const 0_i32, const 1_i32, const 2_i32, const 3_i32, const 4_i32, const 5_i32]; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:31
- StorageLive(_5); // scope 1 at $DIR/optimizes_into_variable.rs:13:32: 13:33
- _5 = const 3_usize; // scope 1 at $DIR/optimizes_into_variable.rs:13:32: 13:33
- _6 = const 6_usize; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
-- _7 = Lt(_5, _6); // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
-- assert(move _7, "index out of bounds: the len is {} but the index is {}", move _6, _5) -> bb2; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
-+ _7 = const true; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
-+ assert(const true, "index out of bounds: the len is {} but the index is {}", const 6_usize, const 3_usize) -> bb2; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
- }
-
- bb2: {
-- _3 = _4[_5]; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
-+ _3 = const 3_i32; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
- StorageDead(_5); // scope 1 at $DIR/optimizes_into_variable.rs:13:34: 13:35
- StorageDead(_4); // scope 1 at $DIR/optimizes_into_variable.rs:13:34: 13:35
- StorageLive(_8); // scope 2 at $DIR/optimizes_into_variable.rs:14:9: 14:10
- StorageLive(_9); // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:36
- (_9.0: u32) = const 12_u32; // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:36
- (_9.1: u32) = const 42_u32; // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:36
-- _8 = (_9.1: u32); // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:38
-+ _8 = const 42_u32; // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:38
- StorageDead(_9); // scope 2 at $DIR/optimizes_into_variable.rs:14:38: 14:39
- _0 = const (); // scope 0 at $DIR/optimizes_into_variable.rs:11:11: 15:2
- StorageDead(_8); // scope 2 at $DIR/optimizes_into_variable.rs:15:1: 15:2
- StorageDead(_3); // scope 1 at $DIR/optimizes_into_variable.rs:15:1: 15:2
- StorageDead(_1); // scope 0 at $DIR/optimizes_into_variable.rs:15:1: 15:2
- return; // scope 0 at $DIR/optimizes_into_variable.rs:15:2: 15:2
- }
- }
-
--- /dev/null
+// MIR for `main` after SimplifyLocals
+
+fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/optimizes_into_variable.rs:11:11: 11:11
+ let _1: i32; // in scope 0 at $DIR/optimizes_into_variable.rs:12:9: 12:10
+ scope 1 {
+ debug x => _1; // in scope 1 at $DIR/optimizes_into_variable.rs:12:9: 12:10
+ let _2: i32; // in scope 1 at $DIR/optimizes_into_variable.rs:13:9: 13:10
+ scope 2 {
+ debug y => _2; // in scope 2 at $DIR/optimizes_into_variable.rs:13:9: 13:10
+ let _3: u32; // in scope 2 at $DIR/optimizes_into_variable.rs:14:9: 14:10
+ scope 3 {
+ debug z => _3; // in scope 3 at $DIR/optimizes_into_variable.rs:14:9: 14:10
+ }
+ }
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/optimizes_into_variable.rs:12:9: 12:10
+ _1 = const 4_i32; // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
+ StorageLive(_2); // scope 1 at $DIR/optimizes_into_variable.rs:13:9: 13:10
+ _2 = const 3_i32; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
+ StorageLive(_3); // scope 2 at $DIR/optimizes_into_variable.rs:14:9: 14:10
+ _3 = const 42_u32; // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:38
+ _0 = const (); // scope 0 at $DIR/optimizes_into_variable.rs:11:11: 15:2
+ StorageDead(_3); // scope 2 at $DIR/optimizes_into_variable.rs:15:1: 15:2
+ StorageDead(_2); // scope 1 at $DIR/optimizes_into_variable.rs:15:1: 15:2
+ StorageDead(_1); // scope 0 at $DIR/optimizes_into_variable.rs:15:1: 15:2
+ return; // scope 0 at $DIR/optimizes_into_variable.rs:15:2: 15:2
+ }
+}
+++ /dev/null
-// MIR for `main` after SimplifyLocals
-
-fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/optimizes_into_variable.rs:11:11: 11:11
- let _1: i32; // in scope 0 at $DIR/optimizes_into_variable.rs:12:9: 12:10
- scope 1 {
- debug x => _1; // in scope 1 at $DIR/optimizes_into_variable.rs:12:9: 12:10
- let _2: i32; // in scope 1 at $DIR/optimizes_into_variable.rs:13:9: 13:10
- scope 2 {
- debug y => _2; // in scope 2 at $DIR/optimizes_into_variable.rs:13:9: 13:10
- let _3: u32; // in scope 2 at $DIR/optimizes_into_variable.rs:14:9: 14:10
- scope 3 {
- debug z => _3; // in scope 3 at $DIR/optimizes_into_variable.rs:14:9: 14:10
- }
- }
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/optimizes_into_variable.rs:12:9: 12:10
- _1 = const 4_i32; // scope 0 at $DIR/optimizes_into_variable.rs:12:13: 12:18
- StorageLive(_2); // scope 1 at $DIR/optimizes_into_variable.rs:13:9: 13:10
- _2 = const 3_i32; // scope 1 at $DIR/optimizes_into_variable.rs:13:13: 13:34
- StorageLive(_3); // scope 2 at $DIR/optimizes_into_variable.rs:14:9: 14:10
- _3 = const 42_u32; // scope 2 at $DIR/optimizes_into_variable.rs:14:13: 14:38
- _0 = const (); // scope 0 at $DIR/optimizes_into_variable.rs:11:11: 15:2
- StorageDead(_3); // scope 2 at $DIR/optimizes_into_variable.rs:15:1: 15:2
- StorageDead(_2); // scope 1 at $DIR/optimizes_into_variable.rs:15:1: 15:2
- StorageDead(_1); // scope 0 at $DIR/optimizes_into_variable.rs:15:1: 15:2
- return; // scope 0 at $DIR/optimizes_into_variable.rs:15:2: 15:2
- }
-}
--- /dev/null
+- // MIR for `main` before ConstProp
++ // MIR for `main` after ConstProp
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/repeat.rs:5:11: 5:11
+ let _1: u32; // in scope 0 at $DIR/repeat.rs:6:9: 6:10
+ let mut _2: u32; // in scope 0 at $DIR/repeat.rs:6:18: 6:28
+ let mut _3: [u32; 8]; // in scope 0 at $DIR/repeat.rs:6:18: 6:25
+ let _4: usize; // in scope 0 at $DIR/repeat.rs:6:26: 6:27
+ let mut _5: usize; // in scope 0 at $DIR/repeat.rs:6:18: 6:28
+ let mut _6: bool; // in scope 0 at $DIR/repeat.rs:6:18: 6:28
+ scope 1 {
+ debug x => _1; // in scope 1 at $DIR/repeat.rs:6:9: 6:10
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/repeat.rs:6:9: 6:10
+ StorageLive(_2); // scope 0 at $DIR/repeat.rs:6:18: 6:28
+ StorageLive(_3); // scope 0 at $DIR/repeat.rs:6:18: 6:25
+ _3 = [const 42_u32; 8]; // scope 0 at $DIR/repeat.rs:6:18: 6:25
+ StorageLive(_4); // scope 0 at $DIR/repeat.rs:6:26: 6:27
+ _4 = const 2_usize; // scope 0 at $DIR/repeat.rs:6:26: 6:27
+ _5 = const 8_usize; // scope 0 at $DIR/repeat.rs:6:18: 6:28
+- _6 = Lt(_4, _5); // scope 0 at $DIR/repeat.rs:6:18: 6:28
+- assert(move _6, "index out of bounds: the len is {} but the index is {}", move _5, _4) -> bb1; // scope 0 at $DIR/repeat.rs:6:18: 6:28
++ _6 = const true; // scope 0 at $DIR/repeat.rs:6:18: 6:28
++ assert(const true, "index out of bounds: the len is {} but the index is {}", const 8_usize, const 2_usize) -> bb1; // scope 0 at $DIR/repeat.rs:6:18: 6:28
+ }
+
+ bb1: {
+- _2 = _3[_4]; // scope 0 at $DIR/repeat.rs:6:18: 6:28
+- _1 = Add(move _2, const 0_u32); // scope 0 at $DIR/repeat.rs:6:18: 6:32
++ _2 = const 42_u32; // scope 0 at $DIR/repeat.rs:6:18: 6:28
++ _1 = const 42_u32; // scope 0 at $DIR/repeat.rs:6:18: 6:32
+ StorageDead(_2); // scope 0 at $DIR/repeat.rs:6:31: 6:32
+ StorageDead(_4); // scope 0 at $DIR/repeat.rs:6:32: 6:33
+ StorageDead(_3); // scope 0 at $DIR/repeat.rs:6:32: 6:33
+ _0 = const (); // scope 0 at $DIR/repeat.rs:5:11: 7:2
+ StorageDead(_1); // scope 0 at $DIR/repeat.rs:7:1: 7:2
+ return; // scope 0 at $DIR/repeat.rs:7:2: 7:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before ConstProp
-+ // MIR for `main` after ConstProp
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/repeat.rs:5:11: 5:11
- let _1: u32; // in scope 0 at $DIR/repeat.rs:6:9: 6:10
- let mut _2: u32; // in scope 0 at $DIR/repeat.rs:6:18: 6:28
- let mut _3: [u32; 8]; // in scope 0 at $DIR/repeat.rs:6:18: 6:25
- let _4: usize; // in scope 0 at $DIR/repeat.rs:6:26: 6:27
- let mut _5: usize; // in scope 0 at $DIR/repeat.rs:6:18: 6:28
- let mut _6: bool; // in scope 0 at $DIR/repeat.rs:6:18: 6:28
- scope 1 {
- debug x => _1; // in scope 1 at $DIR/repeat.rs:6:9: 6:10
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/repeat.rs:6:9: 6:10
- StorageLive(_2); // scope 0 at $DIR/repeat.rs:6:18: 6:28
- StorageLive(_3); // scope 0 at $DIR/repeat.rs:6:18: 6:25
- _3 = [const 42_u32; 8]; // scope 0 at $DIR/repeat.rs:6:18: 6:25
- StorageLive(_4); // scope 0 at $DIR/repeat.rs:6:26: 6:27
- _4 = const 2_usize; // scope 0 at $DIR/repeat.rs:6:26: 6:27
- _5 = const 8_usize; // scope 0 at $DIR/repeat.rs:6:18: 6:28
-- _6 = Lt(_4, _5); // scope 0 at $DIR/repeat.rs:6:18: 6:28
-- assert(move _6, "index out of bounds: the len is {} but the index is {}", move _5, _4) -> bb1; // scope 0 at $DIR/repeat.rs:6:18: 6:28
-+ _6 = const true; // scope 0 at $DIR/repeat.rs:6:18: 6:28
-+ assert(const true, "index out of bounds: the len is {} but the index is {}", const 8_usize, const 2_usize) -> bb1; // scope 0 at $DIR/repeat.rs:6:18: 6:28
- }
-
- bb1: {
-- _2 = _3[_4]; // scope 0 at $DIR/repeat.rs:6:18: 6:28
-- _1 = Add(move _2, const 0_u32); // scope 0 at $DIR/repeat.rs:6:18: 6:32
-+ _2 = const 42_u32; // scope 0 at $DIR/repeat.rs:6:18: 6:28
-+ _1 = const 42_u32; // scope 0 at $DIR/repeat.rs:6:18: 6:32
- StorageDead(_2); // scope 0 at $DIR/repeat.rs:6:31: 6:32
- StorageDead(_4); // scope 0 at $DIR/repeat.rs:6:32: 6:33
- StorageDead(_3); // scope 0 at $DIR/repeat.rs:6:32: 6:33
- _0 = const (); // scope 0 at $DIR/repeat.rs:5:11: 7:2
- StorageDead(_1); // scope 0 at $DIR/repeat.rs:7:1: 7:2
- return; // scope 0 at $DIR/repeat.rs:7:2: 7:2
- }
- }
-
--- /dev/null
+- // MIR for `main` before ConstProp
++ // MIR for `main` after ConstProp
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/slice_len.rs:4:11: 4:11
+ let _1: u32; // in scope 0 at $DIR/slice_len.rs:5:5: 5:33
+ let mut _2: &[u32]; // in scope 0 at $DIR/slice_len.rs:5:5: 5:30
+ let mut _3: &[u32; 3]; // in scope 0 at $DIR/slice_len.rs:5:6: 5:19
+ let _4: &[u32; 3]; // in scope 0 at $DIR/slice_len.rs:5:6: 5:19
+ let _5: [u32; 3]; // in scope 0 at $DIR/slice_len.rs:5:7: 5:19
+ let _6: usize; // in scope 0 at $DIR/slice_len.rs:5:31: 5:32
+ let mut _7: usize; // in scope 0 at $DIR/slice_len.rs:5:5: 5:33
+ let mut _8: bool; // in scope 0 at $DIR/slice_len.rs:5:5: 5:33
+ let mut _9: &[u32; 3]; // in scope 0 at $DIR/slice_len.rs:5:6: 5:19
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/slice_len.rs:5:5: 5:33
+ StorageLive(_2); // scope 0 at $DIR/slice_len.rs:5:5: 5:30
+ StorageLive(_3); // scope 0 at $DIR/slice_len.rs:5:6: 5:19
+ StorageLive(_4); // scope 0 at $DIR/slice_len.rs:5:6: 5:19
+ _9 = const main::promoted[0]; // scope 0 at $DIR/slice_len.rs:5:6: 5:19
+ // ty::Const
+ // + ty: &[u32; 3]
+ // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ slice_len[317d]::main[0]), const_param_did: None }, [], Some(promoted[0]))
+ // mir::Constant
+ // + span: $DIR/slice_len.rs:5:6: 5:19
+ // + literal: Const { ty: &[u32; 3], val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ slice_len[317d]::main[0]), const_param_did: None }, [], Some(promoted[0])) }
+ _4 = _9; // scope 0 at $DIR/slice_len.rs:5:6: 5:19
+ _3 = _4; // scope 0 at $DIR/slice_len.rs:5:6: 5:19
+ _2 = move _3 as &[u32] (Pointer(Unsize)); // scope 0 at $DIR/slice_len.rs:5:6: 5:19
+ StorageDead(_3); // scope 0 at $DIR/slice_len.rs:5:18: 5:19
+ StorageLive(_6); // scope 0 at $DIR/slice_len.rs:5:31: 5:32
+ _6 = const 1_usize; // scope 0 at $DIR/slice_len.rs:5:31: 5:32
+- _7 = Len((*_2)); // scope 0 at $DIR/slice_len.rs:5:5: 5:33
+- _8 = Lt(_6, _7); // scope 0 at $DIR/slice_len.rs:5:5: 5:33
+- assert(move _8, "index out of bounds: the len is {} but the index is {}", move _7, _6) -> bb1; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
++ _7 = const 3_usize; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
++ _8 = const true; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
++ assert(const true, "index out of bounds: the len is {} but the index is {}", const 3_usize, const 1_usize) -> bb1; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
+ }
+
+ bb1: {
+- _1 = (*_2)[_6]; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
++ _1 = const 2_u32; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
+ StorageDead(_6); // scope 0 at $DIR/slice_len.rs:5:33: 5:34
+ StorageDead(_4); // scope 0 at $DIR/slice_len.rs:5:33: 5:34
+ StorageDead(_2); // scope 0 at $DIR/slice_len.rs:5:33: 5:34
+ StorageDead(_1); // scope 0 at $DIR/slice_len.rs:5:33: 5:34
+ _0 = const (); // scope 0 at $DIR/slice_len.rs:4:11: 6:2
+ return; // scope 0 at $DIR/slice_len.rs:6:2: 6:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before ConstProp
-+ // MIR for `main` after ConstProp
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/slice_len.rs:4:11: 4:11
- let _1: u32; // in scope 0 at $DIR/slice_len.rs:5:5: 5:33
- let mut _2: &[u32]; // in scope 0 at $DIR/slice_len.rs:5:5: 5:30
- let mut _3: &[u32; 3]; // in scope 0 at $DIR/slice_len.rs:5:6: 5:19
- let _4: &[u32; 3]; // in scope 0 at $DIR/slice_len.rs:5:6: 5:19
- let _5: [u32; 3]; // in scope 0 at $DIR/slice_len.rs:5:7: 5:19
- let _6: usize; // in scope 0 at $DIR/slice_len.rs:5:31: 5:32
- let mut _7: usize; // in scope 0 at $DIR/slice_len.rs:5:5: 5:33
- let mut _8: bool; // in scope 0 at $DIR/slice_len.rs:5:5: 5:33
- let mut _9: &[u32; 3]; // in scope 0 at $DIR/slice_len.rs:5:6: 5:19
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/slice_len.rs:5:5: 5:33
- StorageLive(_2); // scope 0 at $DIR/slice_len.rs:5:5: 5:30
- StorageLive(_3); // scope 0 at $DIR/slice_len.rs:5:6: 5:19
- StorageLive(_4); // scope 0 at $DIR/slice_len.rs:5:6: 5:19
- _9 = const main::promoted[0]; // scope 0 at $DIR/slice_len.rs:5:6: 5:19
- // ty::Const
- // + ty: &[u32; 3]
- // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ slice_len[317d]::main[0]), const_param_did: None }, [], Some(promoted[0]))
- // mir::Constant
- // + span: $DIR/slice_len.rs:5:6: 5:19
- // + literal: Const { ty: &[u32; 3], val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ slice_len[317d]::main[0]), const_param_did: None }, [], Some(promoted[0])) }
- _4 = _9; // scope 0 at $DIR/slice_len.rs:5:6: 5:19
- _3 = _4; // scope 0 at $DIR/slice_len.rs:5:6: 5:19
- _2 = move _3 as &[u32] (Pointer(Unsize)); // scope 0 at $DIR/slice_len.rs:5:6: 5:19
- StorageDead(_3); // scope 0 at $DIR/slice_len.rs:5:18: 5:19
- StorageLive(_6); // scope 0 at $DIR/slice_len.rs:5:31: 5:32
- _6 = const 1_usize; // scope 0 at $DIR/slice_len.rs:5:31: 5:32
-- _7 = Len((*_2)); // scope 0 at $DIR/slice_len.rs:5:5: 5:33
-- _8 = Lt(_6, _7); // scope 0 at $DIR/slice_len.rs:5:5: 5:33
-- assert(move _8, "index out of bounds: the len is {} but the index is {}", move _7, _6) -> bb1; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
-+ _7 = const 3_usize; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
-+ _8 = const true; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
-+ assert(const true, "index out of bounds: the len is {} but the index is {}", const 3_usize, const 1_usize) -> bb1; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
- }
-
- bb1: {
-- _1 = (*_2)[_6]; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
-+ _1 = const 2_u32; // scope 0 at $DIR/slice_len.rs:5:5: 5:33
- StorageDead(_6); // scope 0 at $DIR/slice_len.rs:5:33: 5:34
- StorageDead(_4); // scope 0 at $DIR/slice_len.rs:5:33: 5:34
- StorageDead(_2); // scope 0 at $DIR/slice_len.rs:5:33: 5:34
- StorageDead(_1); // scope 0 at $DIR/slice_len.rs:5:33: 5:34
- _0 = const (); // scope 0 at $DIR/slice_len.rs:4:11: 6:2
- return; // scope 0 at $DIR/slice_len.rs:6:2: 6:2
- }
- }
-
--- /dev/null
+- // MIR for `main` before Inline
++ // MIR for `main` after Inline
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/inline-into-box-place.rs:7:11: 7:11
+ let _1: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:8:9: 8:11
+ let mut _2: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
+ let mut _3: (); // in scope 0 at $DIR/inline-into-box-place.rs:8:42: 8:43
++ let mut _4: &mut std::vec::Vec<u32>; // in scope 0 at $DIR/inline-into-box-place.rs:8:33: 8:43
+ scope 1 {
+ debug _x => _1; // in scope 1 at $DIR/inline-into-box-place.rs:8:9: 8:11
+ }
++ scope 2 {
++ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/inline-into-box-place.rs:8:9: 8:11
+ StorageLive(_2); // scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
+ _2 = Box(std::vec::Vec<u32>); // scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
+- (*_2) = Vec::<u32>::new() -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/inline-into-box-place.rs:8:33: 8:43
++ _4 = &mut (*_2); // scope 0 at $DIR/inline-into-box-place.rs:8:33: 8:43
++ ((*_4).0: alloc::raw_vec::RawVec<u32>) = const alloc::raw_vec::RawVec::<u32> { ptr: Unique::<u32> { pointer: {0x4 as *const u32}, _marker: PhantomData::<u32> }, cap: 0_usize, alloc: std::alloc::Global }; // scope 2 at $SRC_DIR/alloc/src/vec.rs:LL:COL
++ // ty::Const
++ // + ty: alloc::raw_vec::RawVec<u32>
++ // + val: Value(ByRef { alloc: Allocation { bytes: [4, 0, 0, 0, 0, 0, 0, 0], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [255], len: Size { raw: 8 } }, size: Size { raw: 8 }, align: Align { pow2: 2 }, mutability: Not, extra: () }, offset: Size { raw: 0 } })
+ // mir::Constant
+- // + span: $DIR/inline-into-box-place.rs:8:33: 8:41
+- // + user_ty: UserType(1)
+- // + literal: Const { ty: fn() -> std::vec::Vec<u32> {std::vec::Vec::<u32>::new}, val: Value(Scalar(<ZST>)) }
++ // + span: $SRC_DIR/alloc/src/vec.rs:LL:COL
++ // + user_ty: UserType(0)
++ // + literal: Const { ty: alloc::raw_vec::RawVec<u32>, val: Value(ByRef { alloc: Allocation { bytes: [4, 0, 0, 0, 0, 0, 0, 0], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [255], len: Size { raw: 8 } }, size: Size { raw: 8 }, align: Align { pow2: 2 }, mutability: Not, extra: () }, offset: Size { raw: 0 } }) }
++ ((*_4).1: usize) = const 0_usize; // scope 2 at $SRC_DIR/alloc/src/vec.rs:LL:COL
++ _1 = move _2; // scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
++ StorageDead(_2); // scope 0 at $DIR/inline-into-box-place.rs:8:42: 8:43
++ _0 = const (); // scope 0 at $DIR/inline-into-box-place.rs:7:11: 9:2
++ drop(_1) -> [return: bb2, unwind: bb1]; // scope 0 at $DIR/inline-into-box-place.rs:9:1: 9:2
+ }
+
+ bb1 (cleanup): {
+ resume; // scope 0 at $DIR/inline-into-box-place.rs:7:1: 9:2
+ }
+
+ bb2: {
+- _1 = move _2; // scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
+- StorageDead(_2); // scope 0 at $DIR/inline-into-box-place.rs:8:42: 8:43
+- _0 = const (); // scope 0 at $DIR/inline-into-box-place.rs:7:11: 9:2
+- drop(_1) -> [return: bb3, unwind: bb1]; // scope 0 at $DIR/inline-into-box-place.rs:9:1: 9:2
+- }
+-
+- bb3: {
+ StorageDead(_1); // scope 0 at $DIR/inline-into-box-place.rs:9:1: 9:2
+ return; // scope 0 at $DIR/inline-into-box-place.rs:9:2: 9:2
+- }
+-
+- bb4 (cleanup): {
+- _3 = alloc::alloc::box_free::<Vec<u32>>(move (_2.0: std::ptr::Unique<std::vec::Vec<u32>>)) -> bb1; // scope 0 at $DIR/inline-into-box-place.rs:8:42: 8:43
+- // mir::Constant
+- // + span: $DIR/inline-into-box-place.rs:8:42: 8:43
+- // + literal: Const { ty: unsafe fn(std::ptr::Unique<std::vec::Vec<u32>>) {alloc::alloc::box_free::<std::vec::Vec<u32>>}, val: Value(Scalar(<ZST>)) }
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before Inline
-+ // MIR for `main` after Inline
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/inline-into-box-place.rs:7:11: 7:11
- let _1: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:8:9: 8:11
- let mut _2: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
- let mut _3: (); // in scope 0 at $DIR/inline-into-box-place.rs:8:42: 8:43
-+ let mut _4: &mut std::vec::Vec<u32>; // in scope 0 at $DIR/inline-into-box-place.rs:8:33: 8:43
- scope 1 {
- debug _x => _1; // in scope 1 at $DIR/inline-into-box-place.rs:8:9: 8:11
- }
-+ scope 2 {
-+ }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/inline-into-box-place.rs:8:9: 8:11
- StorageLive(_2); // scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
- _2 = Box(std::vec::Vec<u32>); // scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
-- (*_2) = Vec::<u32>::new() -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/inline-into-box-place.rs:8:33: 8:43
-+ _4 = &mut (*_2); // scope 0 at $DIR/inline-into-box-place.rs:8:33: 8:43
-+ ((*_4).0: alloc::raw_vec::RawVec<u32>) = const alloc::raw_vec::RawVec::<u32> { ptr: Unique::<u32> { pointer: {0x4 as *const u32}, _marker: PhantomData::<u32> }, cap: 0_usize, alloc: std::alloc::Global }; // scope 2 at $SRC_DIR/alloc/src/vec.rs:LL:COL
-+ // ty::Const
-+ // + ty: alloc::raw_vec::RawVec<u32>
-+ // + val: Value(ByRef { alloc: Allocation { bytes: [4, 0, 0, 0, 0, 0, 0, 0], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [255], len: Size { raw: 8 } }, size: Size { raw: 8 }, align: Align { pow2: 2 }, mutability: Not, extra: () }, offset: Size { raw: 0 } })
- // mir::Constant
-- // + span: $DIR/inline-into-box-place.rs:8:33: 8:41
-- // + user_ty: UserType(1)
-- // + literal: Const { ty: fn() -> std::vec::Vec<u32> {std::vec::Vec::<u32>::new}, val: Value(Scalar(<ZST>)) }
-+ // + span: $SRC_DIR/alloc/src/vec.rs:LL:COL
-+ // + user_ty: UserType(0)
-+ // + literal: Const { ty: alloc::raw_vec::RawVec<u32>, val: Value(ByRef { alloc: Allocation { bytes: [4, 0, 0, 0, 0, 0, 0, 0], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [255], len: Size { raw: 8 } }, size: Size { raw: 8 }, align: Align { pow2: 2 }, mutability: Not, extra: () }, offset: Size { raw: 0 } }) }
-+ ((*_4).1: usize) = const 0_usize; // scope 2 at $SRC_DIR/alloc/src/vec.rs:LL:COL
-+ _1 = move _2; // scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
-+ StorageDead(_2); // scope 0 at $DIR/inline-into-box-place.rs:8:42: 8:43
-+ _0 = const (); // scope 0 at $DIR/inline-into-box-place.rs:7:11: 9:2
-+ drop(_1) -> [return: bb2, unwind: bb1]; // scope 0 at $DIR/inline-into-box-place.rs:9:1: 9:2
- }
-
- bb1 (cleanup): {
- resume; // scope 0 at $DIR/inline-into-box-place.rs:7:1: 9:2
- }
-
- bb2: {
-- _1 = move _2; // scope 0 at $DIR/inline-into-box-place.rs:8:29: 8:43
-- StorageDead(_2); // scope 0 at $DIR/inline-into-box-place.rs:8:42: 8:43
-- _0 = const (); // scope 0 at $DIR/inline-into-box-place.rs:7:11: 9:2
-- drop(_1) -> [return: bb3, unwind: bb1]; // scope 0 at $DIR/inline-into-box-place.rs:9:1: 9:2
-- }
--
-- bb3: {
- StorageDead(_1); // scope 0 at $DIR/inline-into-box-place.rs:9:1: 9:2
- return; // scope 0 at $DIR/inline-into-box-place.rs:9:2: 9:2
-- }
--
-- bb4 (cleanup): {
-- _3 = alloc::alloc::box_free::<Vec<u32>>(move (_2.0: std::ptr::Unique<std::vec::Vec<u32>>)) -> bb1; // scope 0 at $DIR/inline-into-box-place.rs:8:42: 8:43
-- // mir::Constant
-- // + span: $DIR/inline-into-box-place.rs:8:42: 8:43
-- // + literal: Const { ty: unsafe fn(std::ptr::Unique<std::vec::Vec<u32>>) {alloc::alloc::box_free::<std::vec::Vec<u32>>}, val: Value(Scalar(<ZST>)) }
- }
- }
-
--- /dev/null
+// MIR for `<impl at $DIR/issue-41697.rs:18:1: 22:2>::{{constant}}#0` after SimplifyCfg-promote-consts
+
+<impl at $DIR/issue-41697.rs:18:1: 22:2>::{{constant}}#0: usize = {
+ let mut _0: usize; // return place in scope 0 at $DIR/issue-41697.rs:18:19: 18:22
+ let mut _1: (usize, bool); // in scope 0 at $DIR/issue-41697.rs:18:19: 18:22
+
+ bb0: {
+ _1 = CheckedAdd(const 1_usize, const 1_usize); // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
+ assert(!move (_1.1: bool), "attempt to compute `{} + {}` which would overflow", const 1_usize, const 1_usize) -> [success: bb2, unwind: bb1]; // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
+ }
+
+ bb1 (cleanup): {
+ resume; // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
+ }
+
+ bb2: {
+ _0 = move (_1.0: usize); // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
+ return; // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
+ }
+}
+++ /dev/null
-// MIR for `<impl at $DIR/issue-41697.rs:18:1: 22:2>::{{constant}}#0` after SimplifyCfg-promote-consts
-
-<impl at $DIR/issue-41697.rs:18:1: 22:2>::{{constant}}#0: usize = {
- let mut _0: usize; // return place in scope 0 at $DIR/issue-41697.rs:18:19: 18:22
- let mut _1: (usize, bool); // in scope 0 at $DIR/issue-41697.rs:18:19: 18:22
-
- bb0: {
- _1 = CheckedAdd(const 1_usize, const 1_usize); // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
- assert(!move (_1.1: bool), "attempt to compute `{} + {}` which would overflow", const 1_usize, const 1_usize) -> [success: bb2, unwind: bb1]; // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
- }
-
- bb1 (cleanup): {
- resume; // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
- }
-
- bb2: {
- _0 = move (_1.0: usize); // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
- return; // scope 0 at $DIR/issue-41697.rs:18:19: 18:22
- }
-}
--- /dev/null
+// MIR for `bar` 0 mir_map
+
+fn bar(_1: [(Never, u32); 1]) -> u32 {
+ let mut _0: u32; // return place in scope 0 at $DIR/issue-72181.rs:19:40: 19:43
+ let _2: u32; // in scope 0 at $DIR/issue-72181.rs:19:13: 19:14
+ scope 1 {
+ debug x => _2; // in scope 1 at $DIR/issue-72181.rs:19:13: 19:14
+ }
+
+ bb0: {
+ StorageLive(_2); // scope 0 at $DIR/issue-72181.rs:19:13: 19:14
+ _2 = (_1[0 of 1].1: u32); // scope 0 at $DIR/issue-72181.rs:19:13: 19:14
+ _0 = _2; // scope 1 at $DIR/issue-72181.rs:19:46: 19:47
+ StorageDead(_2); // scope 0 at $DIR/issue-72181.rs:19:48: 19:49
+ goto -> bb2; // scope 0 at $DIR/issue-72181.rs:19:49: 19:49
+ }
+
+ bb1 (cleanup): {
+ resume; // scope 0 at $DIR/issue-72181.rs:19:1: 19:49
+ }
+
+ bb2: {
+ return; // scope 0 at $DIR/issue-72181.rs:19:49: 19:49
+ }
+}
+++ /dev/null
-// MIR for `bar` 0 mir_map
-
-fn bar(_1: [(Never, u32); 1]) -> u32 {
- let mut _0: u32; // return place in scope 0 at $DIR/issue-72181.rs:19:40: 19:43
- let _2: u32; // in scope 0 at $DIR/issue-72181.rs:19:13: 19:14
- scope 1 {
- debug x => _2; // in scope 1 at $DIR/issue-72181.rs:19:13: 19:14
- }
-
- bb0: {
- StorageLive(_2); // scope 0 at $DIR/issue-72181.rs:19:13: 19:14
- _2 = (_1[0 of 1].1: u32); // scope 0 at $DIR/issue-72181.rs:19:13: 19:14
- _0 = _2; // scope 1 at $DIR/issue-72181.rs:19:46: 19:47
- StorageDead(_2); // scope 0 at $DIR/issue-72181.rs:19:48: 19:49
- goto -> bb2; // scope 0 at $DIR/issue-72181.rs:19:49: 19:49
- }
-
- bb1 (cleanup): {
- resume; // scope 0 at $DIR/issue-72181.rs:19:1: 19:49
- }
-
- bb2: {
- return; // scope 0 at $DIR/issue-72181.rs:19:49: 19:49
- }
-}
--- /dev/null
+// MIR for `foo` 0 mir_map
+
+fn foo(_1: [(Never, u32); 1]) -> u32 {
+ debug xs => _1; // in scope 0 at $DIR/issue-72181.rs:16:8: 16:10
+ let mut _0: u32; // return place in scope 0 at $DIR/issue-72181.rs:16:34: 16:37
+ let _2: usize; // in scope 0 at $DIR/issue-72181.rs:16:43: 16:44
+ let mut _3: usize; // in scope 0 at $DIR/issue-72181.rs:16:40: 16:45
+ let mut _4: bool; // in scope 0 at $DIR/issue-72181.rs:16:40: 16:45
+
+ bb0: {
+ StorageLive(_2); // scope 0 at $DIR/issue-72181.rs:16:43: 16:44
+ _2 = const 0_usize; // scope 0 at $DIR/issue-72181.rs:16:43: 16:44
+ _3 = Len(_1); // scope 0 at $DIR/issue-72181.rs:16:40: 16:45
+ _4 = Lt(_2, _3); // scope 0 at $DIR/issue-72181.rs:16:40: 16:45
+ assert(move _4, "index out of bounds: the len is {} but the index is {}", move _3, _2) -> [success: bb2, unwind: bb1]; // scope 0 at $DIR/issue-72181.rs:16:40: 16:45
+ }
+
+ bb1 (cleanup): {
+ resume; // scope 0 at $DIR/issue-72181.rs:16:1: 16:49
+ }
+
+ bb2: {
+ _0 = (_1[_2].1: u32); // scope 0 at $DIR/issue-72181.rs:16:40: 16:47
+ StorageDead(_2); // scope 0 at $DIR/issue-72181.rs:16:48: 16:49
+ goto -> bb3; // scope 0 at $DIR/issue-72181.rs:16:49: 16:49
+ }
+
+ bb3: {
+ return; // scope 0 at $DIR/issue-72181.rs:16:49: 16:49
+ }
+}
+++ /dev/null
-// MIR for `foo` 0 mir_map
-
-fn foo(_1: [(Never, u32); 1]) -> u32 {
- debug xs => _1; // in scope 0 at $DIR/issue-72181.rs:16:8: 16:10
- let mut _0: u32; // return place in scope 0 at $DIR/issue-72181.rs:16:34: 16:37
- let _2: usize; // in scope 0 at $DIR/issue-72181.rs:16:43: 16:44
- let mut _3: usize; // in scope 0 at $DIR/issue-72181.rs:16:40: 16:45
- let mut _4: bool; // in scope 0 at $DIR/issue-72181.rs:16:40: 16:45
-
- bb0: {
- StorageLive(_2); // scope 0 at $DIR/issue-72181.rs:16:43: 16:44
- _2 = const 0_usize; // scope 0 at $DIR/issue-72181.rs:16:43: 16:44
- _3 = Len(_1); // scope 0 at $DIR/issue-72181.rs:16:40: 16:45
- _4 = Lt(_2, _3); // scope 0 at $DIR/issue-72181.rs:16:40: 16:45
- assert(move _4, "index out of bounds: the len is {} but the index is {}", move _3, _2) -> [success: bb2, unwind: bb1]; // scope 0 at $DIR/issue-72181.rs:16:40: 16:45
- }
-
- bb1 (cleanup): {
- resume; // scope 0 at $DIR/issue-72181.rs:16:1: 16:49
- }
-
- bb2: {
- _0 = (_1[_2].1: u32); // scope 0 at $DIR/issue-72181.rs:16:40: 16:47
- StorageDead(_2); // scope 0 at $DIR/issue-72181.rs:16:48: 16:49
- goto -> bb3; // scope 0 at $DIR/issue-72181.rs:16:49: 16:49
- }
-
- bb3: {
- return; // scope 0 at $DIR/issue-72181.rs:16:49: 16:49
- }
-}
--- /dev/null
+// MIR for `main` 0 mir_map
+
+fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/issue-72181.rs:23:11: 23:11
+ let mut _1: usize; // in scope 0 at $DIR/issue-72181.rs:24:13: 24:34
+ let mut _3: Foo; // in scope 0 at $DIR/issue-72181.rs:26:14: 26:27
+ let mut _4: Foo; // in scope 0 at $DIR/issue-72181.rs:26:29: 26:42
+ let mut _5: u64; // in scope 0 at $DIR/issue-72181.rs:27:13: 27:30
+ let _6: usize; // in scope 0 at $DIR/issue-72181.rs:27:24: 27:25
+ let mut _7: usize; // in scope 0 at $DIR/issue-72181.rs:27:22: 27:26
+ let mut _8: bool; // in scope 0 at $DIR/issue-72181.rs:27:22: 27:26
+ scope 1 {
+ let _2: [Foo; 2]; // in scope 1 at $DIR/issue-72181.rs:26:9: 26:10
+ scope 2 {
+ debug f => _2; // in scope 2 at $DIR/issue-72181.rs:26:9: 26:10
+ scope 3 {
+ }
+ scope 4 {
+ }
+ }
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/issue-72181.rs:24:13: 24:34
+ _1 = std::mem::size_of::<Foo>() -> [return: bb2, unwind: bb1]; // scope 0 at $DIR/issue-72181.rs:24:13: 24:34
+ // mir::Constant
+ // + span: $DIR/issue-72181.rs:24:13: 24:32
+ // + literal: Const { ty: fn() -> usize {std::mem::size_of::<Foo>}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb1 (cleanup): {
+ resume; // scope 0 at $DIR/issue-72181.rs:23:1: 28:2
+ }
+
+ bb2: {
+ StorageDead(_1); // scope 0 at $DIR/issue-72181.rs:24:34: 24:35
+ StorageLive(_2); // scope 1 at $DIR/issue-72181.rs:26:9: 26:10
+ StorageLive(_3); // scope 1 at $DIR/issue-72181.rs:26:14: 26:27
+ _3 = Foo { a: const 42_u64 }; // scope 1 at $DIR/issue-72181.rs:26:14: 26:27
+ StorageLive(_4); // scope 1 at $DIR/issue-72181.rs:26:29: 26:42
+ _4 = Foo { a: const 10_u64 }; // scope 1 at $DIR/issue-72181.rs:26:29: 26:42
+ _2 = [move _3, move _4]; // scope 1 at $DIR/issue-72181.rs:26:13: 26:43
+ StorageDead(_4); // scope 1 at $DIR/issue-72181.rs:26:42: 26:43
+ StorageDead(_3); // scope 1 at $DIR/issue-72181.rs:26:42: 26:43
+ FakeRead(ForLet, _2); // scope 1 at $DIR/issue-72181.rs:26:9: 26:10
+ StorageLive(_5); // scope 2 at $DIR/issue-72181.rs:27:13: 27:30
+ StorageLive(_6); // scope 4 at $DIR/issue-72181.rs:27:24: 27:25
+ _6 = const 0_usize; // scope 4 at $DIR/issue-72181.rs:27:24: 27:25
+ _7 = Len(_2); // scope 4 at $DIR/issue-72181.rs:27:22: 27:26
+ _8 = Lt(_6, _7); // scope 4 at $DIR/issue-72181.rs:27:22: 27:26
+ assert(move _8, "index out of bounds: the len is {} but the index is {}", move _7, _6) -> [success: bb3, unwind: bb1]; // scope 4 at $DIR/issue-72181.rs:27:22: 27:26
+ }
+
+ bb3: {
+ _5 = (_2[_6].0: u64); // scope 4 at $DIR/issue-72181.rs:27:22: 27:28
+ StorageDead(_6); // scope 2 at $DIR/issue-72181.rs:27:30: 27:31
+ StorageDead(_5); // scope 2 at $DIR/issue-72181.rs:27:30: 27:31
+ _0 = const (); // scope 0 at $DIR/issue-72181.rs:23:11: 28:2
+ StorageDead(_2); // scope 1 at $DIR/issue-72181.rs:28:1: 28:2
+ goto -> bb4; // scope 0 at $DIR/issue-72181.rs:28:2: 28:2
+ }
+
+ bb4: {
+ return; // scope 0 at $DIR/issue-72181.rs:28:2: 28:2
+ }
+}
+++ /dev/null
-// MIR for `main` 0 mir_map
-
-fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/issue-72181.rs:23:11: 23:11
- let mut _1: usize; // in scope 0 at $DIR/issue-72181.rs:24:13: 24:34
- let mut _3: Foo; // in scope 0 at $DIR/issue-72181.rs:26:14: 26:27
- let mut _4: Foo; // in scope 0 at $DIR/issue-72181.rs:26:29: 26:42
- let mut _5: u64; // in scope 0 at $DIR/issue-72181.rs:27:13: 27:30
- let _6: usize; // in scope 0 at $DIR/issue-72181.rs:27:24: 27:25
- let mut _7: usize; // in scope 0 at $DIR/issue-72181.rs:27:22: 27:26
- let mut _8: bool; // in scope 0 at $DIR/issue-72181.rs:27:22: 27:26
- scope 1 {
- let _2: [Foo; 2]; // in scope 1 at $DIR/issue-72181.rs:26:9: 26:10
- scope 2 {
- debug f => _2; // in scope 2 at $DIR/issue-72181.rs:26:9: 26:10
- scope 3 {
- }
- scope 4 {
- }
- }
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/issue-72181.rs:24:13: 24:34
- _1 = std::mem::size_of::<Foo>() -> [return: bb2, unwind: bb1]; // scope 0 at $DIR/issue-72181.rs:24:13: 24:34
- // mir::Constant
- // + span: $DIR/issue-72181.rs:24:13: 24:32
- // + literal: Const { ty: fn() -> usize {std::mem::size_of::<Foo>}, val: Value(Scalar(<ZST>)) }
- }
-
- bb1 (cleanup): {
- resume; // scope 0 at $DIR/issue-72181.rs:23:1: 28:2
- }
-
- bb2: {
- StorageDead(_1); // scope 0 at $DIR/issue-72181.rs:24:34: 24:35
- StorageLive(_2); // scope 1 at $DIR/issue-72181.rs:26:9: 26:10
- StorageLive(_3); // scope 1 at $DIR/issue-72181.rs:26:14: 26:27
- _3 = Foo { a: const 42_u64 }; // scope 1 at $DIR/issue-72181.rs:26:14: 26:27
- StorageLive(_4); // scope 1 at $DIR/issue-72181.rs:26:29: 26:42
- _4 = Foo { a: const 10_u64 }; // scope 1 at $DIR/issue-72181.rs:26:29: 26:42
- _2 = [move _3, move _4]; // scope 1 at $DIR/issue-72181.rs:26:13: 26:43
- StorageDead(_4); // scope 1 at $DIR/issue-72181.rs:26:42: 26:43
- StorageDead(_3); // scope 1 at $DIR/issue-72181.rs:26:42: 26:43
- FakeRead(ForLet, _2); // scope 1 at $DIR/issue-72181.rs:26:9: 26:10
- StorageLive(_5); // scope 2 at $DIR/issue-72181.rs:27:13: 27:30
- StorageLive(_6); // scope 4 at $DIR/issue-72181.rs:27:24: 27:25
- _6 = const 0_usize; // scope 4 at $DIR/issue-72181.rs:27:24: 27:25
- _7 = Len(_2); // scope 4 at $DIR/issue-72181.rs:27:22: 27:26
- _8 = Lt(_6, _7); // scope 4 at $DIR/issue-72181.rs:27:22: 27:26
- assert(move _8, "index out of bounds: the len is {} but the index is {}", move _7, _6) -> [success: bb3, unwind: bb1]; // scope 4 at $DIR/issue-72181.rs:27:22: 27:26
- }
-
- bb3: {
- _5 = (_2[_6].0: u64); // scope 4 at $DIR/issue-72181.rs:27:22: 27:28
- StorageDead(_6); // scope 2 at $DIR/issue-72181.rs:27:30: 27:31
- StorageDead(_5); // scope 2 at $DIR/issue-72181.rs:27:30: 27:31
- _0 = const (); // scope 0 at $DIR/issue-72181.rs:23:11: 28:2
- StorageDead(_2); // scope 1 at $DIR/issue-72181.rs:28:1: 28:2
- goto -> bb4; // scope 0 at $DIR/issue-72181.rs:28:2: 28:2
- }
-
- bb4: {
- return; // scope 0 at $DIR/issue-72181.rs:28:2: 28:2
- }
-}
--- /dev/null
+- // MIR for `main` before PreCodegen
++ // MIR for `main` after PreCodegen
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/issue-73223.rs:1:11: 1:11
+ let mut _1: std::option::Option<i32>; // in scope 0 at $DIR/issue-73223.rs:2:23: 2:30
+ let _2: i32; // in scope 0 at $DIR/issue-73223.rs:3:14: 3:15
+ let mut _4: i32; // in scope 0 at $DIR/issue-73223.rs:7:22: 7:27
+ let mut _5: (&i32, &i32); // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _6: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _9: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _10: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _11: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _12: &std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let _13: std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _14: &[&str]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _15: &[std::fmt::ArgumentV1]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let _16: &[std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let _17: [std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _18: (&&i32, &&i32); // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _19: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _20: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _21: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _24: std::fmt::ArgumentV1; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _25: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _26: std::fmt::ArgumentV1; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _27: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ scope 1 {
+ debug split => _2; // in scope 1 at $DIR/issue-73223.rs:2:9: 2:14
+ let _3: std::option::Option<i32>; // in scope 1 at $DIR/issue-73223.rs:7:9: 7:14
+ scope 3 {
+ debug _prev => _3; // in scope 3 at $DIR/issue-73223.rs:7:9: 7:14
+ let _7: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _8: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ scope 4 {
+ debug left_val => _7; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ debug right_val => _8; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _22: &&i32; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _23: &&i32; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ scope 5 {
+ debug arg0 => _22; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ debug arg1 => _23; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ scope 6 {
+ debug x => _22; // in scope 6 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ debug f => _25; // in scope 6 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ let mut _28: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _29: &core::fmt::Opaque; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
+ }
+ scope 8 {
+ debug x => _23; // in scope 8 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ debug f => _27; // in scope 8 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ let mut _30: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _31: &core::fmt::Opaque; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
+ }
+ }
+ scope 10 {
+ debug pieces => _14; // in scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ debug args => _15; // in scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ let mut _32: std::option::Option<&[std::fmt::rt::v1::Argument]>; // in scope 10 at $SRC_DIR/std/src/macros.rs:LL:COL
+ }
+ }
+ }
+ }
+ scope 2 {
+ debug v => _2; // in scope 2 at $DIR/issue-73223.rs:3:14: 3:15
+ }
+ scope 7 {
+ }
+ scope 9 {
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
+ ((_1 as Some).0: i32) = const 1_i32; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
+ discriminant(_1) = 1; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
+ _2 = ((_1 as Some).0: i32); // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
+ StorageDead(_1); // scope 0 at $DIR/issue-73223.rs:5:6: 5:7
+ StorageLive(_3); // scope 1 at $DIR/issue-73223.rs:7:9: 7:14
+ StorageLive(_4); // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
+ _4 = _2; // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
+ ((_3 as Some).0: i32) = move _4; // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
+ discriminant(_3) = 1; // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
+ StorageDead(_4); // scope 1 at $DIR/issue-73223.rs:7:27: 7:28
+ StorageLive(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_6); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _6 = &_2; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ (_5.0: &i32) = move _6; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ (_5.1: &i32) = const main::promoted[1]; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // ty::Const
+ // + ty: &i32
+ // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[1]))
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // + literal: Const { ty: &i32, val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[1])) }
+ StorageDead(_6); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _7 = (_5.0: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _8 = (_5.1: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_9); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_10); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_11); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _11 = (*_7); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _10 = Eq(move _11, const 1_i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_11); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _9 = Not(move _10); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_10); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ switchInt(_9) -> [false: bb1, otherwise: bb2]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ }
+
+ bb1: {
+ StorageDead(_9); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _0 = const (); // scope 0 at $DIR/issue-73223.rs:1:11: 9:2
+ StorageDead(_3); // scope 1 at $DIR/issue-73223.rs:9:1: 9:2
+ return; // scope 0 at $DIR/issue-73223.rs:9:2: 9:2
+ }
+
+ bb2: {
+ StorageLive(_13); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _14 = const main::promoted[0] as &[&str] (Pointer(Unsize)); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // ty::Const
+ // + ty: &[&str; 3]
+ // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[0]))
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // + literal: Const { ty: &[&str; 3], val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[0])) }
+ StorageLive(_17); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_18); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_19); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_20); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _20 = _7; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _19 = &_20; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_21); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _21 = &_8; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ (_18.0: &&i32) = move _19; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ (_18.1: &&i32) = move _21; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_21); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_19); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _22 = (_18.0: &&i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _23 = (_18.1: &&i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_24); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _25 = <&i32 as Debug>::fmt as for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // + literal: Const { ty: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<&i32 as std::fmt::Debug>::fmt}, val: Value(Scalar(<ZST>)) }
+ StorageLive(_28); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _28 = transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>(move _25) -> bb3; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {std::intrinsics::transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb3: {
+ StorageLive(_29); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _29 = transmute::<&&i32, &core::fmt::Opaque>(move _22) -> bb4; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(&&i32) -> &core::fmt::Opaque {std::intrinsics::transmute::<&&i32, &core::fmt::Opaque>}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb4: {
+ (_24.0: &core::fmt::Opaque) = move _29; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_24.1: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) = move _28; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_29); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_28); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageLive(_26); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _27 = <&i32 as Debug>::fmt as for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // + literal: Const { ty: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<&i32 as std::fmt::Debug>::fmt}, val: Value(Scalar(<ZST>)) }
+ StorageLive(_30); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _30 = transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>(move _27) -> bb5; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {std::intrinsics::transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb5: {
+ StorageLive(_31); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _31 = transmute::<&&i32, &core::fmt::Opaque>(move _23) -> bb6; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(&&i32) -> &core::fmt::Opaque {std::intrinsics::transmute::<&&i32, &core::fmt::Opaque>}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb6: {
+ (_26.0: &core::fmt::Opaque) = move _31; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_26.1: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) = move _30; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_31); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_30); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _17 = [move _24, move _26]; // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_26); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_24); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _16 = &_17; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _15 = move _16 as &[std::fmt::ArgumentV1] (Pointer(Unsize)); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_32); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ discriminant(_32) = 0; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_13.0: &[&str]) = move _14; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_13.1: std::option::Option<&[std::fmt::rt::v1::Argument]>) = move _32; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_13.2: &[std::fmt::ArgumentV1]) = move _15; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_32); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _12 = &_13; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ begin_panic_fmt(move _12); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/std/src/macros.rs:LL:COL
+ // + literal: Const { ty: for<'r, 's> fn(&'r std::fmt::Arguments<'s>) -> ! {std::rt::begin_panic_fmt}, val: Value(Scalar(<ZST>)) }
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before PreCodegen
-+ // MIR for `main` after PreCodegen
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/issue-73223.rs:1:11: 1:11
- let mut _1: std::option::Option<i32>; // in scope 0 at $DIR/issue-73223.rs:2:23: 2:30
- let _2: i32; // in scope 0 at $DIR/issue-73223.rs:3:14: 3:15
- let mut _4: i32; // in scope 0 at $DIR/issue-73223.rs:7:22: 7:27
- let mut _5: (&i32, &i32); // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _6: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _9: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _10: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _11: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _12: &std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let _13: std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _14: &[&str]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _15: &[std::fmt::ArgumentV1]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let _16: &[std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let _17: [std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _18: (&&i32, &&i32); // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _19: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _20: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _21: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _24: std::fmt::ArgumentV1; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _25: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _26: std::fmt::ArgumentV1; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _27: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- scope 1 {
- debug split => _2; // in scope 1 at $DIR/issue-73223.rs:2:9: 2:14
- let _3: std::option::Option<i32>; // in scope 1 at $DIR/issue-73223.rs:7:9: 7:14
- scope 3 {
- debug _prev => _3; // in scope 3 at $DIR/issue-73223.rs:7:9: 7:14
- let _7: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _8: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- scope 4 {
- debug left_val => _7; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- debug right_val => _8; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _22: &&i32; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _23: &&i32; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- scope 5 {
- debug arg0 => _22; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- debug arg1 => _23; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- scope 6 {
- debug x => _22; // in scope 6 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- debug f => _25; // in scope 6 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- let mut _28: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _29: &core::fmt::Opaque; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
- }
- scope 8 {
- debug x => _23; // in scope 8 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- debug f => _27; // in scope 8 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- let mut _30: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _31: &core::fmt::Opaque; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
- }
- }
- scope 10 {
- debug pieces => _14; // in scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- debug args => _15; // in scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- let mut _32: std::option::Option<&[std::fmt::rt::v1::Argument]>; // in scope 10 at $SRC_DIR/std/src/macros.rs:LL:COL
- }
- }
- }
- }
- scope 2 {
- debug v => _2; // in scope 2 at $DIR/issue-73223.rs:3:14: 3:15
- }
- scope 7 {
- }
- scope 9 {
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
- ((_1 as Some).0: i32) = const 1_i32; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
- discriminant(_1) = 1; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
- _2 = ((_1 as Some).0: i32); // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
- StorageDead(_1); // scope 0 at $DIR/issue-73223.rs:5:6: 5:7
- StorageLive(_3); // scope 1 at $DIR/issue-73223.rs:7:9: 7:14
- StorageLive(_4); // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
- _4 = _2; // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
- ((_3 as Some).0: i32) = move _4; // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
- discriminant(_3) = 1; // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
- StorageDead(_4); // scope 1 at $DIR/issue-73223.rs:7:27: 7:28
- StorageLive(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_6); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _6 = &_2; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- (_5.0: &i32) = move _6; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- (_5.1: &i32) = const main::promoted[1]; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // ty::Const
- // + ty: &i32
- // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[1]))
- // mir::Constant
- // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // + literal: Const { ty: &i32, val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[1])) }
- StorageDead(_6); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _7 = (_5.0: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _8 = (_5.1: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_9); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_10); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_11); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _11 = (*_7); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _10 = Eq(move _11, const 1_i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_11); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _9 = Not(move _10); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_10); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- switchInt(_9) -> [false: bb1, otherwise: bb2]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- }
-
- bb1: {
- StorageDead(_9); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _0 = const (); // scope 0 at $DIR/issue-73223.rs:1:11: 9:2
- StorageDead(_3); // scope 1 at $DIR/issue-73223.rs:9:1: 9:2
- return; // scope 0 at $DIR/issue-73223.rs:9:2: 9:2
- }
-
- bb2: {
- StorageLive(_13); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- _14 = const main::promoted[0] as &[&str] (Pointer(Unsize)); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // ty::Const
- // + ty: &[&str; 3]
- // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[0]))
- // mir::Constant
- // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // + literal: Const { ty: &[&str; 3], val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[0])) }
- StorageLive(_17); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_18); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_19); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_20); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _20 = _7; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _19 = &_20; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_21); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _21 = &_8; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- (_18.0: &&i32) = move _19; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- (_18.1: &&i32) = move _21; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_21); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_19); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- _22 = (_18.0: &&i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _23 = (_18.1: &&i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_24); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- _25 = <&i32 as Debug>::fmt as for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // + literal: Const { ty: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<&i32 as std::fmt::Debug>::fmt}, val: Value(Scalar(<ZST>)) }
- StorageLive(_28); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _28 = transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>(move _25) -> bb3; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {std::intrinsics::transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>}, val: Value(Scalar(<ZST>)) }
- }
-
- bb3: {
- StorageLive(_29); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _29 = transmute::<&&i32, &core::fmt::Opaque>(move _22) -> bb4; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(&&i32) -> &core::fmt::Opaque {std::intrinsics::transmute::<&&i32, &core::fmt::Opaque>}, val: Value(Scalar(<ZST>)) }
- }
-
- bb4: {
- (_24.0: &core::fmt::Opaque) = move _29; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_24.1: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) = move _28; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_29); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_28); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageLive(_26); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- _27 = <&i32 as Debug>::fmt as for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // + literal: Const { ty: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<&i32 as std::fmt::Debug>::fmt}, val: Value(Scalar(<ZST>)) }
- StorageLive(_30); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _30 = transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>(move _27) -> bb5; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {std::intrinsics::transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>}, val: Value(Scalar(<ZST>)) }
- }
-
- bb5: {
- StorageLive(_31); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _31 = transmute::<&&i32, &core::fmt::Opaque>(move _23) -> bb6; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(&&i32) -> &core::fmt::Opaque {std::intrinsics::transmute::<&&i32, &core::fmt::Opaque>}, val: Value(Scalar(<ZST>)) }
- }
-
- bb6: {
- (_26.0: &core::fmt::Opaque) = move _31; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_26.1: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) = move _30; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_31); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_30); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _17 = [move _24, move _26]; // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_26); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_24); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- _16 = &_17; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- _15 = move _16 as &[std::fmt::ArgumentV1] (Pointer(Unsize)); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_32); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- discriminant(_32) = 0; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_13.0: &[&str]) = move _14; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_13.1: std::option::Option<&[std::fmt::rt::v1::Argument]>) = move _32; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_13.2: &[std::fmt::ArgumentV1]) = move _15; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_32); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _12 = &_13; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- begin_panic_fmt(move _12); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/std/src/macros.rs:LL:COL
- // + literal: Const { ty: for<'r, 's> fn(&'r std::fmt::Arguments<'s>) -> ! {std::rt::begin_panic_fmt}, val: Value(Scalar(<ZST>)) }
- }
- }
-
--- /dev/null
+- // MIR for `main` before SimplifyArmIdentity
++ // MIR for `main` after SimplifyArmIdentity
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/issue-73223.rs:1:11: 1:11
+ let _1: i32; // in scope 0 at $DIR/issue-73223.rs:2:9: 2:14
+ let mut _2: std::option::Option<i32>; // in scope 0 at $DIR/issue-73223.rs:2:23: 2:30
+ let mut _3: isize; // in scope 0 at $DIR/issue-73223.rs:3:9: 3:16
+ let _4: i32; // in scope 0 at $DIR/issue-73223.rs:3:14: 3:15
+ let mut _5: !; // in scope 0 at $DIR/issue-73223.rs:4:17: 4:23
+ let mut _7: i32; // in scope 0 at $DIR/issue-73223.rs:7:22: 7:27
+ let _8: (); // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _9: (&i32, &i32); // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _10: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _11: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _12: i32; // in scope 0 at $DIR/issue-73223.rs:8:23: 8:24
+ let mut _15: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _16: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _17: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _18: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _19: !; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _20: &std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let _21: &std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let _22: std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _23: &[&str]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _24: &[&str; 3]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _25: &[&str; 3]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _26: [&str; 3]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _27: &[std::fmt::ArgumentV1]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _28: &[std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let _29: &[std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let _30: [std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _31: (&&i32, &&i32); // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _32: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _33: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _34: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _35: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _38: std::fmt::ArgumentV1; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _39: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _40: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _41: std::fmt::ArgumentV1; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _42: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _43: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ scope 1 {
+ debug split => _1; // in scope 1 at $DIR/issue-73223.rs:2:9: 2:14
+ let _6: std::option::Option<i32>; // in scope 1 at $DIR/issue-73223.rs:7:9: 7:14
+ scope 3 {
+ debug _prev => _6; // in scope 3 at $DIR/issue-73223.rs:7:9: 7:14
+ let _13: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _14: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _45: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ scope 4 {
+ debug left_val => _13; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ debug right_val => _14; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _36: &&i32; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let _37: &&i32; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _44: &[&str; 3]; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ scope 5 {
+ debug arg0 => _36; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ debug arg1 => _37; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ scope 6 {
+ debug x => _39; // in scope 6 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ debug f => _40; // in scope 6 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ let mut _46: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _47: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _48: &core::fmt::Opaque; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _49: &&i32; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
+ }
+ scope 8 {
+ debug x => _42; // in scope 8 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ debug f => _43; // in scope 8 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ let mut _50: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _51: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _52: &core::fmt::Opaque; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _53: &&i32; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
+ }
+ }
+ scope 10 {
+ debug pieces => _23; // in scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ debug args => _27; // in scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ let mut _54: &[&str]; // in scope 10 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _55: std::option::Option<&[std::fmt::rt::v1::Argument]>; // in scope 10 at $SRC_DIR/std/src/macros.rs:LL:COL
+ let mut _56: &[std::fmt::ArgumentV1]; // in scope 10 at $SRC_DIR/std/src/macros.rs:LL:COL
+ }
+ }
+ }
+ }
+ scope 2 {
+ debug v => _4; // in scope 2 at $DIR/issue-73223.rs:3:14: 3:15
+ }
+ scope 7 {
+ }
+ scope 9 {
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/issue-73223.rs:2:9: 2:14
+ StorageLive(_2); // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
+ ((_2 as Some).0: i32) = const 1_i32; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
+ discriminant(_2) = 1; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
+ _3 = const 1_isize; // scope 0 at $DIR/issue-73223.rs:3:9: 3:16
+ goto -> bb2; // scope 0 at $DIR/issue-73223.rs:3:9: 3:16
+ }
+
+ bb1: {
+ _0 = const (); // scope 0 at $DIR/issue-73223.rs:4:17: 4:23
+ StorageDead(_2); // scope 0 at $DIR/issue-73223.rs:5:6: 5:7
+ StorageDead(_1); // scope 0 at $DIR/issue-73223.rs:9:1: 9:2
+ goto -> bb3; // scope 0 at $DIR/issue-73223.rs:4:17: 4:23
+ }
+
+ bb2: {
+ StorageLive(_4); // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
+ _4 = ((_2 as Some).0: i32); // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
+ _1 = _4; // scope 2 at $DIR/issue-73223.rs:3:20: 3:21
+ StorageDead(_4); // scope 0 at $DIR/issue-73223.rs:3:20: 3:21
+ StorageDead(_2); // scope 0 at $DIR/issue-73223.rs:5:6: 5:7
+ StorageLive(_6); // scope 1 at $DIR/issue-73223.rs:7:9: 7:14
+ StorageLive(_7); // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
+ _7 = _1; // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
+ ((_6 as Some).0: i32) = move _7; // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
+ discriminant(_6) = 1; // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
+ StorageDead(_7); // scope 1 at $DIR/issue-73223.rs:7:27: 7:28
+ StorageLive(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_10); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _10 = &_1; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_11); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _45 = const main::promoted[1]; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // ty::Const
+ // + ty: &i32
+ // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[1]))
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // + literal: Const { ty: &i32, val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[1])) }
+ _11 = _45; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ (_9.0: &i32) = move _10; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ (_9.1: &i32) = move _11; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_11); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_10); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_13); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _13 = (_9.0: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_14); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _14 = (_9.1: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_15); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_16); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_17); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _17 = (*_13); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_18); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _18 = const 1_i32; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _16 = Eq(move _17, const 1_i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_18); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_17); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _15 = Not(move _16); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_16); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ switchInt(_15) -> [false: bb4, otherwise: bb5]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ }
+
+ bb3: {
+ return; // scope 0 at $DIR/issue-73223.rs:9:2: 9:2
+ }
+
+ bb4: {
+ _8 = const (); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_15); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_14); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_13); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _0 = const (); // scope 0 at $DIR/issue-73223.rs:1:11: 9:2
+ StorageDead(_6); // scope 1 at $DIR/issue-73223.rs:9:1: 9:2
+ StorageDead(_1); // scope 0 at $DIR/issue-73223.rs:9:1: 9:2
+ goto -> bb3; // scope 0 at $DIR/issue-73223.rs:9:2: 9:2
+ }
+
+ bb5: {
+ StorageLive(_19); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_20); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_21); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_22); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_23); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_24); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_25); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _44 = const main::promoted[0]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // ty::Const
+ // + ty: &[&str; 3]
+ // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[0]))
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // + literal: Const { ty: &[&str; 3], val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[0])) }
+ _25 = _44; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _24 = _25; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _23 = move _24 as &[&str] (Pointer(Unsize)); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageDead(_24); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_27); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_28); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_29); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_30); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_31); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_33); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _33 = _13; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _32 = &_33; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_34); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_35); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _35 = _14; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _34 = &_35; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ (_31.0: &&i32) = move _32; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ (_31.1: &&i32) = move _34; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_34); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_32); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_36); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _36 = (_31.0: &&i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_37); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _37 = (_31.1: &&i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_38); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_39); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _39 = _36; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_40); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _40 = <&i32 as Debug>::fmt as for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // + literal: Const { ty: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<&i32 as std::fmt::Debug>::fmt}, val: Value(Scalar(<ZST>)) }
+ StorageLive(_46); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageLive(_47); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _47 = _40; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _46 = transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>(move _47) -> bb6; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {std::intrinsics::transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb6: {
+ StorageDead(_47); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageLive(_48); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageLive(_49); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _49 = _39; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _48 = transmute::<&&i32, &core::fmt::Opaque>(move _49) -> bb7; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(&&i32) -> &core::fmt::Opaque {std::intrinsics::transmute::<&&i32, &core::fmt::Opaque>}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb7: {
+ StorageDead(_49); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_38.0: &core::fmt::Opaque) = move _48; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_38.1: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) = move _46; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_48); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_46); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_40); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_39); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_41); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_42); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _42 = _37; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ StorageLive(_43); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _43 = <&i32 as Debug>::fmt as for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ // + literal: Const { ty: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<&i32 as std::fmt::Debug>::fmt}, val: Value(Scalar(<ZST>)) }
+ StorageLive(_50); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageLive(_51); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _51 = _43; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _50 = transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>(move _51) -> bb8; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {std::intrinsics::transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb8: {
+ StorageDead(_51); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageLive(_52); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageLive(_53); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _53 = _42; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _52 = transmute::<&&i32, &core::fmt::Opaque>(move _53) -> bb9; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(&&i32) -> &core::fmt::Opaque {std::intrinsics::transmute::<&&i32, &core::fmt::Opaque>}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb9: {
+ StorageDead(_53); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_41.0: &core::fmt::Opaque) = move _52; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_41.1: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) = move _50; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_52); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_50); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_43); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_42); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _30 = [move _38, move _41]; // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_41); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_38); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_37); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_36); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _29 = &_30; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _28 = _29; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _27 = move _28 as &[std::fmt::ArgumentV1] (Pointer(Unsize)); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_28); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageLive(_54); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _54 = _23; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageLive(_55); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ discriminant(_55) = 0; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageLive(_56); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ _56 = _27; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_22.0: &[&str]) = move _54; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_22.1: std::option::Option<&[std::fmt::rt::v1::Argument]>) = move _55; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ (_22.2: &[std::fmt::ArgumentV1]) = move _56; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_56); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_55); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_54); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
+ StorageDead(_27); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ StorageDead(_23); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _21 = &_22; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ _20 = _21; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ begin_panic_fmt(move _20); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/std/src/macros.rs:LL:COL
+ // + literal: Const { ty: for<'r, 's> fn(&'r std::fmt::Arguments<'s>) -> ! {std::rt::begin_panic_fmt}, val: Value(Scalar(<ZST>)) }
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before SimplifyArmIdentity
-+ // MIR for `main` after SimplifyArmIdentity
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/issue-73223.rs:1:11: 1:11
- let _1: i32; // in scope 0 at $DIR/issue-73223.rs:2:9: 2:14
- let mut _2: std::option::Option<i32>; // in scope 0 at $DIR/issue-73223.rs:2:23: 2:30
- let mut _3: isize; // in scope 0 at $DIR/issue-73223.rs:3:9: 3:16
- let _4: i32; // in scope 0 at $DIR/issue-73223.rs:3:14: 3:15
- let mut _5: !; // in scope 0 at $DIR/issue-73223.rs:4:17: 4:23
- let mut _7: i32; // in scope 0 at $DIR/issue-73223.rs:7:22: 7:27
- let _8: (); // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _9: (&i32, &i32); // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _10: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _11: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _12: i32; // in scope 0 at $DIR/issue-73223.rs:8:23: 8:24
- let mut _15: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _16: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _17: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _18: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _19: !; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _20: &std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let _21: &std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let _22: std::fmt::Arguments; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _23: &[&str]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _24: &[&str; 3]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _25: &[&str; 3]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _26: [&str; 3]; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _27: &[std::fmt::ArgumentV1]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _28: &[std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let _29: &[std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let _30: [std::fmt::ArgumentV1; 2]; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _31: (&&i32, &&i32); // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _32: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _33: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _34: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _35: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _38: std::fmt::ArgumentV1; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _39: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _40: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _41: std::fmt::ArgumentV1; // in scope 0 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _42: &&i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _43: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- scope 1 {
- debug split => _1; // in scope 1 at $DIR/issue-73223.rs:2:9: 2:14
- let _6: std::option::Option<i32>; // in scope 1 at $DIR/issue-73223.rs:7:9: 7:14
- scope 3 {
- debug _prev => _6; // in scope 3 at $DIR/issue-73223.rs:7:9: 7:14
- let _13: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _14: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _45: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- scope 4 {
- debug left_val => _13; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- debug right_val => _14; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _36: &&i32; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let _37: &&i32; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _44: &[&str; 3]; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- scope 5 {
- debug arg0 => _36; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- debug arg1 => _37; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- scope 6 {
- debug x => _39; // in scope 6 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- debug f => _40; // in scope 6 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- let mut _46: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _47: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _48: &core::fmt::Opaque; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _49: &&i32; // in scope 6 at $SRC_DIR/std/src/macros.rs:LL:COL
- }
- scope 8 {
- debug x => _42; // in scope 8 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- debug f => _43; // in scope 8 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- let mut _50: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _51: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _52: &core::fmt::Opaque; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _53: &&i32; // in scope 8 at $SRC_DIR/std/src/macros.rs:LL:COL
- }
- }
- scope 10 {
- debug pieces => _23; // in scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- debug args => _27; // in scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- let mut _54: &[&str]; // in scope 10 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _55: std::option::Option<&[std::fmt::rt::v1::Argument]>; // in scope 10 at $SRC_DIR/std/src/macros.rs:LL:COL
- let mut _56: &[std::fmt::ArgumentV1]; // in scope 10 at $SRC_DIR/std/src/macros.rs:LL:COL
- }
- }
- }
- }
- scope 2 {
- debug v => _4; // in scope 2 at $DIR/issue-73223.rs:3:14: 3:15
- }
- scope 7 {
- }
- scope 9 {
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/issue-73223.rs:2:9: 2:14
- StorageLive(_2); // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
- ((_2 as Some).0: i32) = const 1_i32; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
- discriminant(_2) = 1; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
- _3 = const 1_isize; // scope 0 at $DIR/issue-73223.rs:3:9: 3:16
- goto -> bb2; // scope 0 at $DIR/issue-73223.rs:3:9: 3:16
- }
-
- bb1: {
- _0 = const (); // scope 0 at $DIR/issue-73223.rs:4:17: 4:23
- StorageDead(_2); // scope 0 at $DIR/issue-73223.rs:5:6: 5:7
- StorageDead(_1); // scope 0 at $DIR/issue-73223.rs:9:1: 9:2
- goto -> bb3; // scope 0 at $DIR/issue-73223.rs:4:17: 4:23
- }
-
- bb2: {
- StorageLive(_4); // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
- _4 = ((_2 as Some).0: i32); // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
- _1 = _4; // scope 2 at $DIR/issue-73223.rs:3:20: 3:21
- StorageDead(_4); // scope 0 at $DIR/issue-73223.rs:3:20: 3:21
- StorageDead(_2); // scope 0 at $DIR/issue-73223.rs:5:6: 5:7
- StorageLive(_6); // scope 1 at $DIR/issue-73223.rs:7:9: 7:14
- StorageLive(_7); // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
- _7 = _1; // scope 1 at $DIR/issue-73223.rs:7:22: 7:27
- ((_6 as Some).0: i32) = move _7; // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
- discriminant(_6) = 1; // scope 1 at $DIR/issue-73223.rs:7:17: 7:28
- StorageDead(_7); // scope 1 at $DIR/issue-73223.rs:7:27: 7:28
- StorageLive(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_10); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _10 = &_1; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_11); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _45 = const main::promoted[1]; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // ty::Const
- // + ty: &i32
- // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[1]))
- // mir::Constant
- // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // + literal: Const { ty: &i32, val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[1])) }
- _11 = _45; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- (_9.0: &i32) = move _10; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- (_9.1: &i32) = move _11; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_11); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_10); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_13); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _13 = (_9.0: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_14); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _14 = (_9.1: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_15); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_16); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_17); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _17 = (*_13); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_18); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _18 = const 1_i32; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _16 = Eq(move _17, const 1_i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_18); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_17); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _15 = Not(move _16); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_16); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- switchInt(_15) -> [false: bb4, otherwise: bb5]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- }
-
- bb3: {
- return; // scope 0 at $DIR/issue-73223.rs:9:2: 9:2
- }
-
- bb4: {
- _8 = const (); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_15); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_14); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_13); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _0 = const (); // scope 0 at $DIR/issue-73223.rs:1:11: 9:2
- StorageDead(_6); // scope 1 at $DIR/issue-73223.rs:9:1: 9:2
- StorageDead(_1); // scope 0 at $DIR/issue-73223.rs:9:1: 9:2
- goto -> bb3; // scope 0 at $DIR/issue-73223.rs:9:2: 9:2
- }
-
- bb5: {
- StorageLive(_19); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_20); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_21); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_22); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_23); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_24); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_25); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _44 = const main::promoted[0]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // ty::Const
- // + ty: &[&str; 3]
- // + val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[0]))
- // mir::Constant
- // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // + literal: Const { ty: &[&str; 3], val: Unevaluated(WithOptConstParam { did: DefId(0:3 ~ issue_73223[317d]::main[0]), const_param_did: None }, [], Some(promoted[0])) }
- _25 = _44; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _24 = _25; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _23 = move _24 as &[&str] (Pointer(Unsize)); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageDead(_24); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_27); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_28); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_29); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_30); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_31); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_33); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _33 = _13; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _32 = &_33; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_34); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_35); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _35 = _14; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _34 = &_35; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- (_31.0: &&i32) = move _32; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- (_31.1: &&i32) = move _34; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_34); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_32); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_36); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _36 = (_31.0: &&i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_37); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _37 = (_31.1: &&i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_38); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_39); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _39 = _36; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_40); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _40 = <&i32 as Debug>::fmt as for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // + literal: Const { ty: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<&i32 as std::fmt::Debug>::fmt}, val: Value(Scalar(<ZST>)) }
- StorageLive(_46); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageLive(_47); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _47 = _40; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _46 = transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>(move _47) -> bb6; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {std::intrinsics::transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>}, val: Value(Scalar(<ZST>)) }
- }
-
- bb6: {
- StorageDead(_47); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageLive(_48); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageLive(_49); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _49 = _39; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _48 = transmute::<&&i32, &core::fmt::Opaque>(move _49) -> bb7; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(&&i32) -> &core::fmt::Opaque {std::intrinsics::transmute::<&&i32, &core::fmt::Opaque>}, val: Value(Scalar(<ZST>)) }
- }
-
- bb7: {
- StorageDead(_49); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_38.0: &core::fmt::Opaque) = move _48; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_38.1: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) = move _46; // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_48); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_46); // scope 7 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_40); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_39); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_41); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_42); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _42 = _37; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- StorageLive(_43); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _43 = <&i32 as Debug>::fmt as for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer)); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
- // + literal: Const { ty: for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {<&i32 as std::fmt::Debug>::fmt}, val: Value(Scalar(<ZST>)) }
- StorageLive(_50); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageLive(_51); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _51 = _43; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _50 = transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>(move _51) -> bb8; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) -> for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> {std::intrinsics::transmute::<for<'r, 's, 't0> fn(&'r &i32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>, for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>>}, val: Value(Scalar(<ZST>)) }
- }
-
- bb8: {
- StorageDead(_51); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageLive(_52); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageLive(_53); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _53 = _42; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _52 = transmute::<&&i32, &core::fmt::Opaque>(move _53) -> bb9; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(&&i32) -> &core::fmt::Opaque {std::intrinsics::transmute::<&&i32, &core::fmt::Opaque>}, val: Value(Scalar(<ZST>)) }
- }
-
- bb9: {
- StorageDead(_53); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_41.0: &core::fmt::Opaque) = move _52; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_41.1: for<'r, 's, 't0> fn(&'r core::fmt::Opaque, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error>) = move _50; // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_52); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_50); // scope 9 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_43); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_42); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- _30 = [move _38, move _41]; // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_41); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_38); // scope 5 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_37); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_36); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- _29 = &_30; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- _28 = _29; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- _27 = move _28 as &[std::fmt::ArgumentV1] (Pointer(Unsize)); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_28); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageLive(_54); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _54 = _23; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageLive(_55); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- discriminant(_55) = 0; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageLive(_56); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- _56 = _27; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_22.0: &[&str]) = move _54; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_22.1: std::option::Option<&[std::fmt::rt::v1::Argument]>) = move _55; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- (_22.2: &[std::fmt::ArgumentV1]) = move _56; // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_56); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_55); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_54); // scope 10 at $SRC_DIR/core/src/fmt/mod.rs:LL:COL
- StorageDead(_27); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- StorageDead(_23); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- _21 = &_22; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- _20 = _21; // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- begin_panic_fmt(move _20); // scope 4 at $SRC_DIR/std/src/macros.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/std/src/macros.rs:LL:COL
- // + literal: Const { ty: for<'r, 's> fn(&'r std::fmt::Arguments<'s>) -> ! {std::rt::begin_panic_fmt}, val: Value(Scalar(<ZST>)) }
- }
- }
-
--- /dev/null
+- // MIR for `bar` before MatchBranchSimplification
++ // MIR for `bar` after MatchBranchSimplification
+
+ fn bar(_1: i32) -> (bool, bool, bool, bool) {
+ debug i => _1; // in scope 0 at $DIR/matches_reduce_branches.rs:11:8: 11:9
+ let mut _0: (bool, bool, bool, bool); // return place in scope 0 at $DIR/matches_reduce_branches.rs:11:19: 11:43
+ let _2: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:12:9: 12:10
+ let _6: (); // in scope 0 at $DIR/matches_reduce_branches.rs:17:5: 32:6
+ let mut _7: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:34:6: 34:7
+ let mut _8: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:34:9: 34:10
+ let mut _9: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:34:12: 34:13
+ let mut _10: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:34:15: 34:16
+ scope 1 {
+ debug a => _2; // in scope 1 at $DIR/matches_reduce_branches.rs:12:9: 12:10
+ let _3: bool; // in scope 1 at $DIR/matches_reduce_branches.rs:13:9: 13:10
+ scope 2 {
+ debug b => _3; // in scope 2 at $DIR/matches_reduce_branches.rs:13:9: 13:10
+ let _4: bool; // in scope 2 at $DIR/matches_reduce_branches.rs:14:9: 14:10
+ scope 3 {
+ debug c => _4; // in scope 3 at $DIR/matches_reduce_branches.rs:14:9: 14:10
+ let _5: bool; // in scope 3 at $DIR/matches_reduce_branches.rs:15:9: 15:10
+ scope 4 {
+ debug d => _5; // in scope 4 at $DIR/matches_reduce_branches.rs:15:9: 15:10
+ }
+ }
+ }
+ }
+
+ bb0: {
+ StorageLive(_2); // scope 0 at $DIR/matches_reduce_branches.rs:12:9: 12:10
+ StorageLive(_3); // scope 1 at $DIR/matches_reduce_branches.rs:13:9: 13:10
+ StorageLive(_4); // scope 2 at $DIR/matches_reduce_branches.rs:14:9: 14:10
+ StorageLive(_5); // scope 3 at $DIR/matches_reduce_branches.rs:15:9: 15:10
+ StorageLive(_6); // scope 4 at $DIR/matches_reduce_branches.rs:17:5: 32:6
+- switchInt(_1) -> [7_i32: bb2, otherwise: bb1]; // scope 4 at $DIR/matches_reduce_branches.rs:18:9: 18:10
++ _2 = Ne(_1, const 7_i32); // scope 4 at $DIR/matches_reduce_branches.rs:19:13: 19:22
++ _3 = Eq(_1, const 7_i32); // scope 4 at $DIR/matches_reduce_branches.rs:20:13: 20:21
++ _4 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:21:13: 21:22
++ _5 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:22:13: 22:21
++ goto -> bb3; // scope 4 at $DIR/matches_reduce_branches.rs:18:9: 18:10
+ }
+
+ bb1: {
+ _2 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:26:13: 26:21
+ _3 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:27:13: 27:22
+ _4 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:28:13: 28:22
+ _5 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:29:13: 29:21
+ goto -> bb3; // scope 4 at $DIR/matches_reduce_branches.rs:17:5: 32:6
+ }
+
+ bb2: {
+ _2 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:19:13: 19:22
+ _3 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:20:13: 20:21
+ _4 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:21:13: 21:22
+ _5 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:22:13: 22:21
+ goto -> bb3; // scope 4 at $DIR/matches_reduce_branches.rs:17:5: 32:6
+ }
+
+ bb3: {
+ StorageDead(_6); // scope 4 at $DIR/matches_reduce_branches.rs:32:6: 32:7
+ StorageLive(_7); // scope 4 at $DIR/matches_reduce_branches.rs:34:6: 34:7
+ _7 = _2; // scope 4 at $DIR/matches_reduce_branches.rs:34:6: 34:7
+ StorageLive(_8); // scope 4 at $DIR/matches_reduce_branches.rs:34:9: 34:10
+ _8 = _3; // scope 4 at $DIR/matches_reduce_branches.rs:34:9: 34:10
+ StorageLive(_9); // scope 4 at $DIR/matches_reduce_branches.rs:34:12: 34:13
+ _9 = _4; // scope 4 at $DIR/matches_reduce_branches.rs:34:12: 34:13
+ StorageLive(_10); // scope 4 at $DIR/matches_reduce_branches.rs:34:15: 34:16
+ _10 = _5; // scope 4 at $DIR/matches_reduce_branches.rs:34:15: 34:16
+ (_0.0: bool) = move _7; // scope 4 at $DIR/matches_reduce_branches.rs:34:5: 34:17
+ (_0.1: bool) = move _8; // scope 4 at $DIR/matches_reduce_branches.rs:34:5: 34:17
+ (_0.2: bool) = move _9; // scope 4 at $DIR/matches_reduce_branches.rs:34:5: 34:17
+ (_0.3: bool) = move _10; // scope 4 at $DIR/matches_reduce_branches.rs:34:5: 34:17
+ StorageDead(_10); // scope 4 at $DIR/matches_reduce_branches.rs:34:16: 34:17
+ StorageDead(_9); // scope 4 at $DIR/matches_reduce_branches.rs:34:16: 34:17
+ StorageDead(_8); // scope 4 at $DIR/matches_reduce_branches.rs:34:16: 34:17
+ StorageDead(_7); // scope 4 at $DIR/matches_reduce_branches.rs:34:16: 34:17
+ StorageDead(_5); // scope 3 at $DIR/matches_reduce_branches.rs:35:1: 35:2
+ StorageDead(_4); // scope 2 at $DIR/matches_reduce_branches.rs:35:1: 35:2
+ StorageDead(_3); // scope 1 at $DIR/matches_reduce_branches.rs:35:1: 35:2
+ StorageDead(_2); // scope 0 at $DIR/matches_reduce_branches.rs:35:1: 35:2
+ return; // scope 0 at $DIR/matches_reduce_branches.rs:35:2: 35:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `bar` before MatchBranchSimplification
-+ // MIR for `bar` after MatchBranchSimplification
-
- fn bar(_1: i32) -> (bool, bool, bool, bool) {
- debug i => _1; // in scope 0 at $DIR/matches_reduce_branches.rs:11:8: 11:9
- let mut _0: (bool, bool, bool, bool); // return place in scope 0 at $DIR/matches_reduce_branches.rs:11:19: 11:43
- let _2: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:12:9: 12:10
- let _6: (); // in scope 0 at $DIR/matches_reduce_branches.rs:17:5: 32:6
- let mut _7: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:34:6: 34:7
- let mut _8: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:34:9: 34:10
- let mut _9: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:34:12: 34:13
- let mut _10: bool; // in scope 0 at $DIR/matches_reduce_branches.rs:34:15: 34:16
- scope 1 {
- debug a => _2; // in scope 1 at $DIR/matches_reduce_branches.rs:12:9: 12:10
- let _3: bool; // in scope 1 at $DIR/matches_reduce_branches.rs:13:9: 13:10
- scope 2 {
- debug b => _3; // in scope 2 at $DIR/matches_reduce_branches.rs:13:9: 13:10
- let _4: bool; // in scope 2 at $DIR/matches_reduce_branches.rs:14:9: 14:10
- scope 3 {
- debug c => _4; // in scope 3 at $DIR/matches_reduce_branches.rs:14:9: 14:10
- let _5: bool; // in scope 3 at $DIR/matches_reduce_branches.rs:15:9: 15:10
- scope 4 {
- debug d => _5; // in scope 4 at $DIR/matches_reduce_branches.rs:15:9: 15:10
- }
- }
- }
- }
-
- bb0: {
- StorageLive(_2); // scope 0 at $DIR/matches_reduce_branches.rs:12:9: 12:10
- StorageLive(_3); // scope 1 at $DIR/matches_reduce_branches.rs:13:9: 13:10
- StorageLive(_4); // scope 2 at $DIR/matches_reduce_branches.rs:14:9: 14:10
- StorageLive(_5); // scope 3 at $DIR/matches_reduce_branches.rs:15:9: 15:10
- StorageLive(_6); // scope 4 at $DIR/matches_reduce_branches.rs:17:5: 32:6
-- switchInt(_1) -> [7_i32: bb2, otherwise: bb1]; // scope 4 at $DIR/matches_reduce_branches.rs:18:9: 18:10
-+ _2 = Ne(_1, const 7_i32); // scope 4 at $DIR/matches_reduce_branches.rs:19:13: 19:22
-+ _3 = Eq(_1, const 7_i32); // scope 4 at $DIR/matches_reduce_branches.rs:20:13: 20:21
-+ _4 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:21:13: 21:22
-+ _5 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:22:13: 22:21
-+ goto -> bb3; // scope 4 at $DIR/matches_reduce_branches.rs:18:9: 18:10
- }
-
- bb1: {
- _2 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:26:13: 26:21
- _3 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:27:13: 27:22
- _4 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:28:13: 28:22
- _5 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:29:13: 29:21
- goto -> bb3; // scope 4 at $DIR/matches_reduce_branches.rs:17:5: 32:6
- }
-
- bb2: {
- _2 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:19:13: 19:22
- _3 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:20:13: 20:21
- _4 = const false; // scope 4 at $DIR/matches_reduce_branches.rs:21:13: 21:22
- _5 = const true; // scope 4 at $DIR/matches_reduce_branches.rs:22:13: 22:21
- goto -> bb3; // scope 4 at $DIR/matches_reduce_branches.rs:17:5: 32:6
- }
-
- bb3: {
- StorageDead(_6); // scope 4 at $DIR/matches_reduce_branches.rs:32:6: 32:7
- StorageLive(_7); // scope 4 at $DIR/matches_reduce_branches.rs:34:6: 34:7
- _7 = _2; // scope 4 at $DIR/matches_reduce_branches.rs:34:6: 34:7
- StorageLive(_8); // scope 4 at $DIR/matches_reduce_branches.rs:34:9: 34:10
- _8 = _3; // scope 4 at $DIR/matches_reduce_branches.rs:34:9: 34:10
- StorageLive(_9); // scope 4 at $DIR/matches_reduce_branches.rs:34:12: 34:13
- _9 = _4; // scope 4 at $DIR/matches_reduce_branches.rs:34:12: 34:13
- StorageLive(_10); // scope 4 at $DIR/matches_reduce_branches.rs:34:15: 34:16
- _10 = _5; // scope 4 at $DIR/matches_reduce_branches.rs:34:15: 34:16
- (_0.0: bool) = move _7; // scope 4 at $DIR/matches_reduce_branches.rs:34:5: 34:17
- (_0.1: bool) = move _8; // scope 4 at $DIR/matches_reduce_branches.rs:34:5: 34:17
- (_0.2: bool) = move _9; // scope 4 at $DIR/matches_reduce_branches.rs:34:5: 34:17
- (_0.3: bool) = move _10; // scope 4 at $DIR/matches_reduce_branches.rs:34:5: 34:17
- StorageDead(_10); // scope 4 at $DIR/matches_reduce_branches.rs:34:16: 34:17
- StorageDead(_9); // scope 4 at $DIR/matches_reduce_branches.rs:34:16: 34:17
- StorageDead(_8); // scope 4 at $DIR/matches_reduce_branches.rs:34:16: 34:17
- StorageDead(_7); // scope 4 at $DIR/matches_reduce_branches.rs:34:16: 34:17
- StorageDead(_5); // scope 3 at $DIR/matches_reduce_branches.rs:35:1: 35:2
- StorageDead(_4); // scope 2 at $DIR/matches_reduce_branches.rs:35:1: 35:2
- StorageDead(_3); // scope 1 at $DIR/matches_reduce_branches.rs:35:1: 35:2
- StorageDead(_2); // scope 0 at $DIR/matches_reduce_branches.rs:35:1: 35:2
- return; // scope 0 at $DIR/matches_reduce_branches.rs:35:2: 35:2
- }
- }
-
--- /dev/null
+- // MIR for `foo` before MatchBranchSimplification
++ // MIR for `foo` after MatchBranchSimplification
+
+ fn foo(_1: Option<()>) -> () {
+ debug bar => _1; // in scope 0 at $DIR/matches_reduce_branches.rs:5:8: 5:11
+ let mut _0: (); // return place in scope 0 at $DIR/matches_reduce_branches.rs:5:25: 5:25
+ let mut _2: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ let mut _3: isize; // in scope 0 at $DIR/matches_reduce_branches.rs:6:22: 6:26
+
+ bb0: {
+ StorageLive(_2); // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ _3 = discriminant(_1); // scope 0 at $DIR/matches_reduce_branches.rs:6:22: 6:26
+- switchInt(move _3) -> [0_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/matches_reduce_branches.rs:6:22: 6:26
++ _2 = Eq(_3, const 0_isize); // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
++ goto -> bb3; // scope 0 at $DIR/matches_reduce_branches.rs:6:22: 6:26
+ }
+
+ bb1: {
+ _2 = const false; // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ goto -> bb3; // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ }
+
+ bb2: {
+ _2 = const true; // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ goto -> bb3; // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
+ }
+
+ bb3: {
+ switchInt(_2) -> [false: bb4, otherwise: bb5]; // scope 0 at $DIR/matches_reduce_branches.rs:6:5: 8:6
+ }
+
+ bb4: {
+ _0 = const (); // scope 0 at $DIR/matches_reduce_branches.rs:6:5: 8:6
+ goto -> bb5; // scope 0 at $DIR/matches_reduce_branches.rs:6:5: 8:6
+ }
+
+ bb5: {
+ StorageDead(_2); // scope 0 at $DIR/matches_reduce_branches.rs:9:1: 9:2
+ return; // scope 0 at $DIR/matches_reduce_branches.rs:9:2: 9:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `foo` before MatchBranchSimplification
-+ // MIR for `foo` after MatchBranchSimplification
-
- fn foo(_1: Option<()>) -> () {
- debug bar => _1; // in scope 0 at $DIR/matches_reduce_branches.rs:5:8: 5:11
- let mut _0: (); // return place in scope 0 at $DIR/matches_reduce_branches.rs:5:25: 5:25
- let mut _2: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- let mut _3: isize; // in scope 0 at $DIR/matches_reduce_branches.rs:6:22: 6:26
-
- bb0: {
- StorageLive(_2); // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- _3 = discriminant(_1); // scope 0 at $DIR/matches_reduce_branches.rs:6:22: 6:26
-- switchInt(move _3) -> [0_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/matches_reduce_branches.rs:6:22: 6:26
-+ _2 = Eq(_3, const 0_isize); // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
-+ goto -> bb3; // scope 0 at $DIR/matches_reduce_branches.rs:6:22: 6:26
- }
-
- bb1: {
- _2 = const false; // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- goto -> bb3; // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- }
-
- bb2: {
- _2 = const true; // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- goto -> bb3; // scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
- }
-
- bb3: {
- switchInt(_2) -> [false: bb4, otherwise: bb5]; // scope 0 at $DIR/matches_reduce_branches.rs:6:5: 8:6
- }
-
- bb4: {
- _0 = const (); // scope 0 at $DIR/matches_reduce_branches.rs:6:5: 8:6
- goto -> bb5; // scope 0 at $DIR/matches_reduce_branches.rs:6:5: 8:6
- }
-
- bb5: {
- StorageDead(_2); // scope 0 at $DIR/matches_reduce_branches.rs:9:1: 9:2
- return; // scope 0 at $DIR/matches_reduce_branches.rs:9:2: 9:2
- }
- }
-
--- /dev/null
+- // MIR for `exhaustive_match` before MatchBranchSimplification
++ // MIR for `exhaustive_match` after MatchBranchSimplification
+
+ fn exhaustive_match(_1: E) -> u8 {
+ debug e => _1; // in scope 0 at $DIR/matches_u8.rs:11:25: 11:26
+ let mut _0: u8; // return place in scope 0 at $DIR/matches_u8.rs:11:34: 11:36
+ let mut _2: isize; // in scope 0 at $DIR/matches_u8.rs:13:9: 13:13
+
+ bb0: {
+ _2 = discriminant(_1); // scope 0 at $DIR/matches_u8.rs:13:9: 13:13
+ switchInt(move _2) -> [0_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/matches_u8.rs:13:9: 13:13
+ }
+
+ bb1: {
+ _0 = const 1_u8; // scope 0 at $DIR/matches_u8.rs:14:17: 14:18
+ goto -> bb3; // scope 0 at $DIR/matches_u8.rs:12:5: 15:6
+ }
+
+ bb2: {
+ _0 = const 0_u8; // scope 0 at $DIR/matches_u8.rs:13:17: 13:18
+ goto -> bb3; // scope 0 at $DIR/matches_u8.rs:12:5: 15:6
+ }
+
+ bb3: {
+ return; // scope 0 at $DIR/matches_u8.rs:16:2: 16:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `exhaustive_match` before MatchBranchSimplification
-+ // MIR for `exhaustive_match` after MatchBranchSimplification
-
- fn exhaustive_match(_1: E) -> u8 {
- debug e => _1; // in scope 0 at $DIR/matches_u8.rs:11:25: 11:26
- let mut _0: u8; // return place in scope 0 at $DIR/matches_u8.rs:11:34: 11:36
- let mut _2: isize; // in scope 0 at $DIR/matches_u8.rs:13:9: 13:13
-
- bb0: {
- _2 = discriminant(_1); // scope 0 at $DIR/matches_u8.rs:13:9: 13:13
- switchInt(move _2) -> [0_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/matches_u8.rs:13:9: 13:13
- }
-
- bb1: {
- _0 = const 1_u8; // scope 0 at $DIR/matches_u8.rs:14:17: 14:18
- goto -> bb3; // scope 0 at $DIR/matches_u8.rs:12:5: 15:6
- }
-
- bb2: {
- _0 = const 0_u8; // scope 0 at $DIR/matches_u8.rs:13:17: 13:18
- goto -> bb3; // scope 0 at $DIR/matches_u8.rs:12:5: 15:6
- }
-
- bb3: {
- return; // scope 0 at $DIR/matches_u8.rs:16:2: 16:2
- }
- }
-
--- /dev/null
+- // MIR for `exhaustive_match_i8` before MatchBranchSimplification
++ // MIR for `exhaustive_match_i8` after MatchBranchSimplification
+
+ fn exhaustive_match_i8(_1: E) -> i8 {
+ debug e => _1; // in scope 0 at $DIR/matches_u8.rs:19:28: 19:29
+ let mut _0: i8; // return place in scope 0 at $DIR/matches_u8.rs:19:37: 19:39
+ let mut _2: isize; // in scope 0 at $DIR/matches_u8.rs:21:9: 21:13
+
+ bb0: {
+ _2 = discriminant(_1); // scope 0 at $DIR/matches_u8.rs:21:9: 21:13
+ switchInt(move _2) -> [0_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/matches_u8.rs:21:9: 21:13
+ }
+
+ bb1: {
+ _0 = const 1_i8; // scope 0 at $DIR/matches_u8.rs:22:17: 22:18
+ goto -> bb3; // scope 0 at $DIR/matches_u8.rs:20:5: 23:6
+ }
+
+ bb2: {
+ _0 = const 0_i8; // scope 0 at $DIR/matches_u8.rs:21:17: 21:18
+ goto -> bb3; // scope 0 at $DIR/matches_u8.rs:20:5: 23:6
+ }
+
+ bb3: {
+ return; // scope 0 at $DIR/matches_u8.rs:24:2: 24:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `exhaustive_match_i8` before MatchBranchSimplification
-+ // MIR for `exhaustive_match_i8` after MatchBranchSimplification
-
- fn exhaustive_match_i8(_1: E) -> i8 {
- debug e => _1; // in scope 0 at $DIR/matches_u8.rs:19:28: 19:29
- let mut _0: i8; // return place in scope 0 at $DIR/matches_u8.rs:19:37: 19:39
- let mut _2: isize; // in scope 0 at $DIR/matches_u8.rs:21:9: 21:13
-
- bb0: {
- _2 = discriminant(_1); // scope 0 at $DIR/matches_u8.rs:21:9: 21:13
- switchInt(move _2) -> [0_isize: bb2, otherwise: bb1]; // scope 0 at $DIR/matches_u8.rs:21:9: 21:13
- }
-
- bb1: {
- _0 = const 1_i8; // scope 0 at $DIR/matches_u8.rs:22:17: 22:18
- goto -> bb3; // scope 0 at $DIR/matches_u8.rs:20:5: 23:6
- }
-
- bb2: {
- _0 = const 0_i8; // scope 0 at $DIR/matches_u8.rs:21:17: 21:18
- goto -> bb3; // scope 0 at $DIR/matches_u8.rs:20:5: 23:6
- }
-
- bb3: {
- return; // scope 0 at $DIR/matches_u8.rs:24:2: 24:2
- }
- }
-
--- /dev/null
+// MIR for `main` 0 nll
+
+| Free Region Mapping
+| '_#0r | Global | ['_#0r, '_#1r]
+| '_#1r | Local | ['_#1r]
+|
+| Inferred Region Values
+| '_#0r | U0 | {bb0[0..=8], bb1[0], bb2[0..=8], bb3[0], bb4[0..=1], bb5[0..=3], bb6[0..=3], bb7[0..=2], bb8[0..=5], '_#0r, '_#1r}
+| '_#1r | U0 | {bb0[0..=8], bb1[0], bb2[0..=8], bb3[0], bb4[0..=1], bb5[0..=3], bb6[0..=3], bb7[0..=2], bb8[0..=5], '_#1r}
+| '_#2r | U0 | {}
+| '_#3r | U0 | {bb2[0..=8], bb3[0], bb5[0..=2]}
+| '_#4r | U0 | {bb2[1..=8], bb3[0], bb5[0..=2]}
+| '_#5r | U0 | {bb2[4..=8], bb3[0], bb5[0..=2]}
+|
+| Inference Constraints
+| '_#0r live at {bb0[0..=8], bb1[0], bb2[0..=8], bb3[0], bb4[0..=1], bb5[0..=3], bb6[0..=3], bb7[0..=2], bb8[0..=5]}
+| '_#1r live at {bb0[0..=8], bb1[0], bb2[0..=8], bb3[0], bb4[0..=1], bb5[0..=3], bb6[0..=3], bb7[0..=2], bb8[0..=5]}
+| '_#3r live at {bb2[0]}
+| '_#4r live at {bb2[1..=3]}
+| '_#5r live at {bb2[4..=8], bb3[0], bb5[0..=2]}
+| '_#3r: '_#4r due to Assignment at Single(bb2[0])
+| '_#4r: '_#5r due to Assignment at Single(bb2[3])
+|
+fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/region-subtyping-basic.rs:16:11: 16:11
+ let mut _1: [usize; Const { ty: usize, val: Value(Scalar(0x00000003)) }]; // in scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14
+ let _3: usize; // in scope 0 at $DIR/region-subtyping-basic.rs:18:16: 18:17
+ let mut _4: usize; // in scope 0 at $DIR/region-subtyping-basic.rs:18:14: 18:18
+ let mut _5: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:18:14: 18:18
+ let mut _7: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:20:8: 20:12
+ let _8: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:21:9: 21:18
+ let mut _9: usize; // in scope 0 at $DIR/region-subtyping-basic.rs:21:15: 21:17
+ let _10: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:23:9: 23:18
+ scope 1 {
+ debug v => _1; // in scope 1 at $DIR/region-subtyping-basic.rs:17:9: 17:14
+ let _2: &'_#4r usize; // in scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10
+ scope 2 {
+ debug p => _2; // in scope 2 at $DIR/region-subtyping-basic.rs:18:9: 18:10
+ let _6: &'_#5r usize; // in scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10
+ scope 3 {
+ debug q => _6; // in scope 3 at $DIR/region-subtyping-basic.rs:19:9: 19:10
+ }
+ }
+ }
+
+ bb0: {
+ StorageLive(_1); // bb0[0]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14
+ _1 = [const Const(Value(Scalar(0x00000001)): usize), const Const(Value(Scalar(0x00000002)): usize), const Const(Value(Scalar(0x00000003)): usize)]; // bb0[1]: scope 0 at $DIR/region-subtyping-basic.rs:17:17: 17:26
+ FakeRead(ForLet, _1); // bb0[2]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14
+ StorageLive(_2); // bb0[3]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10
+ StorageLive(_3); // bb0[4]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17
+ _3 = const Const(Value(Scalar(0x00000000)): usize); // bb0[5]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17
+ _4 = Len(_1); // bb0[6]: scope 1 at $DIR/region-subtyping-basic.rs:18:14: 18:18
+ _5 = Lt(_3, _4); // bb0[7]: scope 1 at $DIR/region-subtyping-basic.rs:18:14: 18:18
+ assert(move _5, "index out of bounds: the len is {} but the index is {}", move _4, _3) -> [success: bb2, unwind: bb1]; // bb0[8]: scope 1 at $DIR/region-subtyping-basic.rs:18:14: 18:18
+ }
+
+ bb1 (cleanup): {
+ resume; // bb1[0]: scope 0 at $DIR/region-subtyping-basic.rs:16:1: 25:2
+ }
+
+ bb2: {
+ _2 = &'_#3r _1[_3]; // bb2[0]: scope 1 at $DIR/region-subtyping-basic.rs:18:13: 18:18
+ FakeRead(ForLet, _2); // bb2[1]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10
+ StorageLive(_6); // bb2[2]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10
+ _6 = _2; // bb2[3]: scope 2 at $DIR/region-subtyping-basic.rs:19:13: 19:14
+ FakeRead(ForLet, _6); // bb2[4]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10
+ StorageLive(_7); // bb2[5]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12
+ _7 = const Const(Value(Scalar(0x01)): bool); // bb2[6]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12
+ FakeRead(ForMatchedPlace, _7); // bb2[7]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12
+ switchInt(_7) -> [Const(Value(Scalar(0x00)): bool): bb4, otherwise: bb3]; // bb2[8]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
+ }
+
+ bb3: {
+ falseEdge -> [real: bb5, imaginary: bb4]; // bb3[0]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
+ }
+
+ bb4: {
+ StorageLive(_10); // bb4[0]: scope 3 at $DIR/region-subtyping-basic.rs:23:9: 23:18
+ _10 = Const(Value(Scalar(<ZST>)): fn(usize) -> bool {use_x})(const Const(Value(Scalar(0x00000016)): usize)) -> [return: bb7, unwind: bb1]; // bb4[1]: scope 3 at $DIR/region-subtyping-basic.rs:23:9: 23:18
+ // mir::Constant
+ // + span: $DIR/region-subtyping-basic.rs:23:9: 23:14
+ // + literal: Const { ty: fn(usize) -> bool {use_x}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb5: {
+ StorageLive(_8); // bb5[0]: scope 3 at $DIR/region-subtyping-basic.rs:21:9: 21:18
+ StorageLive(_9); // bb5[1]: scope 3 at $DIR/region-subtyping-basic.rs:21:15: 21:17
+ _9 = (*_6); // bb5[2]: scope 3 at $DIR/region-subtyping-basic.rs:21:15: 21:17
+ _8 = Const(Value(Scalar(<ZST>)): fn(usize) -> bool {use_x})(move _9) -> [return: bb6, unwind: bb1]; // bb5[3]: scope 3 at $DIR/region-subtyping-basic.rs:21:9: 21:18
+ // mir::Constant
+ // + span: $DIR/region-subtyping-basic.rs:21:9: 21:14
+ // + literal: Const { ty: fn(usize) -> bool {use_x}, val: Value(Scalar(<ZST>)) }
+ }
+
+ bb6: {
+ StorageDead(_9); // bb6[0]: scope 3 at $DIR/region-subtyping-basic.rs:21:17: 21:18
+ StorageDead(_8); // bb6[1]: scope 3 at $DIR/region-subtyping-basic.rs:21:18: 21:19
+ _0 = const Const(Value(Scalar(<ZST>)): ()); // bb6[2]: scope 3 at $DIR/region-subtyping-basic.rs:20:13: 22:6
+ goto -> bb8; // bb6[3]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
+ }
+
+ bb7: {
+ StorageDead(_10); // bb7[0]: scope 3 at $DIR/region-subtyping-basic.rs:23:18: 23:19
+ _0 = const Const(Value(Scalar(<ZST>)): ()); // bb7[1]: scope 3 at $DIR/region-subtyping-basic.rs:22:12: 24:6
+ goto -> bb8; // bb7[2]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
+ }
+
+ bb8: {
+ StorageDead(_6); // bb8[0]: scope 2 at $DIR/region-subtyping-basic.rs:25:1: 25:2
+ StorageDead(_3); // bb8[1]: scope 1 at $DIR/region-subtyping-basic.rs:25:1: 25:2
+ StorageDead(_2); // bb8[2]: scope 1 at $DIR/region-subtyping-basic.rs:25:1: 25:2
+ StorageDead(_1); // bb8[3]: scope 0 at $DIR/region-subtyping-basic.rs:25:1: 25:2
+ StorageDead(_7); // bb8[4]: scope 0 at $DIR/region-subtyping-basic.rs:25:1: 25:2
+ return; // bb8[5]: scope 0 at $DIR/region-subtyping-basic.rs:25:2: 25:2
+ }
+}
+++ /dev/null
-// MIR for `main` 0 nll
-
-| Free Region Mapping
-| '_#0r | Global | ['_#0r, '_#1r]
-| '_#1r | Local | ['_#1r]
-|
-| Inferred Region Values
-| '_#0r | U0 | {bb0[0..=8], bb1[0], bb2[0..=8], bb3[0], bb4[0..=1], bb5[0..=3], bb6[0..=3], bb7[0..=2], bb8[0..=5], '_#0r, '_#1r}
-| '_#1r | U0 | {bb0[0..=8], bb1[0], bb2[0..=8], bb3[0], bb4[0..=1], bb5[0..=3], bb6[0..=3], bb7[0..=2], bb8[0..=5], '_#1r}
-| '_#2r | U0 | {}
-| '_#3r | U0 | {bb2[0..=8], bb3[0], bb5[0..=2]}
-| '_#4r | U0 | {bb2[1..=8], bb3[0], bb5[0..=2]}
-| '_#5r | U0 | {bb2[4..=8], bb3[0], bb5[0..=2]}
-|
-| Inference Constraints
-| '_#0r live at {bb0[0..=8], bb1[0], bb2[0..=8], bb3[0], bb4[0..=1], bb5[0..=3], bb6[0..=3], bb7[0..=2], bb8[0..=5]}
-| '_#1r live at {bb0[0..=8], bb1[0], bb2[0..=8], bb3[0], bb4[0..=1], bb5[0..=3], bb6[0..=3], bb7[0..=2], bb8[0..=5]}
-| '_#3r live at {bb2[0]}
-| '_#4r live at {bb2[1..=3]}
-| '_#5r live at {bb2[4..=8], bb3[0], bb5[0..=2]}
-| '_#3r: '_#4r due to Assignment at Single(bb2[0])
-| '_#4r: '_#5r due to Assignment at Single(bb2[3])
-|
-fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/region-subtyping-basic.rs:16:11: 16:11
- let mut _1: [usize; Const { ty: usize, val: Value(Scalar(0x00000003)) }]; // in scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14
- let _3: usize; // in scope 0 at $DIR/region-subtyping-basic.rs:18:16: 18:17
- let mut _4: usize; // in scope 0 at $DIR/region-subtyping-basic.rs:18:14: 18:18
- let mut _5: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:18:14: 18:18
- let mut _7: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:20:8: 20:12
- let _8: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:21:9: 21:18
- let mut _9: usize; // in scope 0 at $DIR/region-subtyping-basic.rs:21:15: 21:17
- let _10: bool; // in scope 0 at $DIR/region-subtyping-basic.rs:23:9: 23:18
- scope 1 {
- debug v => _1; // in scope 1 at $DIR/region-subtyping-basic.rs:17:9: 17:14
- let _2: &'_#4r usize; // in scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10
- scope 2 {
- debug p => _2; // in scope 2 at $DIR/region-subtyping-basic.rs:18:9: 18:10
- let _6: &'_#5r usize; // in scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10
- scope 3 {
- debug q => _6; // in scope 3 at $DIR/region-subtyping-basic.rs:19:9: 19:10
- }
- }
- }
-
- bb0: {
- StorageLive(_1); // bb0[0]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14
- _1 = [const Const(Value(Scalar(0x00000001)): usize), const Const(Value(Scalar(0x00000002)): usize), const Const(Value(Scalar(0x00000003)): usize)]; // bb0[1]: scope 0 at $DIR/region-subtyping-basic.rs:17:17: 17:26
- FakeRead(ForLet, _1); // bb0[2]: scope 0 at $DIR/region-subtyping-basic.rs:17:9: 17:14
- StorageLive(_2); // bb0[3]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10
- StorageLive(_3); // bb0[4]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17
- _3 = const Const(Value(Scalar(0x00000000)): usize); // bb0[5]: scope 1 at $DIR/region-subtyping-basic.rs:18:16: 18:17
- _4 = Len(_1); // bb0[6]: scope 1 at $DIR/region-subtyping-basic.rs:18:14: 18:18
- _5 = Lt(_3, _4); // bb0[7]: scope 1 at $DIR/region-subtyping-basic.rs:18:14: 18:18
- assert(move _5, "index out of bounds: the len is {} but the index is {}", move _4, _3) -> [success: bb2, unwind: bb1]; // bb0[8]: scope 1 at $DIR/region-subtyping-basic.rs:18:14: 18:18
- }
-
- bb1 (cleanup): {
- resume; // bb1[0]: scope 0 at $DIR/region-subtyping-basic.rs:16:1: 25:2
- }
-
- bb2: {
- _2 = &'_#3r _1[_3]; // bb2[0]: scope 1 at $DIR/region-subtyping-basic.rs:18:13: 18:18
- FakeRead(ForLet, _2); // bb2[1]: scope 1 at $DIR/region-subtyping-basic.rs:18:9: 18:10
- StorageLive(_6); // bb2[2]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10
- _6 = _2; // bb2[3]: scope 2 at $DIR/region-subtyping-basic.rs:19:13: 19:14
- FakeRead(ForLet, _6); // bb2[4]: scope 2 at $DIR/region-subtyping-basic.rs:19:9: 19:10
- StorageLive(_7); // bb2[5]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12
- _7 = const Const(Value(Scalar(0x01)): bool); // bb2[6]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12
- FakeRead(ForMatchedPlace, _7); // bb2[7]: scope 3 at $DIR/region-subtyping-basic.rs:20:8: 20:12
- switchInt(_7) -> [Const(Value(Scalar(0x00)): bool): bb4, otherwise: bb3]; // bb2[8]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
- }
-
- bb3: {
- falseEdge -> [real: bb5, imaginary: bb4]; // bb3[0]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
- }
-
- bb4: {
- StorageLive(_10); // bb4[0]: scope 3 at $DIR/region-subtyping-basic.rs:23:9: 23:18
- _10 = Const(Value(Scalar(<ZST>)): fn(usize) -> bool {use_x})(const Const(Value(Scalar(0x00000016)): usize)) -> [return: bb7, unwind: bb1]; // bb4[1]: scope 3 at $DIR/region-subtyping-basic.rs:23:9: 23:18
- // mir::Constant
- // + span: $DIR/region-subtyping-basic.rs:23:9: 23:14
- // + literal: Const { ty: fn(usize) -> bool {use_x}, val: Value(Scalar(<ZST>)) }
- }
-
- bb5: {
- StorageLive(_8); // bb5[0]: scope 3 at $DIR/region-subtyping-basic.rs:21:9: 21:18
- StorageLive(_9); // bb5[1]: scope 3 at $DIR/region-subtyping-basic.rs:21:15: 21:17
- _9 = (*_6); // bb5[2]: scope 3 at $DIR/region-subtyping-basic.rs:21:15: 21:17
- _8 = Const(Value(Scalar(<ZST>)): fn(usize) -> bool {use_x})(move _9) -> [return: bb6, unwind: bb1]; // bb5[3]: scope 3 at $DIR/region-subtyping-basic.rs:21:9: 21:18
- // mir::Constant
- // + span: $DIR/region-subtyping-basic.rs:21:9: 21:14
- // + literal: Const { ty: fn(usize) -> bool {use_x}, val: Value(Scalar(<ZST>)) }
- }
-
- bb6: {
- StorageDead(_9); // bb6[0]: scope 3 at $DIR/region-subtyping-basic.rs:21:17: 21:18
- StorageDead(_8); // bb6[1]: scope 3 at $DIR/region-subtyping-basic.rs:21:18: 21:19
- _0 = const Const(Value(Scalar(<ZST>)): ()); // bb6[2]: scope 3 at $DIR/region-subtyping-basic.rs:20:13: 22:6
- goto -> bb8; // bb6[3]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
- }
-
- bb7: {
- StorageDead(_10); // bb7[0]: scope 3 at $DIR/region-subtyping-basic.rs:23:18: 23:19
- _0 = const Const(Value(Scalar(<ZST>)): ()); // bb7[1]: scope 3 at $DIR/region-subtyping-basic.rs:22:12: 24:6
- goto -> bb8; // bb7[2]: scope 3 at $DIR/region-subtyping-basic.rs:20:5: 24:6
- }
-
- bb8: {
- StorageDead(_6); // bb8[0]: scope 2 at $DIR/region-subtyping-basic.rs:25:1: 25:2
- StorageDead(_3); // bb8[1]: scope 1 at $DIR/region-subtyping-basic.rs:25:1: 25:2
- StorageDead(_2); // bb8[2]: scope 1 at $DIR/region-subtyping-basic.rs:25:1: 25:2
- StorageDead(_1); // bb8[3]: scope 0 at $DIR/region-subtyping-basic.rs:25:1: 25:2
- StorageDead(_7); // bb8[4]: scope 0 at $DIR/region-subtyping-basic.rs:25:1: 25:2
- return; // bb8[5]: scope 0 at $DIR/region-subtyping-basic.rs:25:2: 25:2
- }
-}
--- /dev/null
+// MIR for `main` after SimplifyCfg-elaborate-drops
+
+fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/packed-struct-drop-aligned.rs:5:11: 5:11
+ let mut _1: Packed; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:6:9: 6:14
+ let mut _2: Aligned; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:6:24: 6:42
+ let mut _3: Droppy; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:6:32: 6:41
+ let mut _4: Aligned; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:7:11: 7:29
+ let mut _5: Droppy; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:7:19: 7:28
+ let mut _6: Aligned; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
+ scope 1 {
+ debug x => _1; // in scope 1 at $DIR/packed-struct-drop-aligned.rs:6:9: 6:14
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:9: 6:14
+ StorageLive(_2); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:24: 6:42
+ StorageLive(_3); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:32: 6:41
+ _3 = Droppy(const 0_usize); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:32: 6:41
+ _2 = Aligned(move _3); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:24: 6:42
+ StorageDead(_3); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:41: 6:42
+ _1 = Packed(move _2); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:17: 6:43
+ StorageDead(_2); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:42: 6:43
+ StorageLive(_4); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:11: 7:29
+ StorageLive(_5); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:19: 7:28
+ _5 = Droppy(const 0_usize); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:19: 7:28
+ _4 = Aligned(move _5); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:11: 7:29
+ StorageDead(_5); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:28: 7:29
+ StorageLive(_6); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
+ _6 = move (_1.0: Aligned); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
+ drop(_6) -> [return: bb4, unwind: bb3]; // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
+ }
+
+ bb1 (cleanup): {
+ resume; // scope 0 at $DIR/packed-struct-drop-aligned.rs:5:1: 8:2
+ }
+
+ bb2: {
+ StorageDead(_1); // scope 0 at $DIR/packed-struct-drop-aligned.rs:8:1: 8:2
+ return; // scope 0 at $DIR/packed-struct-drop-aligned.rs:8:2: 8:2
+ }
+
+ bb3 (cleanup): {
+ (_1.0: Aligned) = move _4; // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
+ drop(_1) -> bb1; // scope 0 at $DIR/packed-struct-drop-aligned.rs:8:1: 8:2
+ }
+
+ bb4: {
+ StorageDead(_6); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
+ (_1.0: Aligned) = move _4; // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
+ StorageDead(_4); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:28: 7:29
+ _0 = const (); // scope 0 at $DIR/packed-struct-drop-aligned.rs:5:11: 8:2
+ drop(_1) -> [return: bb2, unwind: bb1]; // scope 0 at $DIR/packed-struct-drop-aligned.rs:8:1: 8:2
+ }
+}
+++ /dev/null
-// MIR for `main` after SimplifyCfg-elaborate-drops
-
-fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/packed-struct-drop-aligned.rs:5:11: 5:11
- let mut _1: Packed; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:6:9: 6:14
- let mut _2: Aligned; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:6:24: 6:42
- let mut _3: Droppy; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:6:32: 6:41
- let mut _4: Aligned; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:7:11: 7:29
- let mut _5: Droppy; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:7:19: 7:28
- let mut _6: Aligned; // in scope 0 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
- scope 1 {
- debug x => _1; // in scope 1 at $DIR/packed-struct-drop-aligned.rs:6:9: 6:14
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:9: 6:14
- StorageLive(_2); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:24: 6:42
- StorageLive(_3); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:32: 6:41
- _3 = Droppy(const 0_usize); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:32: 6:41
- _2 = Aligned(move _3); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:24: 6:42
- StorageDead(_3); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:41: 6:42
- _1 = Packed(move _2); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:17: 6:43
- StorageDead(_2); // scope 0 at $DIR/packed-struct-drop-aligned.rs:6:42: 6:43
- StorageLive(_4); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:11: 7:29
- StorageLive(_5); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:19: 7:28
- _5 = Droppy(const 0_usize); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:19: 7:28
- _4 = Aligned(move _5); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:11: 7:29
- StorageDead(_5); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:28: 7:29
- StorageLive(_6); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
- _6 = move (_1.0: Aligned); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
- drop(_6) -> [return: bb4, unwind: bb3]; // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
- }
-
- bb1 (cleanup): {
- resume; // scope 0 at $DIR/packed-struct-drop-aligned.rs:5:1: 8:2
- }
-
- bb2: {
- StorageDead(_1); // scope 0 at $DIR/packed-struct-drop-aligned.rs:8:1: 8:2
- return; // scope 0 at $DIR/packed-struct-drop-aligned.rs:8:2: 8:2
- }
-
- bb3 (cleanup): {
- (_1.0: Aligned) = move _4; // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
- drop(_1) -> bb1; // scope 0 at $DIR/packed-struct-drop-aligned.rs:8:1: 8:2
- }
-
- bb4: {
- StorageDead(_6); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
- (_1.0: Aligned) = move _4; // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:5: 7:8
- StorageDead(_4); // scope 1 at $DIR/packed-struct-drop-aligned.rs:7:28: 7:29
- _0 = const (); // scope 0 at $DIR/packed-struct-drop-aligned.rs:5:11: 8:2
- drop(_1) -> [return: bb2, unwind: bb1]; // scope 0 at $DIR/packed-struct-drop-aligned.rs:8:1: 8:2
- }
-}
--- /dev/null
+// MIR for `match_bool` 0 mir_map
+
+fn match_bool(_1: bool) -> usize {
+ debug x => _1; // in scope 0 at $DIR/simple-match.rs:5:15: 5:16
+ let mut _0: usize; // return place in scope 0 at $DIR/simple-match.rs:5:27: 5:32
+
+ bb0: {
+ FakeRead(ForMatchedPlace, _1); // scope 0 at $DIR/simple-match.rs:6:11: 6:12
+ switchInt(_1) -> [false: bb3, otherwise: bb2]; // scope 0 at $DIR/simple-match.rs:7:9: 7:13
+ }
+
+ bb1 (cleanup): {
+ resume; // scope 0 at $DIR/simple-match.rs:5:1: 10:2
+ }
+
+ bb2: {
+ falseEdge -> [real: bb4, imaginary: bb3]; // scope 0 at $DIR/simple-match.rs:7:9: 7:13
+ }
+
+ bb3: {
+ _0 = const 20_usize; // scope 0 at $DIR/simple-match.rs:8:14: 8:16
+ goto -> bb5; // scope 0 at $DIR/simple-match.rs:6:5: 9:6
+ }
+
+ bb4: {
+ _0 = const 10_usize; // scope 0 at $DIR/simple-match.rs:7:17: 7:19
+ goto -> bb5; // scope 0 at $DIR/simple-match.rs:6:5: 9:6
+ }
+
+ bb5: {
+ goto -> bb6; // scope 0 at $DIR/simple-match.rs:10:2: 10:2
+ }
+
+ bb6: {
+ return; // scope 0 at $DIR/simple-match.rs:10:2: 10:2
+ }
+}
+++ /dev/null
-// MIR for `match_bool` 0 mir_map
-
-fn match_bool(_1: bool) -> usize {
- debug x => _1; // in scope 0 at $DIR/simple-match.rs:5:15: 5:16
- let mut _0: usize; // return place in scope 0 at $DIR/simple-match.rs:5:27: 5:32
-
- bb0: {
- FakeRead(ForMatchedPlace, _1); // scope 0 at $DIR/simple-match.rs:6:11: 6:12
- switchInt(_1) -> [false: bb3, otherwise: bb2]; // scope 0 at $DIR/simple-match.rs:7:9: 7:13
- }
-
- bb1 (cleanup): {
- resume; // scope 0 at $DIR/simple-match.rs:5:1: 10:2
- }
-
- bb2: {
- falseEdge -> [real: bb4, imaginary: bb3]; // scope 0 at $DIR/simple-match.rs:7:9: 7:13
- }
-
- bb3: {
- _0 = const 20_usize; // scope 0 at $DIR/simple-match.rs:8:14: 8:16
- goto -> bb5; // scope 0 at $DIR/simple-match.rs:6:5: 9:6
- }
-
- bb4: {
- _0 = const 10_usize; // scope 0 at $DIR/simple-match.rs:7:17: 7:19
- goto -> bb5; // scope 0 at $DIR/simple-match.rs:6:5: 9:6
- }
-
- bb5: {
- goto -> bb6; // scope 0 at $DIR/simple-match.rs:10:2: 10:2
- }
-
- bb6: {
- return; // scope 0 at $DIR/simple-match.rs:10:2: 10:2
- }
-}
--- /dev/null
+- // MIR for `main` before SimplifyArmIdentity
++ // MIR for `main` after SimplifyArmIdentity
+
+ fn main() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/simplify-arm-identity.rs:17:11: 17:11
+ let _1: Src; // in scope 0 at $DIR/simplify-arm-identity.rs:18:9: 18:10
+ let mut _2: Dst; // in scope 0 at $DIR/simplify-arm-identity.rs:19:18: 22:6
+ let mut _3: isize; // in scope 0 at $DIR/simplify-arm-identity.rs:20:9: 20:20
+ let mut _5: u8; // in scope 0 at $DIR/simplify-arm-identity.rs:20:33: 20:34
+ scope 1 {
+ debug e => _1; // in scope 1 at $DIR/simplify-arm-identity.rs:18:9: 18:10
+ let _4: u8; // in scope 1 at $DIR/simplify-arm-identity.rs:20:18: 20:19
+ scope 2 {
+ }
+ scope 3 {
+ debug x => _4; // in scope 3 at $DIR/simplify-arm-identity.rs:20:18: 20:19
+ }
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/simplify-arm-identity.rs:18:9: 18:10
+ ((_1 as Foo).0: u8) = const 0_u8; // scope 0 at $DIR/simplify-arm-identity.rs:18:18: 18:29
+ discriminant(_1) = 0; // scope 0 at $DIR/simplify-arm-identity.rs:18:18: 18:29
+ StorageLive(_2); // scope 1 at $DIR/simplify-arm-identity.rs:19:18: 22:6
+ _3 = const 0_isize; // scope 1 at $DIR/simplify-arm-identity.rs:20:9: 20:20
+ goto -> bb3; // scope 1 at $DIR/simplify-arm-identity.rs:20:9: 20:20
+ }
+
+ bb1: {
+ ((_2 as Foo).0: u8) = const 0_u8; // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
+ discriminant(_2) = 0; // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
+ goto -> bb4; // scope 1 at $DIR/simplify-arm-identity.rs:19:18: 22:6
+ }
+
+ bb2: {
+ unreachable; // scope 1 at $DIR/simplify-arm-identity.rs:19:24: 19:25
+ }
+
+ bb3: {
+ StorageLive(_4); // scope 1 at $DIR/simplify-arm-identity.rs:20:18: 20:19
+ _4 = ((_1 as Foo).0: u8); // scope 1 at $DIR/simplify-arm-identity.rs:20:18: 20:19
+ StorageLive(_5); // scope 3 at $DIR/simplify-arm-identity.rs:20:33: 20:34
+ _5 = _4; // scope 3 at $DIR/simplify-arm-identity.rs:20:33: 20:34
+ ((_2 as Foo).0: u8) = move _5; // scope 3 at $DIR/simplify-arm-identity.rs:20:24: 20:35
+ discriminant(_2) = 0; // scope 3 at $DIR/simplify-arm-identity.rs:20:24: 20:35
+ StorageDead(_5); // scope 3 at $DIR/simplify-arm-identity.rs:20:34: 20:35
+ StorageDead(_4); // scope 1 at $DIR/simplify-arm-identity.rs:20:34: 20:35
+ goto -> bb4; // scope 1 at $DIR/simplify-arm-identity.rs:19:18: 22:6
+ }
+
+ bb4: {
+ StorageDead(_2); // scope 1 at $DIR/simplify-arm-identity.rs:22:6: 22:7
+ _0 = const (); // scope 0 at $DIR/simplify-arm-identity.rs:17:11: 23:2
+ StorageDead(_1); // scope 0 at $DIR/simplify-arm-identity.rs:23:1: 23:2
+ return; // scope 0 at $DIR/simplify-arm-identity.rs:23:2: 23:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `main` before SimplifyArmIdentity
-+ // MIR for `main` after SimplifyArmIdentity
-
- fn main() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/simplify-arm-identity.rs:17:11: 17:11
- let _1: Src; // in scope 0 at $DIR/simplify-arm-identity.rs:18:9: 18:10
- let mut _2: Dst; // in scope 0 at $DIR/simplify-arm-identity.rs:19:18: 22:6
- let mut _3: isize; // in scope 0 at $DIR/simplify-arm-identity.rs:20:9: 20:20
- let mut _5: u8; // in scope 0 at $DIR/simplify-arm-identity.rs:20:33: 20:34
- scope 1 {
- debug e => _1; // in scope 1 at $DIR/simplify-arm-identity.rs:18:9: 18:10
- let _4: u8; // in scope 1 at $DIR/simplify-arm-identity.rs:20:18: 20:19
- scope 2 {
- }
- scope 3 {
- debug x => _4; // in scope 3 at $DIR/simplify-arm-identity.rs:20:18: 20:19
- }
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/simplify-arm-identity.rs:18:9: 18:10
- ((_1 as Foo).0: u8) = const 0_u8; // scope 0 at $DIR/simplify-arm-identity.rs:18:18: 18:29
- discriminant(_1) = 0; // scope 0 at $DIR/simplify-arm-identity.rs:18:18: 18:29
- StorageLive(_2); // scope 1 at $DIR/simplify-arm-identity.rs:19:18: 22:6
- _3 = const 0_isize; // scope 1 at $DIR/simplify-arm-identity.rs:20:9: 20:20
- goto -> bb3; // scope 1 at $DIR/simplify-arm-identity.rs:20:9: 20:20
- }
-
- bb1: {
- ((_2 as Foo).0: u8) = const 0_u8; // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
- discriminant(_2) = 0; // scope 1 at $DIR/simplify-arm-identity.rs:21:21: 21:32
- goto -> bb4; // scope 1 at $DIR/simplify-arm-identity.rs:19:18: 22:6
- }
-
- bb2: {
- unreachable; // scope 1 at $DIR/simplify-arm-identity.rs:19:24: 19:25
- }
-
- bb3: {
- StorageLive(_4); // scope 1 at $DIR/simplify-arm-identity.rs:20:18: 20:19
- _4 = ((_1 as Foo).0: u8); // scope 1 at $DIR/simplify-arm-identity.rs:20:18: 20:19
- StorageLive(_5); // scope 3 at $DIR/simplify-arm-identity.rs:20:33: 20:34
- _5 = _4; // scope 3 at $DIR/simplify-arm-identity.rs:20:33: 20:34
- ((_2 as Foo).0: u8) = move _5; // scope 3 at $DIR/simplify-arm-identity.rs:20:24: 20:35
- discriminant(_2) = 0; // scope 3 at $DIR/simplify-arm-identity.rs:20:24: 20:35
- StorageDead(_5); // scope 3 at $DIR/simplify-arm-identity.rs:20:34: 20:35
- StorageDead(_4); // scope 1 at $DIR/simplify-arm-identity.rs:20:34: 20:35
- goto -> bb4; // scope 1 at $DIR/simplify-arm-identity.rs:19:18: 22:6
- }
-
- bb4: {
- StorageDead(_2); // scope 1 at $DIR/simplify-arm-identity.rs:22:6: 22:7
- _0 = const (); // scope 0 at $DIR/simplify-arm-identity.rs:17:11: 23:2
- StorageDead(_1); // scope 0 at $DIR/simplify-arm-identity.rs:23:1: 23:2
- return; // scope 0 at $DIR/simplify-arm-identity.rs:23:2: 23:2
- }
- }
-
--- /dev/null
+- // MIR for `map` before SimplifyLocals
++ // MIR for `map` after SimplifyLocals
+
+ fn map(_1: Option<Box<()>>) -> Option<Box<()>> {
+ debug x => _1; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:1:8: 1:9
+ let mut _0: std::option::Option<std::boxed::Box<()>>; // return place in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:1:31: 1:46
+- let mut _2: isize; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
+- let _3: std::boxed::Box<()>; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:14: 4:15
+- let mut _4: std::boxed::Box<()>; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:25: 4:26
+- let mut _5: bool; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
+- let mut _6: isize; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
+- let mut _7: isize; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
+ scope 1 {
+ debug x => ((_0 as Some).0: std::boxed::Box<()>); // in scope 1 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:14: 4:15
+ }
+
+ bb0: {
+- _5 = const false; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
+- _5 = const true; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
+- _2 = discriminant(_1); // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
+ _0 = move _1; // scope 1 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:20: 4:27
+- _6 = discriminant(_1); // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
+ return; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:2: 6:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `map` before SimplifyLocals
-+ // MIR for `map` after SimplifyLocals
-
- fn map(_1: Option<Box<()>>) -> Option<Box<()>> {
- debug x => _1; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:1:8: 1:9
- let mut _0: std::option::Option<std::boxed::Box<()>>; // return place in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:1:31: 1:46
-- let mut _2: isize; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
-- let _3: std::boxed::Box<()>; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:14: 4:15
-- let mut _4: std::boxed::Box<()>; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:25: 4:26
-- let mut _5: bool; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
-- let mut _6: isize; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
-- let mut _7: isize; // in scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
- scope 1 {
- debug x => ((_0 as Some).0: std::boxed::Box<()>); // in scope 1 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:14: 4:15
- }
-
- bb0: {
-- _5 = const false; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
-- _5 = const true; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
-- _2 = discriminant(_1); // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:3:9: 3:13
- _0 = move _1; // scope 1 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:4:20: 4:27
-- _6 = discriminant(_1); // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:1: 6:2
- return; // scope 0 at $DIR/simplify-locals-removes-unused-discriminant-reads.rs:6:2: 6:2
- }
- }
-
--- /dev/null
+// MIR for `drop_in_place` before AddMovesForPackedDrops
+
+fn drop_in_place(_1: *mut [String]) -> () {
+ let mut _0: (); // return place in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _2: usize; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _3: usize; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _4: usize; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _5: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _6: bool; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _7: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _8: bool; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _9: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _10: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _11: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _12: bool; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _13: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _14: bool; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _15: *mut [std::string::String]; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+
+ bb0: {
+ goto -> bb15; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb1: {
+ return; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb2 (cleanup): {
+ resume; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb3 (cleanup): {
+ _5 = &raw mut (*_1)[_4]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ _4 = Add(move _4, const 1_usize); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ drop((*_5)) -> bb4; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb4 (cleanup): {
+ _6 = Eq(_4, _3); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ switchInt(move _6) -> [false: bb3, otherwise: bb2]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb5: {
+ _7 = &raw mut (*_1)[_4]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ _4 = Add(move _4, const 1_usize); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ drop((*_7)) -> [return: bb6, unwind: bb4]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb6: {
+ _8 = Eq(_4, _3); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ switchInt(move _8) -> [false: bb5, otherwise: bb1]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb7: {
+ _4 = const 0_usize; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ goto -> bb6; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb8: {
+ goto -> bb7; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb9 (cleanup): {
+ _11 = _9; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ _9 = Offset(move _9, const 1_usize); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ drop((*_11)) -> bb10; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb10 (cleanup): {
+ _12 = Eq(_9, _10); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ switchInt(move _12) -> [false: bb9, otherwise: bb2]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb11: {
+ _13 = _9; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ _9 = Offset(move _9, const 1_usize); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ drop((*_13)) -> [return: bb12, unwind: bb10]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb12: {
+ _14 = Eq(_9, _10); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ switchInt(move _14) -> [false: bb11, otherwise: bb1]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb13: {
+ _15 = &raw mut (*_1); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ _9 = move _15 as *mut std::string::String (Misc); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ _10 = Offset(_9, move _3); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ goto -> bb12; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb14: {
+ goto -> bb13; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb15: {
+ _2 = SizeOf(std::string::String); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ _3 = Len((*_1)); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ switchInt(move _2) -> [0_usize: bb8, otherwise: bb14]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+}
+++ /dev/null
-// MIR for `drop_in_place` before AddMovesForPackedDrops
-
-fn drop_in_place(_1: *mut [String]) -> () {
- let mut _0: (); // return place in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _2: usize; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _3: usize; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _4: usize; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _5: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _6: bool; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _7: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _8: bool; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _9: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _10: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _11: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _12: bool; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _13: *mut std::string::String; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _14: bool; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _15: *mut [std::string::String]; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
-
- bb0: {
- goto -> bb15; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb1: {
- return; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb2 (cleanup): {
- resume; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb3 (cleanup): {
- _5 = &raw mut (*_1)[_4]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- _4 = Add(move _4, const 1_usize); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- drop((*_5)) -> bb4; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb4 (cleanup): {
- _6 = Eq(_4, _3); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- switchInt(move _6) -> [false: bb3, otherwise: bb2]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb5: {
- _7 = &raw mut (*_1)[_4]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- _4 = Add(move _4, const 1_usize); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- drop((*_7)) -> [return: bb6, unwind: bb4]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb6: {
- _8 = Eq(_4, _3); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- switchInt(move _8) -> [false: bb5, otherwise: bb1]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb7: {
- _4 = const 0_usize; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- goto -> bb6; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb8: {
- goto -> bb7; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb9 (cleanup): {
- _11 = _9; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- _9 = Offset(move _9, const 1_usize); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- drop((*_11)) -> bb10; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb10 (cleanup): {
- _12 = Eq(_9, _10); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- switchInt(move _12) -> [false: bb9, otherwise: bb2]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb11: {
- _13 = _9; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- _9 = Offset(move _9, const 1_usize); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- drop((*_13)) -> [return: bb12, unwind: bb10]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb12: {
- _14 = Eq(_9, _10); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- switchInt(move _14) -> [false: bb11, otherwise: bb1]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb13: {
- _15 = &raw mut (*_1); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- _9 = move _15 as *mut std::string::String (Misc); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- _10 = Offset(_9, move _3); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- goto -> bb12; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb14: {
- goto -> bb13; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb15: {
- _2 = SizeOf(std::string::String); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- _3 = Len((*_1)); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- switchInt(move _2) -> [0_usize: bb8, otherwise: bb14]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-}
--- /dev/null
+// MIR for `E::V::{{constant}}#0` 0 mir_map
+
+E::V::{{constant}}#0: isize = {
+ let mut _0: isize; // return place in scope 0 at $DIR/unusual-item-types.rs:22:9: 22:10
+
+ bb0: {
+ _0 = const 5_isize; // scope 0 at $DIR/unusual-item-types.rs:22:9: 22:10
+ return; // scope 0 at $DIR/unusual-item-types.rs:22:9: 22:10
+ }
+
+ bb1 (cleanup): {
+ resume; // scope 0 at $DIR/unusual-item-types.rs:22:9: 22:10
+ }
+}
+++ /dev/null
-// MIR for `E::V::{{constant}}#0` 0 mir_map
-
-E::V::{{constant}}#0: isize = {
- let mut _0: isize; // return place in scope 0 at $DIR/unusual-item-types.rs:22:9: 22:10
-
- bb0: {
- _0 = const 5_isize; // scope 0 at $DIR/unusual-item-types.rs:22:9: 22:10
- return; // scope 0 at $DIR/unusual-item-types.rs:22:9: 22:10
- }
-
- bb1 (cleanup): {
- resume; // scope 0 at $DIR/unusual-item-types.rs:22:9: 22:10
- }
-}
--- /dev/null
+// MIR for `Test::X` 0 mir_map
+
+fn Test::X(_1: usize) -> Test {
+ let mut _0: Test; // return place in scope 0 at $DIR/unusual-item-types.rs:16:5: 16:13
+
+ bb0: {
+ ((_0 as X).0: usize) = move _1; // scope 0 at $DIR/unusual-item-types.rs:16:5: 16:13
+ discriminant(_0) = 0; // scope 0 at $DIR/unusual-item-types.rs:16:5: 16:13
+ return; // scope 0 at $DIR/unusual-item-types.rs:16:5: 16:13
+ }
+}
+++ /dev/null
-// MIR for `Test::X` 0 mir_map
-
-fn Test::X(_1: usize) -> Test {
- let mut _0: Test; // return place in scope 0 at $DIR/unusual-item-types.rs:16:5: 16:13
-
- bb0: {
- ((_0 as X).0: usize) = move _1; // scope 0 at $DIR/unusual-item-types.rs:16:5: 16:13
- discriminant(_0) = 0; // scope 0 at $DIR/unusual-item-types.rs:16:5: 16:13
- return; // scope 0 at $DIR/unusual-item-types.rs:16:5: 16:13
- }
-}
--- /dev/null
+// MIR for `drop_in_place` before AddMovesForPackedDrops
+
+fn drop_in_place(_1: *mut Vec<i32>) -> () {
+ let mut _0: (); // return place in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _2: &mut std::vec::Vec<i32>; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _3: (); // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+
+ bb0: {
+ goto -> bb7; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb1: {
+ return; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb2 (cleanup): {
+ resume; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb3: {
+ goto -> bb1; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb4 (cleanup): {
+ goto -> bb2; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb5 (cleanup): {
+ drop(((*_1).0: alloc::raw_vec::RawVec<i32>)) -> bb4; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb6: {
+ drop(((*_1).0: alloc::raw_vec::RawVec<i32>)) -> [return: bb3, unwind: bb4]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
+
+ bb7: {
+ _2 = &mut (*_1); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ _3 = <Vec<i32> as Drop>::drop(move _2) -> [return: bb6, unwind: bb5]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ // mir::Constant
+ // + span: $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ // + literal: Const { ty: for<'r> fn(&'r mut std::vec::Vec<i32>) {<std::vec::Vec<i32> as std::ops::Drop>::drop}, val: Value(Scalar(<ZST>)) }
+ }
+}
+++ /dev/null
-// MIR for `drop_in_place` before AddMovesForPackedDrops
-
-fn drop_in_place(_1: *mut Vec<i32>) -> () {
- let mut _0: (); // return place in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _2: &mut std::vec::Vec<i32>; // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- let mut _3: (); // in scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
-
- bb0: {
- goto -> bb7; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb1: {
- return; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb2 (cleanup): {
- resume; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb3: {
- goto -> bb1; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb4 (cleanup): {
- goto -> bb2; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb5 (cleanup): {
- drop(((*_1).0: alloc::raw_vec::RawVec<i32>)) -> bb4; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb6: {
- drop(((*_1).0: alloc::raw_vec::RawVec<i32>)) -> [return: bb3, unwind: bb4]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- }
-
- bb7: {
- _2 = &mut (*_1); // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- _3 = <Vec<i32> as Drop>::drop(move _2) -> [return: bb6, unwind: bb5]; // scope 0 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- // mir::Constant
- // + span: $SRC_DIR/core/src/ptr/mod.rs:LL:COL
- // + literal: Const { ty: for<'r> fn(&'r mut std::vec::Vec<i32>) {<std::vec::Vec<i32> as std::ops::Drop>::drop}, val: Value(Scalar(<ZST>)) }
- }
-}
--- /dev/null
+// MIR for `<impl at $DIR/unusual-item-types.rs:9:1: 11:2>::ASSOCIATED_CONSTANT` 0 mir_map
+
+const <impl at $DIR/unusual-item-types.rs:9:1: 11:2>::ASSOCIATED_CONSTANT: i32 = {
+ let mut _0: i32; // return place in scope 0 at $DIR/unusual-item-types.rs:10:32: 10:35
+
+ bb0: {
+ _0 = const 2_i32; // scope 0 at $DIR/unusual-item-types.rs:10:38: 10:39
+ return; // scope 0 at $DIR/unusual-item-types.rs:10:5: 10:40
+ }
+
+ bb1 (cleanup): {
+ resume; // scope 0 at $DIR/unusual-item-types.rs:10:5: 10:40
+ }
+}
+++ /dev/null
-// MIR for `<impl at $DIR/unusual-item-types.rs:9:1: 11:2>::ASSOCIATED_CONSTANT` 0 mir_map
-
-const <impl at $DIR/unusual-item-types.rs:9:1: 11:2>::ASSOCIATED_CONSTANT: i32 = {
- let mut _0: i32; // return place in scope 0 at $DIR/unusual-item-types.rs:10:32: 10:35
-
- bb0: {
- _0 = const 2_i32; // scope 0 at $DIR/unusual-item-types.rs:10:38: 10:39
- return; // scope 0 at $DIR/unusual-item-types.rs:10:5: 10:40
- }
-
- bb1 (cleanup): {
- resume; // scope 0 at $DIR/unusual-item-types.rs:10:5: 10:40
- }
-}
--- /dev/null
+- // MIR for `change_loop_body` before ConstProp
++ // MIR for `change_loop_body` after ConstProp
+
+ fn change_loop_body() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/while_let_loops.rs:5:27: 5:27
+ let mut _1: i32; // in scope 0 at $DIR/while_let_loops.rs:6:9: 6:15
+ let mut _2: (); // in scope 0 at $DIR/while_let_loops.rs:5:1: 11:2
+ let mut _3: std::option::Option<u32>; // in scope 0 at $DIR/while_let_loops.rs:7:28: 7:32
+ let mut _4: isize; // in scope 0 at $DIR/while_let_loops.rs:7:15: 7:25
+ let mut _5: !; // in scope 0 at $DIR/while_let_loops.rs:7:33: 10:6
+ let mut _6: !; // in scope 0 at $DIR/while_let_loops.rs:7:5: 10:6
+ scope 1 {
+ debug _x => _1; // in scope 1 at $DIR/while_let_loops.rs:6:9: 6:15
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/while_let_loops.rs:6:9: 6:15
+ _1 = const 0_i32; // scope 0 at $DIR/while_let_loops.rs:6:18: 6:19
+ StorageLive(_3); // scope 1 at $DIR/while_let_loops.rs:7:28: 7:32
+ discriminant(_3) = 0; // scope 1 at $DIR/while_let_loops.rs:7:28: 7:32
+- _4 = discriminant(_3); // scope 1 at $DIR/while_let_loops.rs:7:15: 7:25
+- switchInt(move _4) -> [1_isize: bb2, otherwise: bb1]; // scope 1 at $DIR/while_let_loops.rs:7:15: 7:25
++ _4 = const 0_isize; // scope 1 at $DIR/while_let_loops.rs:7:15: 7:25
++ switchInt(const 0_isize) -> [1_isize: bb2, otherwise: bb1]; // scope 1 at $DIR/while_let_loops.rs:7:15: 7:25
+ }
+
+ bb1: {
+ _0 = const (); // scope 1 at $DIR/while_let_loops.rs:7:5: 10:6
+ goto -> bb4; // scope 1 at $DIR/while_let_loops.rs:7:5: 10:6
+ }
+
+ bb2: {
+ switchInt(((_3 as Some).0: u32)) -> [0_u32: bb3, otherwise: bb1]; // scope 1 at $DIR/while_let_loops.rs:7:20: 7:24
+ }
+
+ bb3: {
+ _1 = const 1_i32; // scope 1 at $DIR/while_let_loops.rs:8:9: 8:15
+ _0 = const (); // scope 1 at $DIR/while_let_loops.rs:9:9: 9:14
+ goto -> bb4; // scope 1 at $DIR/while_let_loops.rs:9:9: 9:14
+ }
+
+ bb4: {
+ StorageDead(_3); // scope 1 at $DIR/while_let_loops.rs:10:5: 10:6
+ StorageDead(_1); // scope 0 at $DIR/while_let_loops.rs:11:1: 11:2
+ return; // scope 0 at $DIR/while_let_loops.rs:11:2: 11:2
+ }
+ }
+
+++ /dev/null
-- // MIR for `change_loop_body` before ConstProp
-+ // MIR for `change_loop_body` after ConstProp
-
- fn change_loop_body() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/while_let_loops.rs:5:27: 5:27
- let mut _1: i32; // in scope 0 at $DIR/while_let_loops.rs:6:9: 6:15
- let mut _2: (); // in scope 0 at $DIR/while_let_loops.rs:5:1: 11:2
- let mut _3: std::option::Option<u32>; // in scope 0 at $DIR/while_let_loops.rs:7:28: 7:32
- let mut _4: isize; // in scope 0 at $DIR/while_let_loops.rs:7:15: 7:25
- let mut _5: !; // in scope 0 at $DIR/while_let_loops.rs:7:33: 10:6
- let mut _6: !; // in scope 0 at $DIR/while_let_loops.rs:7:5: 10:6
- scope 1 {
- debug _x => _1; // in scope 1 at $DIR/while_let_loops.rs:6:9: 6:15
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/while_let_loops.rs:6:9: 6:15
- _1 = const 0_i32; // scope 0 at $DIR/while_let_loops.rs:6:18: 6:19
- StorageLive(_3); // scope 1 at $DIR/while_let_loops.rs:7:28: 7:32
- discriminant(_3) = 0; // scope 1 at $DIR/while_let_loops.rs:7:28: 7:32
-- _4 = discriminant(_3); // scope 1 at $DIR/while_let_loops.rs:7:15: 7:25
-- switchInt(move _4) -> [1_isize: bb2, otherwise: bb1]; // scope 1 at $DIR/while_let_loops.rs:7:15: 7:25
-+ _4 = const 0_isize; // scope 1 at $DIR/while_let_loops.rs:7:15: 7:25
-+ switchInt(const 0_isize) -> [1_isize: bb2, otherwise: bb1]; // scope 1 at $DIR/while_let_loops.rs:7:15: 7:25
- }
-
- bb1: {
- _0 = const (); // scope 1 at $DIR/while_let_loops.rs:7:5: 10:6
- goto -> bb4; // scope 1 at $DIR/while_let_loops.rs:7:5: 10:6
- }
-
- bb2: {
- switchInt(((_3 as Some).0: u32)) -> [0_u32: bb3, otherwise: bb1]; // scope 1 at $DIR/while_let_loops.rs:7:20: 7:24
- }
-
- bb3: {
- _1 = const 1_i32; // scope 1 at $DIR/while_let_loops.rs:8:9: 8:15
- _0 = const (); // scope 1 at $DIR/while_let_loops.rs:9:9: 9:14
- goto -> bb4; // scope 1 at $DIR/while_let_loops.rs:9:9: 9:14
- }
-
- bb4: {
- StorageDead(_3); // scope 1 at $DIR/while_let_loops.rs:10:5: 10:6
- StorageDead(_1); // scope 0 at $DIR/while_let_loops.rs:11:1: 11:2
- return; // scope 0 at $DIR/while_let_loops.rs:11:2: 11:2
- }
- }
-
--- /dev/null
+// MIR for `change_loop_body` after PreCodegen
+
+fn change_loop_body() -> () {
+ let mut _0: (); // return place in scope 0 at $DIR/while_let_loops.rs:5:27: 5:27
+ let mut _1: i32; // in scope 0 at $DIR/while_let_loops.rs:6:9: 6:15
+ let mut _2: std::option::Option<u32>; // in scope 0 at $DIR/while_let_loops.rs:7:28: 7:32
+ scope 1 {
+ debug _x => _1; // in scope 1 at $DIR/while_let_loops.rs:6:9: 6:15
+ }
+
+ bb0: {
+ StorageLive(_1); // scope 0 at $DIR/while_let_loops.rs:6:9: 6:15
+ _1 = const 0_i32; // scope 0 at $DIR/while_let_loops.rs:6:18: 6:19
+ StorageLive(_2); // scope 1 at $DIR/while_let_loops.rs:7:28: 7:32
+ discriminant(_2) = 0; // scope 1 at $DIR/while_let_loops.rs:7:28: 7:32
+ _0 = const (); // scope 1 at $DIR/while_let_loops.rs:7:5: 10:6
+ StorageDead(_2); // scope 1 at $DIR/while_let_loops.rs:10:5: 10:6
+ StorageDead(_1); // scope 0 at $DIR/while_let_loops.rs:11:1: 11:2
+ return; // scope 0 at $DIR/while_let_loops.rs:11:2: 11:2
+ }
+}
+++ /dev/null
-// MIR for `change_loop_body` after PreCodegen
-
-fn change_loop_body() -> () {
- let mut _0: (); // return place in scope 0 at $DIR/while_let_loops.rs:5:27: 5:27
- let mut _1: i32; // in scope 0 at $DIR/while_let_loops.rs:6:9: 6:15
- let mut _2: std::option::Option<u32>; // in scope 0 at $DIR/while_let_loops.rs:7:28: 7:32
- scope 1 {
- debug _x => _1; // in scope 1 at $DIR/while_let_loops.rs:6:9: 6:15
- }
-
- bb0: {
- StorageLive(_1); // scope 0 at $DIR/while_let_loops.rs:6:9: 6:15
- _1 = const 0_i32; // scope 0 at $DIR/while_let_loops.rs:6:18: 6:19
- StorageLive(_2); // scope 1 at $DIR/while_let_loops.rs:7:28: 7:32
- discriminant(_2) = 0; // scope 1 at $DIR/while_let_loops.rs:7:28: 7:32
- _0 = const (); // scope 1 at $DIR/while_let_loops.rs:7:5: 10:6
- StorageDead(_2); // scope 1 at $DIR/while_let_loops.rs:10:5: 10:6
- StorageDead(_1); // scope 0 at $DIR/while_let_loops.rs:11:1: 11:2
- return; // scope 0 at $DIR/while_let_loops.rs:11:2: 11:2
- }
-}