|
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