|
12 | 12 | + scope 3 (inlined std::ptr::drop_in_place::<Vec<A>> - shim(Some(Vec<A>))) {
|
13 | 13 | + let mut _6: &mut std::vec::Vec<A>;
|
14 | 14 | + let mut _7: ();
|
| 15 | ++ scope 4 (inlined <Vec<A> as Drop>::drop) { |
| 16 | ++ debug self => _6; |
| 17 | ++ let mut _8: *mut [A]; |
| 18 | ++ let mut _9: *mut A; |
| 19 | ++ let mut _10: usize; |
| 20 | ++ scope 5 { |
| 21 | ++ scope 6 (inlined Vec::<A>::as_mut_ptr) { |
| 22 | ++ debug self => _6; |
| 23 | ++ scope 7 (inlined alloc::raw_vec::RawVec::<A>::ptr) { |
| 24 | ++ debug (*(self: &alloc::raw_vec::RawVec<A>)) => ((*_6).0: alloc::raw_vec::RawVec<A>); |
| 25 | ++ let mut _17: std::ptr::NonNull<A>; |
| 26 | ++ scope 8 (inlined Unique::<A>::as_ptr) { |
| 27 | ++ debug ((self: Unique<A>).0: std::ptr::NonNull<A>) => _17; |
| 28 | ++ debug ((self: Unique<A>).1: std::marker::PhantomData<A>) => const ZeroSized: PhantomData<A>; |
| 29 | ++ scope 9 (inlined NonNull::<A>::as_ptr) { |
| 30 | ++ debug self => _17; |
| 31 | ++ let mut _11: bool; |
| 32 | ++ let mut _12: bool; |
| 33 | ++ let mut _13: *const A; |
| 34 | ++ scope 10 { |
| 35 | ++ scope 11 (inlined std::ptr::const_ptr::<impl *const A>::is_null) { |
| 36 | ++ debug self => _13; |
| 37 | ++ let mut _14: *const u8; |
| 38 | ++ scope 12 { |
| 39 | ++ scope 13 (inlined std::ptr::const_ptr::<impl *const T>::is_null::runtime_impl) { |
| 40 | ++ debug ptr => _14; |
| 41 | ++ let mut _15: usize; |
| 42 | ++ scope 14 (inlined std::ptr::const_ptr::<impl *const u8>::addr) { |
| 43 | ++ debug self => _14; |
| 44 | ++ let mut _16: *const (); |
| 45 | ++ scope 15 { |
| 46 | ++ scope 16 (inlined std::ptr::const_ptr::<impl *const u8>::cast::<()>) { |
| 47 | ++ debug self => _14; |
| 48 | ++ } |
| 49 | ++ } |
| 50 | ++ } |
| 51 | ++ } |
| 52 | ++ } |
| 53 | ++ } |
| 54 | ++ } |
| 55 | ++ } |
| 56 | ++ } |
| 57 | ++ } |
| 58 | ++ } |
| 59 | ++ scope 17 (inlined slice_from_raw_parts_mut::<A>) { |
| 60 | ++ debug data => _9; |
| 61 | ++ debug len => _10; |
| 62 | ++ let mut _18: *mut (); |
| 63 | ++ scope 18 (inlined std::ptr::mut_ptr::<impl *mut A>::cast::<()>) { |
| 64 | ++ debug self => _9; |
| 65 | ++ } |
| 66 | ++ scope 19 (inlined std::ptr::from_raw_parts_mut::<[A]>) { |
| 67 | ++ debug data_address => _18; |
| 68 | ++ debug metadata => _10; |
| 69 | ++ let mut _19: std::ptr::metadata::PtrRepr<[A]>; |
| 70 | ++ let mut _20: std::ptr::metadata::PtrComponents<[A]>; |
| 71 | ++ scope 20 { |
| 72 | ++ } |
| 73 | ++ } |
| 74 | ++ } |
| 75 | ++ scope 21 (inlined std::ptr::drop_in_place::<[A]> - shim(Some([A]))) { |
| 76 | ++ let mut _21: usize; |
| 77 | ++ let mut _22: usize; |
| 78 | ++ let mut _23: *mut A; |
| 79 | ++ let mut _24: bool; |
| 80 | ++ } |
| 81 | ++ } |
| 82 | ++ } |
15 | 83 | + }
|
16 | 84 | }
|
17 | 85 | scope 2 {
|
18 |
| -+ scope 4 (inlined std::ptr::drop_in_place::<Option<B>> - shim(Some(Option<B>))) { |
19 |
| -+ let mut _8: isize; |
20 |
| -+ let mut _9: isize; |
| 86 | ++ scope 22 (inlined std::ptr::drop_in_place::<Option<B>> - shim(Some(Option<B>))) { |
| 87 | ++ let mut _25: isize; |
| 88 | ++ let mut _26: isize; |
21 | 89 | + }
|
22 | 90 | }
|
23 | 91 |
|
|
29 | 97 | + StorageLive(_6);
|
30 | 98 | + StorageLive(_7);
|
31 | 99 | + _6 = &mut (*_4);
|
32 |
| -+ _7 = <Vec<A> as Drop>::drop(move _6) -> [return: bb2, unwind unreachable]; |
| 100 | ++ StorageLive(_13); |
| 101 | ++ StorageLive(_16); |
| 102 | ++ StorageLive(_8); |
| 103 | ++ StorageLive(_9); |
| 104 | ++ StorageLive(_17); |
| 105 | ++ _17 = ((((*_6).0: alloc::raw_vec::RawVec<A>).0: std::ptr::Unique<A>).0: std::ptr::NonNull<A>); |
| 106 | ++ StorageLive(_11); |
| 107 | ++ StorageLive(_12); |
| 108 | ++ _13 = (_17.0: *const A); |
| 109 | ++ StorageLive(_14); |
| 110 | ++ _14 = _13 as *const u8 (PtrToPtr); |
| 111 | ++ StorageLive(_15); |
| 112 | ++ _16 = _13 as *const () (PtrToPtr); |
| 113 | ++ _15 = _16 as usize (Transmute); |
| 114 | ++ _12 = Eq(move _15, const 0_usize); |
| 115 | ++ StorageDead(_15); |
| 116 | ++ StorageDead(_14); |
| 117 | ++ _11 = Not(move _12); |
| 118 | ++ StorageDead(_12); |
| 119 | ++ assume(move _11); |
| 120 | ++ StorageDead(_11); |
| 121 | ++ _9 = _13 as *mut A (PtrToPtr); |
| 122 | ++ StorageDead(_17); |
| 123 | ++ StorageLive(_10); |
| 124 | ++ _10 = ((*_6).1: usize); |
| 125 | ++ StorageLive(_18); |
| 126 | ++ _18 = _13 as *mut () (PtrToPtr); |
| 127 | ++ StorageLive(_19); |
| 128 | ++ StorageLive(_20); |
| 129 | ++ _20 = std::ptr::metadata::PtrComponents::<[A]> { data_address: _16, metadata: _10 }; |
| 130 | ++ _19 = std::ptr::metadata::PtrRepr::<[A]> { const_ptr: move _20 }; |
| 131 | ++ StorageDead(_20); |
| 132 | ++ _8 = (_19.1: *mut [A]); |
| 133 | ++ StorageDead(_19); |
| 134 | ++ StorageDead(_18); |
| 135 | ++ StorageDead(_10); |
| 136 | ++ StorageDead(_9); |
| 137 | ++ StorageLive(_21); |
| 138 | ++ StorageLive(_22); |
| 139 | ++ StorageLive(_23); |
| 140 | ++ StorageLive(_24); |
| 141 | ++ _21 = Len((*_8)); |
| 142 | ++ _22 = const 0_usize; |
| 143 | ++ goto -> bb4; |
33 | 144 | }
|
34 | 145 |
|
35 | 146 | bb1: {
|
|
40 | 151 | StorageLive(_5);
|
41 | 152 | _5 = _2;
|
42 | 153 | - _0 = std::ptr::drop_in_place::<Option<B>>(move _5) -> [return: bb2, unwind unreachable];
|
43 |
| -+ StorageLive(_8); |
44 |
| -+ StorageLive(_9); |
45 |
| -+ _8 = discriminant((*_5)); |
46 |
| -+ switchInt(move _8) -> [0: bb3, otherwise: bb4]; |
| 154 | ++ StorageLive(_25); |
| 155 | ++ StorageLive(_26); |
| 156 | ++ _25 = discriminant((*_5)); |
| 157 | ++ switchInt(move _25) -> [0: bb5, otherwise: bb6]; |
47 | 158 | }
|
48 | 159 |
|
49 | 160 | bb2: {
|
| 161 | ++ StorageDead(_24); |
| 162 | ++ StorageDead(_23); |
| 163 | ++ StorageDead(_22); |
| 164 | ++ StorageDead(_21); |
| 165 | ++ StorageDead(_8); |
| 166 | ++ StorageDead(_16); |
| 167 | ++ StorageDead(_13); |
50 | 168 | + drop(((*_4).0: alloc::raw_vec::RawVec<A>)) -> [return: bb1, unwind unreachable];
|
51 | 169 | + }
|
52 | 170 | +
|
53 | 171 | + bb3: {
|
54 |
| -+ StorageDead(_9); |
55 |
| -+ StorageDead(_8); |
| 172 | ++ _23 = &raw mut (*_8)[_22]; |
| 173 | ++ _22 = Add(move _22, const 1_usize); |
| 174 | ++ drop((*_23)) -> [return: bb4, unwind unreachable]; |
| 175 | ++ } |
| 176 | ++ |
| 177 | ++ bb4: { |
| 178 | ++ _24 = Eq(_22, _21); |
| 179 | ++ switchInt(move _24) -> [0: bb3, otherwise: bb2]; |
| 180 | ++ } |
| 181 | ++ |
| 182 | ++ bb5: { |
| 183 | ++ StorageDead(_26); |
| 184 | ++ StorageDead(_25); |
56 | 185 | StorageDead(_5);
|
57 | 186 | return;
|
58 | 187 | + }
|
59 | 188 | +
|
60 |
| -+ bb4: { |
61 |
| -+ drop((((*_5) as Some).0: B)) -> [return: bb3, unwind unreachable]; |
| 189 | ++ bb6: { |
| 190 | ++ drop((((*_5) as Some).0: B)) -> [return: bb5, unwind unreachable]; |
62 | 191 | }
|
63 | 192 | }
|
64 | 193 |
|
0 commit comments