|
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 | | -+ let mut _11: &alloc::raw_vec::RawVec<A>; |
24 | | -+ scope 7 (inlined alloc::raw_vec::RawVec::<A>::ptr) { |
25 | | -+ debug self => _11; |
26 | | -+ let mut _13: std::ptr::NonNull<A>; |
27 | | -+ scope 8 (inlined Unique::<A>::as_ptr) { |
28 | | -+ debug ((self: Unique<A>).0: std::ptr::NonNull<A>) => _13; |
29 | | -+ debug ((self: Unique<A>).1: std::marker::PhantomData<A>) => const ZeroSized: PhantomData<A>; |
30 | | -+ scope 9 (inlined NonNull::<A>::as_ptr) { |
31 | | -+ debug self => _13; |
32 | | -+ let mut _12: *const A; |
33 | | -+ } |
34 | | -+ } |
35 | | -+ } |
36 | | -+ } |
37 | | -+ scope 10 (inlined slice_from_raw_parts_mut::<A>) { |
38 | | -+ debug data => _9; |
39 | | -+ debug len => _10; |
40 | | -+ let mut _14: *mut (); |
41 | | -+ scope 11 (inlined ptr::mut_ptr::<impl *mut A>::cast::<()>) { |
42 | | -+ debug self => _9; |
43 | | -+ } |
44 | | -+ scope 12 (inlined std::ptr::from_raw_parts_mut::<[A]>) { |
45 | | -+ debug data_address => _14; |
46 | | -+ debug metadata => _10; |
47 | | -+ let mut _15: std::ptr::metadata::PtrRepr<[A]>; |
48 | | -+ let mut _16: std::ptr::metadata::PtrComponents<[A]>; |
49 | | -+ let mut _17: *const (); |
50 | | -+ scope 13 { |
51 | | -+ } |
52 | | -+ } |
53 | | -+ } |
54 | | -+ scope 14 (inlined std::ptr::drop_in_place::<[A]> - shim(Some([A]))) { |
55 | | -+ let mut _18: usize; |
56 | | -+ let mut _19: usize; |
57 | | -+ let mut _20: *mut A; |
58 | | -+ let mut _21: bool; |
59 | | -+ } |
60 | | -+ } |
61 | | -+ } |
62 | 15 | + } |
63 | 16 | } |
64 | 17 | scope 2 { |
65 | | -+ scope 15 (inlined std::ptr::drop_in_place::<Option<B>> - shim(Some(Option<B>))) { |
66 | | -+ let mut _22: isize; |
67 | | -+ let mut _23: isize; |
| 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; |
68 | 21 | + } |
69 | 22 | } |
70 | 23 |
|
|
76 | 29 | + StorageLive(_6); |
77 | 30 | + StorageLive(_7); |
78 | 31 | + _6 = &mut (*_4); |
79 | | -+ StorageLive(_8); |
80 | | -+ StorageLive(_9); |
81 | | -+ StorageLive(_11); |
82 | | -+ _11 = &((*_6).0: alloc::raw_vec::RawVec<A>); |
83 | | -+ StorageLive(_13); |
84 | | -+ _13 = ((((*_6).0: alloc::raw_vec::RawVec<A>).0: std::ptr::Unique<A>).0: std::ptr::NonNull<A>); |
85 | | -+ StorageLive(_12); |
86 | | -+ _12 = (_13.0: *const A); |
87 | | -+ _9 = move _12 as *mut A (PtrToPtr); |
88 | | -+ StorageDead(_12); |
89 | | -+ StorageDead(_13); |
90 | | -+ StorageDead(_11); |
91 | | -+ StorageLive(_10); |
92 | | -+ _10 = ((*_6).1: usize); |
93 | | -+ StorageLive(_14); |
94 | | -+ _14 = _9 as *mut () (PtrToPtr); |
95 | | -+ StorageLive(_15); |
96 | | -+ StorageLive(_16); |
97 | | -+ StorageLive(_17); |
98 | | -+ _17 = _14 as *const () (PointerCoercion(MutToConstPointer)); |
99 | | -+ _16 = ptr::metadata::PtrComponents::<[A]> { data_address: move _17, metadata: _10 }; |
100 | | -+ StorageDead(_17); |
101 | | -+ _15 = ptr::metadata::PtrRepr::<[A]> { const_ptr: move _16 }; |
102 | | -+ StorageDead(_16); |
103 | | -+ _8 = (_15.1: *mut [A]); |
104 | | -+ StorageDead(_15); |
105 | | -+ StorageDead(_14); |
106 | | -+ StorageDead(_10); |
107 | | -+ StorageDead(_9); |
108 | | -+ StorageLive(_18); |
109 | | -+ StorageLive(_19); |
110 | | -+ StorageLive(_20); |
111 | | -+ StorageLive(_21); |
112 | | -+ _18 = Len((*_8)); |
113 | | -+ _19 = const 0_usize; |
114 | | -+ goto -> bb4; |
| 32 | ++ _7 = <Vec<A> as Drop>::drop(move _6) -> [return: bb2, unwind unreachable]; |
115 | 33 | } |
116 | 34 |
|
117 | 35 | bb1: { |
|
122 | 40 | StorageLive(_5); |
123 | 41 | _5 = _2; |
124 | 42 | - _0 = std::ptr::drop_in_place::<Option<B>>(move _5) -> [return: bb2, unwind unreachable]; |
125 | | -+ StorageLive(_22); |
126 | | -+ StorageLive(_23); |
127 | | -+ _22 = discriminant((*_5)); |
128 | | -+ switchInt(move _22) -> [0: bb5, otherwise: bb6]; |
| 43 | ++ StorageLive(_8); |
| 44 | ++ StorageLive(_9); |
| 45 | ++ _8 = discriminant((*_5)); |
| 46 | ++ switchInt(move _8) -> [0: bb3, otherwise: bb4]; |
129 | 47 | } |
130 | 48 |
|
131 | 49 | bb2: { |
132 | | -+ StorageDead(_21); |
133 | | -+ StorageDead(_20); |
134 | | -+ StorageDead(_19); |
135 | | -+ StorageDead(_18); |
136 | | -+ StorageDead(_8); |
137 | 50 | + drop(((*_4).0: alloc::raw_vec::RawVec<A>)) -> [return: bb1, unwind unreachable]; |
138 | 51 | + } |
139 | 52 | + |
140 | 53 | + bb3: { |
141 | | -+ _20 = &raw mut (*_8)[_19]; |
142 | | -+ _19 = Add(move _19, const 1_usize); |
143 | | -+ drop((*_20)) -> [return: bb4, unwind unreachable]; |
144 | | -+ } |
145 | | -+ |
146 | | -+ bb4: { |
147 | | -+ _21 = Eq(_19, _18); |
148 | | -+ switchInt(move _21) -> [0: bb3, otherwise: bb2]; |
149 | | -+ } |
150 | | -+ |
151 | | -+ bb5: { |
152 | | -+ StorageDead(_23); |
153 | | -+ StorageDead(_22); |
| 54 | ++ StorageDead(_9); |
| 55 | ++ StorageDead(_8); |
154 | 56 | StorageDead(_5); |
155 | 57 | return; |
156 | 58 | + } |
157 | 59 | + |
158 | | -+ bb6: { |
159 | | -+ drop((((*_5) as Some).0: B)) -> [return: bb5, unwind unreachable]; |
| 60 | ++ bb4: { |
| 61 | ++ drop((((*_5) as Some).0: B)) -> [return: bb3, unwind unreachable]; |
160 | 62 | } |
161 | 63 | } |
162 | 64 |
|
0 commit comments