|
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