|
2 | 2 | + // MIR for `main` after Derefer
|
3 | 3 |
|
4 | 4 | fn main() -> () {
|
5 |
| - let mut _0: (); // return place in scope 0 at $DIR/derefer_complex_case.rs:3:11: 3:11 |
6 |
| - let mut _1: std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
7 |
| - let mut _2: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
8 |
| - let _3: [i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:4:18: 4:26 |
9 |
| - let mut _4: std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
10 |
| - let mut _5: (); // in scope 0 at $DIR/derefer_complex_case.rs:3:1: 5:2 |
11 |
| - let _6: (); // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
12 |
| - let mut _7: std::option::Option<&i32>; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
13 |
| - let mut _8: &mut std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
14 |
| - let mut _9: &mut std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
15 |
| - let mut _10: isize; // in scope 0 at $DIR/derefer_complex_case.rs:4:5: 4:40 |
16 |
| - let mut _11: !; // in scope 0 at $DIR/derefer_complex_case.rs:4:5: 4:40 |
17 |
| - let mut _13: i32; // in scope 0 at $DIR/derefer_complex_case.rs:4:34: 4:37 |
18 |
| - let mut _14: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
19 |
| -+ let mut _15: &i32; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
| 5 | + let mut _0: (); // return place in scope 0 at $DIR/derefer_complex_case.rs:4:11: 4:11 |
| 6 | + let mut _1: std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 7 | + let mut _2: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 8 | + let _3: [i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:5:18: 5:26 |
| 9 | + let mut _4: std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 10 | + let mut _5: (); // in scope 0 at $DIR/derefer_complex_case.rs:4:1: 6:2 |
| 11 | + let _6: (); // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 12 | + let mut _7: std::option::Option<&i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 13 | + let mut _8: &mut std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 14 | + let mut _9: &mut std::slice::Iter<i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 15 | + let mut _10: isize; // in scope 0 at $DIR/derefer_complex_case.rs:5:5: 5:40 |
| 16 | + let mut _11: !; // in scope 0 at $DIR/derefer_complex_case.rs:5:5: 5:40 |
| 17 | + let mut _13: i32; // in scope 0 at $DIR/derefer_complex_case.rs:5:34: 5:37 |
| 18 | + let mut _14: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 19 | ++ let mut _15: &i32; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
20 | 20 | scope 1 {
|
21 |
| - debug iter => _4; // in scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
22 |
| - let _12: i32; // in scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 |
| 21 | + debug iter => _4; // in scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 22 | + let _12: i32; // in scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 |
23 | 23 | scope 2 {
|
24 |
| - debug foo => _12; // in scope 2 at $DIR/derefer_complex_case.rs:4:10: 4:13 |
| 24 | + debug foo => _12; // in scope 2 at $DIR/derefer_complex_case.rs:5:10: 5:13 |
25 | 25 | }
|
26 | 26 | }
|
27 | 27 |
|
28 | 28 | bb0: {
|
29 |
| - StorageLive(_1); // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
30 |
| - StorageLive(_2); // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
31 |
| - _14 = const main::promoted[0]; // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
| 29 | + StorageLive(_1); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 30 | + StorageLive(_2); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 31 | + _14 = const main::promoted[0]; // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
32 | 32 | // mir::Constant
|
33 |
| - // + span: $DIR/derefer_complex_case.rs:4:17: 4:26 |
| 33 | + // + span: $DIR/derefer_complex_case.rs:5:17: 5:26 |
34 | 34 | // + literal: Const { ty: &[i32; 2], val: Unevaluated(main, [], Some(promoted[0])) }
|
35 |
| - _2 = &(*_14); // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
36 |
| - _1 = <&[i32; 2] as IntoIterator>::into_iter(move _2) -> bb1; // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
| 35 | + _2 = &(*_14); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 36 | + _1 = <&[i32; 2] as IntoIterator>::into_iter(move _2) -> bb1; // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
37 | 37 | // mir::Constant
|
38 |
| - // + span: $DIR/derefer_complex_case.rs:4:17: 4:26 |
| 38 | + // + span: $DIR/derefer_complex_case.rs:5:17: 5:26 |
39 | 39 | // + literal: Const { ty: fn(&[i32; 2]) -> <&[i32; 2] as IntoIterator>::IntoIter {<&[i32; 2] as IntoIterator>::into_iter}, val: Value(<ZST>) }
|
40 | 40 | }
|
41 | 41 |
|
42 | 42 | bb1: {
|
43 |
| - StorageDead(_2); // scope 0 at $DIR/derefer_complex_case.rs:4:25: 4:26 |
44 |
| - StorageLive(_4); // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
45 |
| - _4 = move _1; // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
46 |
| - goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:4:5: 4:40 |
| 43 | + StorageDead(_2); // scope 0 at $DIR/derefer_complex_case.rs:5:25: 5:26 |
| 44 | + StorageLive(_4); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 45 | + _4 = move _1; // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 46 | + goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40 |
47 | 47 | }
|
48 | 48 |
|
49 | 49 | bb2: {
|
50 |
| - StorageLive(_6); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
51 |
| - StorageLive(_7); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
52 |
| - StorageLive(_8); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
53 |
| - StorageLive(_9); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
54 |
| - _9 = &mut _4; // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
55 |
| - _8 = &mut (*_9); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
56 |
| - _7 = <std::slice::Iter<i32> as Iterator>::next(move _8) -> bb3; // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
| 50 | + StorageLive(_6); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 51 | + StorageLive(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 52 | + StorageLive(_8); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 53 | + StorageLive(_9); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 54 | + _9 = &mut _4; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 55 | + _8 = &mut (*_9); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 56 | + _7 = <std::slice::Iter<i32> as Iterator>::next(move _8) -> bb3; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
57 | 57 | // mir::Constant
|
58 |
| - // + span: $DIR/derefer_complex_case.rs:4:17: 4:26 |
| 58 | + // + span: $DIR/derefer_complex_case.rs:5:17: 5:26 |
59 | 59 | // + literal: Const { ty: for<'r> fn(&'r mut std::slice::Iter<i32>) -> Option<<std::slice::Iter<i32> as Iterator>::Item> {<std::slice::Iter<i32> as Iterator>::next}, val: Value(<ZST>) }
|
60 | 60 | }
|
61 | 61 |
|
62 | 62 | bb3: {
|
63 |
| - StorageDead(_8); // scope 1 at $DIR/derefer_complex_case.rs:4:25: 4:26 |
64 |
| - _10 = discriminant(_7); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
65 |
| - switchInt(move _10) -> [0_isize: bb6, 1_isize: bb4, otherwise: bb5]; // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
| 63 | + StorageDead(_8); // scope 1 at $DIR/derefer_complex_case.rs:5:25: 5:26 |
| 64 | + _10 = discriminant(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
| 65 | + switchInt(move _10) -> [0_isize: bb6, 1_isize: bb4, otherwise: bb5]; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
66 | 66 | }
|
67 | 67 |
|
68 | 68 | bb4: {
|
69 |
| - StorageLive(_12); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 |
70 |
| -- _12 = (*((_7 as Some).0: &i32)); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 |
71 |
| -+ StorageLive(_15); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 |
72 |
| -+ _15 = deref_copy ((_7 as Some).0: &i32); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 |
73 |
| -+ _12 = (*_15); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 |
74 |
| -+ StorageDead(_15); // scope 2 at $DIR/derefer_complex_case.rs:4:34: 4:37 |
75 |
| - StorageLive(_13); // scope 2 at $DIR/derefer_complex_case.rs:4:34: 4:37 |
76 |
| - _13 = _12; // scope 2 at $DIR/derefer_complex_case.rs:4:34: 4:37 |
77 |
| - _6 = std::mem::drop::<i32>(move _13) -> bb7; // scope 2 at $DIR/derefer_complex_case.rs:4:29: 4:38 |
| 69 | + StorageLive(_12); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 |
| 70 | +- _12 = (*((_7 as Some).0: &i32)); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 |
| 71 | ++ StorageLive(_15); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 |
| 72 | ++ _15 = deref_copy ((_7 as Some).0: &i32); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 |
| 73 | ++ _12 = (*_15); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 |
| 74 | ++ StorageDead(_15); // scope 2 at $DIR/derefer_complex_case.rs:5:34: 5:37 |
| 75 | + StorageLive(_13); // scope 2 at $DIR/derefer_complex_case.rs:5:34: 5:37 |
| 76 | + _13 = _12; // scope 2 at $DIR/derefer_complex_case.rs:5:34: 5:37 |
| 77 | + _6 = std::mem::drop::<i32>(move _13) -> bb7; // scope 2 at $DIR/derefer_complex_case.rs:5:29: 5:38 |
78 | 78 | // mir::Constant
|
79 |
| - // + span: $DIR/derefer_complex_case.rs:4:29: 4:33 |
| 79 | + // + span: $DIR/derefer_complex_case.rs:5:29: 5:33 |
80 | 80 | // + literal: Const { ty: fn(i32) {std::mem::drop::<i32>}, val: Value(<ZST>) }
|
81 | 81 | }
|
82 | 82 |
|
83 | 83 | bb5: {
|
84 |
| - unreachable; // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 |
| 84 | + unreachable; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 |
85 | 85 | }
|
86 | 86 |
|
87 | 87 | bb6: {
|
88 |
| - _0 = const (); // scope 1 at $DIR/derefer_complex_case.rs:4:5: 4:40 |
89 |
| - StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 |
90 |
| - StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 |
91 |
| - StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 |
92 |
| - StorageDead(_4); // scope 0 at $DIR/derefer_complex_case.rs:4:39: 4:40 |
93 |
| - StorageDead(_1); // scope 0 at $DIR/derefer_complex_case.rs:4:39: 4:40 |
94 |
| - return; // scope 0 at $DIR/derefer_complex_case.rs:5:2: 5:2 |
| 88 | + _0 = const (); // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40 |
| 89 | + StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 |
| 90 | + StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 |
| 91 | + StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 |
| 92 | + StorageDead(_4); // scope 0 at $DIR/derefer_complex_case.rs:5:39: 5:40 |
| 93 | + StorageDead(_1); // scope 0 at $DIR/derefer_complex_case.rs:5:39: 5:40 |
| 94 | + return; // scope 0 at $DIR/derefer_complex_case.rs:6:2: 6:2 |
95 | 95 | }
|
96 | 96 |
|
97 | 97 | bb7: {
|
98 |
| - StorageDead(_13); // scope 2 at $DIR/derefer_complex_case.rs:4:37: 4:38 |
99 |
| - StorageDead(_12); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 |
100 |
| - StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 |
101 |
| - StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 |
102 |
| - StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 |
103 |
| - _5 = const (); // scope 1 at $DIR/derefer_complex_case.rs:4:5: 4:40 |
104 |
| - goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:4:5: 4:40 |
| 98 | + StorageDead(_13); // scope 2 at $DIR/derefer_complex_case.rs:5:37: 5:38 |
| 99 | + StorageDead(_12); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 |
| 100 | + StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 |
| 101 | + StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 |
| 102 | + StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 |
| 103 | + _5 = const (); // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40 |
| 104 | + goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40 |
105 | 105 | + }
|
106 | 106 | +
|
107 | 107 | + bb8 (cleanup): {
|
108 |
| -+ resume; // scope 0 at $DIR/derefer_complex_case.rs:3:1: 5:2 |
| 108 | ++ resume; // scope 0 at $DIR/derefer_complex_case.rs:4:1: 6:2 |
109 | 109 | }
|
110 | 110 | }
|
111 | 111 |
|
0 commit comments