1 - // MIR for `main` before PreCodegen
2 + // MIR for `main` after PreCodegen
5 let mut _0: (); // return place in scope 0 at $DIR/issue-73223.rs:1:11: 1:11
6 let _1: i32; // in scope 0 at $DIR/issue-73223.rs:2:9: 2:14
7 let mut _2: std::option::Option<i32>; // in scope 0 at $DIR/issue-73223.rs:2:23: 2:30
8 let _3: i32; // in scope 0 at $DIR/issue-73223.rs:3:14: 3:15
9 let mut _5: (&i32, &i32); // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
10 let mut _6: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
11 let mut _7: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
12 let mut _10: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
13 let mut _11: bool; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
14 let mut _12: i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
15 let _14: !; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
16 let mut _15: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
17 let _16: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
18 let mut _17: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
19 let _18: &i32; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
20 let mut _19: std::option::Option<std::fmt::Arguments>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
22 debug split => _1; // in scope 1 at $DIR/issue-73223.rs:2:9: 2:14
23 let _4: std::option::Option<i32>; // in scope 1 at $DIR/issue-73223.rs:7:9: 7:14
25 debug _prev => _4; // in scope 3 at $DIR/issue-73223.rs:7:9: 7:14
26 let _8: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
27 let _9: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
28 let mut _20: &i32; // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
30 debug left_val => _8; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
31 debug right_val => _9; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
33 let _13: core::panicking::AssertKind; // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
35 debug kind => _13; // in scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
42 debug v => _3; // in scope 2 at $DIR/issue-73223.rs:3:14: 3:15
46 StorageLive(_1); // scope 0 at $DIR/issue-73223.rs:2:9: 2:14
47 StorageLive(_2); // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
48 Deinit(_2); // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
49 ((_2 as Some).0: i32) = const 1_i32; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
50 discriminant(_2) = 1; // scope 0 at $DIR/issue-73223.rs:2:23: 2:30
51 StorageLive(_3); // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
52 _3 = ((_2 as Some).0: i32); // scope 0 at $DIR/issue-73223.rs:3:14: 3:15
53 _1 = _3; // scope 2 at $DIR/issue-73223.rs:3:20: 3:21
54 StorageDead(_3); // scope 0 at $DIR/issue-73223.rs:3:20: 3:21
55 StorageDead(_2); // scope 0 at $DIR/issue-73223.rs:5:6: 5:7
56 StorageLive(_4); // scope 1 at $DIR/issue-73223.rs:7:9: 7:14
57 StorageLive(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
58 StorageLive(_6); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
59 _6 = &_1; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
60 StorageLive(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
61 _20 = const main::promoted[0]; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
63 // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
64 // + literal: Const { ty: &i32, val: Unevaluated(main, [], Some(promoted[0])) }
65 _7 = _20; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
66 Deinit(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
67 (_5.0: &i32) = move _6; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
68 (_5.1: &i32) = move _7; // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
69 StorageDead(_7); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
70 StorageDead(_6); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
71 StorageLive(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
72 _8 = (_5.0: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
73 StorageLive(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
74 _9 = (_5.1: &i32); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
75 StorageLive(_10); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
76 StorageLive(_11); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
77 StorageLive(_12); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
78 _12 = (*_8); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
79 _11 = Eq(move _12, const 1_i32); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
80 StorageDead(_12); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
81 _10 = Not(move _11); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
82 StorageDead(_11); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
83 switchInt(move _10) -> [false: bb2, otherwise: bb1]; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
87 StorageLive(_13); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
88 StorageLive(_14); // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
89 StorageLive(_15); // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
90 StorageLive(_16); // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
91 _16 = _8; // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
92 _15 = _16; // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
93 StorageLive(_17); // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
94 StorageLive(_18); // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
95 _18 = _9; // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
96 _17 = _18; // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
97 StorageLive(_19); // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
98 Deinit(_19); // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
99 discriminant(_19) = 0; // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
100 _14 = core::panicking::assert_failed::<i32, i32>(const core::panicking::AssertKind::Eq, move _15, move _17, move _19); // scope 6 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
102 // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
103 // + literal: Const { ty: for<'r, 's, 't0> fn(core::panicking::AssertKind, &'r i32, &'s i32, Option<Arguments<'t0>>) -> ! {core::panicking::assert_failed::<i32, i32>}, val: Value(Scalar(<ZST>)) }
105 // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
106 // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
110 StorageDead(_10); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
111 StorageDead(_9); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
112 StorageDead(_8); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
113 StorageDead(_5); // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
114 StorageDead(_4); // scope 1 at $DIR/issue-73223.rs:9:1: 9:2
115 StorageDead(_1); // scope 0 at $DIR/issue-73223.rs:9:1: 9:2
116 return; // scope 0 at $DIR/issue-73223.rs:9:2: 9:2