@@ -7,90 +7,19 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
7
7
let mut _11: std:: slice:: Iter < ' _ , T > ;
8
8
let mut _12: std:: iter:: Rev < std:: slice:: Iter < ' _ , T > > ;
9
9
let mut _13: std:: iter:: Rev < std:: slice:: Iter < ' _ , T > > ;
10
- let mut _37: std:: option:: Option < & T > ;
11
- let mut _39: & impl Fn ( & T ) ;
12
- let mut _40: ( & T , ) ;
13
- let _41: ( ) ;
10
+ let mut _15: std:: option:: Option < & T > ;
11
+ let mut _16: isize ;
12
+ let mut _18: & impl Fn ( & T ) ;
13
+ let mut _19: ( & T , ) ;
14
+ let _20: ( ) ;
14
15
scope 1 {
15
16
debug iter => _13;
16
- let _38 : & T ;
17
+ let _17 : & T ;
17
18
scope 2 {
18
- debug x => _38 ;
19
+ debug x => _17 ;
19
20
}
20
21
scope 17 ( inlined <Rev <std:: slice:: Iter <' _, T >> as Iterator >:: next) {
21
- scope 18 ( inlined <std:: slice:: Iter <' _, T > as DoubleEndedIterator >:: next_back) {
22
- let mut _14: * const * const T ;
23
- let mut _15: * const std:: ptr:: NonNull < T > ;
24
- let mut _20: bool ;
25
- let mut _21: * const T ;
26
- let _36: & T ;
27
- scope 19 {
28
- let _16 : std:: ptr:: NonNull <T >;
29
- let _22: usize;
30
- scope 20 {
31
- }
32
- scope 21 {
33
- scope 25 ( inlined <NonNull <T > as PartialEq >:: eq) {
34
- let mut _17: std:: ptr:: NonNull < T > ;
35
- scope 26 ( inlined NonNull :: < T > :: as_ptr) {
36
- let mut _18: * const T ;
37
- }
38
- scope 27 ( inlined NonNull :: < T > :: as_ptr) {
39
- let mut _19: * const T ;
40
- }
41
- }
42
- }
43
- scope 22 ( inlined std:: ptr:: const_ptr:: < impl * const T > :: addr) {
44
- scope 23 ( inlined std:: ptr:: const_ptr:: < impl * const T > :: cast :: < ( ) > ) {
45
- }
46
- }
47
- scope 24 ( inlined std:: ptr:: const_ptr:: < impl * const * const T > :: cast :: < NonNull < T > > ) {
48
- }
49
- }
50
- scope 28 ( inlined std:: slice:: Iter :: < ' _ , T > :: next_back_unchecked) {
51
- let _29: std:: ptr:: NonNull < T > ;
52
- scope 29 ( inlined std:: slice:: Iter :: < ' _ , T > :: pre_dec_end) {
53
- let mut _23: * mut * const T ;
54
- let mut _24: * mut std:: ptr:: NonNull < T > ;
55
- let mut _25: std:: ptr:: NonNull < T > ;
56
- let mut _28: std:: ptr:: NonNull < T > ;
57
- let mut _30: * mut * const T ;
58
- let mut _31: * mut usize ;
59
- let mut _32: usize ;
60
- let mut _33: usize ;
61
- scope 30 {
62
- scope 31 {
63
- }
64
- scope 32 {
65
- scope 35 ( inlined NonNull :: < T > :: sub) {
66
- scope 36 ( inlined core:: num:: <impl isize >:: unchecked_neg) {
67
- scope 37 ( inlined core:: ub_checks:: check_language_ub) {
68
- scope 38 ( inlined core:: ub_checks:: check_language_ub:: runtime) {
69
- }
70
- }
71
- }
72
- scope 39 ( inlined NonNull :: < T > :: offset) {
73
- let mut _26: * const T ;
74
- let mut _27: * const T ;
75
- }
76
- }
77
- }
78
- scope 33 ( inlined std:: ptr:: mut_ptr:: < impl * mut * const T > :: cast :: < usize > ) {
79
- }
80
- scope 34 ( inlined std:: ptr:: mut_ptr:: < impl * mut * const T > :: cast :: < NonNull < T > > ) {
81
- }
82
- }
83
- }
84
- scope 40 ( inlined NonNull :: < T > :: as_ref :: < ' _ > ) {
85
- let mut _34: std:: ptr:: NonNull < T > ;
86
- scope 41 ( inlined NonNull :: < T > :: as_ptr) {
87
- let mut _35: * const T ;
88
- }
89
- scope 42 ( inlined std:: ptr:: mut_ptr:: < impl * mut T > :: cast_const) {
90
- }
91
- }
92
- }
93
- }
22
+ let mut _14: & mut std:: slice:: Iter < ' _ , T > ;
94
23
}
95
24
}
96
25
scope 3 ( inlined core:: slice:: < impl [ T ] > :: iter) {
@@ -178,155 +107,53 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
178
107
}
179
108
180
109
bb4 : {
181
- StorageLive ( _37) ;
182
- StorageLive ( _22) ;
183
- StorageLive ( _21) ;
184
- StorageLive ( _16) ;
185
- StorageLive ( _36) ;
186
- StorageLive ( _20) ;
187
- switchInt ( const <T as std:: mem:: SizedTypeProperties >:: IS_ZST ) -> [ 0 : bb5, otherwise: bb6] ;
110
+ StorageLive ( _15) ;
111
+ StorageLive ( _14) ;
112
+ _14 = & mut ( _13. 0 : std :: slice:: Iter <' _, T >) ;
113
+ _15 = <std:: slice:: Iter < ' _ , T > as DoubleEndedIterator >:: next_back ( move _14) -> [ return : bb5, unwind: bb11] ;
188
114
}
189
115
190
116
bb5 : {
191
- StorageLive ( _15) ;
192
- StorageLive ( _14) ;
193
- _14 = & raw const ( ( _13. 0 : std :: slice:: Iter <' _, T >) . 1 : * const T ) ;
194
- _15 = _14 as * const std:: ptr:: NonNull < T > ( PtrToPtr ) ;
195
117
StorageDead ( _14) ;
196
- _16 = ( * _15) ;
197
- StorageDead ( _15) ;
198
- StorageLive ( _18) ;
199
- StorageLive ( _19) ;
200
- StorageLive ( _17) ;
201
- _17 = ( ( _13. 0 : std :: slice:: Iter <' _, T >) . 0 : std :: ptr:: NonNull <T >) ;
202
- _18 = ( _17. 0 : * const T ) ;
203
- StorageDead ( _17) ;
204
- _19 = ( _16. 0 : * const T ) ;
205
- _20 = Eq ( _18, _19) ;
206
- StorageDead ( _19) ;
207
- StorageDead ( _18) ;
208
- goto -> bb7;
118
+ _16 = discriminant ( _15) ;
119
+ switchInt ( move _16) -> [ 0 : bb6, 1 : bb8, otherwise: bb10] ;
209
120
}
210
121
211
122
bb6 : {
212
- _21 = ( ( _13. 0 : std :: slice:: Iter <' _, T >) . 1 : * const T ) ;
213
- _22 = _21 as usize ( Transmute ) ;
214
- _20 = Eq ( _22, const 0_usize ) ;
215
- goto -> bb7;
123
+ StorageDead ( _15) ;
124
+ StorageDead ( _13) ;
125
+ drop ( _2) -> [ return : bb7, unwind continue ] ;
216
126
}
217
127
218
128
bb7 : {
219
- switchInt ( move _20 ) -> [ 0 : bb8 , otherwise : bb18 ] ;
129
+ return ;
220
130
}
221
131
222
132
bb8 : {
223
- StorageLive ( _35) ;
224
- StorageLive ( _29) ;
225
- StorageLive ( _31) ;
226
- StorageLive ( _24) ;
227
- switchInt ( const <T as std:: mem:: SizedTypeProperties >:: IS_ZST ) -> [ 0 : bb9, otherwise: bb13] ;
133
+ _17 = ( ( _15 as Some ) . 0 : & T ) ;
134
+ StorageLive ( _18) ;
135
+ _18 = & _2;
136
+ StorageLive ( _19) ;
137
+ _19 = ( _17, ) ;
138
+ _20 = <impl Fn ( & T ) as Fn < ( & T , ) > >:: call ( move _18, move _19) -> [ return : bb9, unwind: bb11] ;
228
139
}
229
140
230
141
bb9: {
231
- StorageLive ( _23) ;
232
- _23 = & raw mut ( ( _13. 0 : std :: slice:: Iter <' _, T >) . 1 : * const T ) ;
233
- _24 = _23 as * mut std:: ptr:: NonNull < T > ( PtrToPtr ) ;
234
- StorageDead ( _23) ;
235
- StorageLive ( _28) ;
236
- _25 = ( * _24) ;
237
- switchInt ( const <T as std:: mem:: SizedTypeProperties >:: IS_ZST ) -> [ 0 : bb10, otherwise: bb11] ;
142
+ StorageDead ( _19) ;
143
+ StorageDead ( _18) ;
144
+ StorageDead ( _15) ;
145
+ goto -> bb4;
238
146
}
239
147
240
148
bb10: {
241
- StorageLive ( _27) ;
242
- StorageLive ( _26) ;
243
- _26 = ( _25. 0 : * const T ) ;
244
- _27 = Offset ( move _26, const -1_isize ) ;
245
- StorageDead ( _26) ;
246
- _28 = NonNull :: < T > { pointer : move _27 } ;
247
- StorageDead ( _27) ;
248
- goto -> bb12;
249
- }
250
-
251
- bb11: {
252
- _28 = _25;
253
- goto -> bb12;
254
- }
255
-
256
- bb12 : {
257
- ( * _24) = move _28;
258
- StorageDead ( _28) ;
259
- _29 = ( * _24) ;
260
- goto -> bb14;
261
- }
262
-
263
- bb13 : {
264
- StorageLive ( _30) ;
265
- _30 = & raw mut ( ( _13. 0 : std :: slice:: Iter <' _, T >) . 1 : * const T ) ;
266
- _31 = _30 as * mut usize ( PtrToPtr ) ;
267
- StorageDead ( _30) ;
268
- StorageLive ( _33) ;
269
- StorageLive ( _32) ;
270
- _32 = ( * _31) ;
271
- _33 = SubUnchecked ( move _32, const 1_usize ) ;
272
- StorageDead ( _32) ;
273
- ( * _31) = move _33;
274
- StorageDead ( _33) ;
275
- _29 = ( ( _13. 0 : std :: slice:: Iter <' _, T >) . 0 : std :: ptr:: NonNull <T >) ;
276
- goto -> bb14;
149
+ unreachable;
277
150
}
278
151
279
- bb14 : {
280
- StorageDead ( _24) ;
281
- StorageDead ( _31) ;
282
- StorageLive ( _34) ;
283
- _34 = _29;
284
- _35 = ( _34. 0 : * const T ) ;
285
- StorageDead ( _34) ;
286
- _36 = & ( * _35) ;
287
- StorageDead ( _29) ;
288
- StorageDead ( _35) ;
289
- _37 = Option :: < & T > :: Some ( _36) ;
290
- StorageDead ( _20) ;
291
- StorageDead ( _36) ;
292
- StorageDead ( _16) ;
293
- StorageDead ( _21) ;
294
- StorageDead ( _22) ;
295
- _38 = ( ( _37 as Some ) . 0 : & T ) ;
296
- StorageLive ( _39) ;
297
- _39 = & _2;
298
- StorageLive ( _40) ;
299
- _40 = ( _38, ) ;
300
- _41 = <impl Fn ( & T ) as Fn < ( & T , ) > >:: call ( move _39, move _40) -> [ return : bb15, unwind: bb16] ;
152
+ bb11 ( cleanup) : {
153
+ drop ( _2) -> [ return : bb12, unwind terminate ( cleanup) ] ;
301
154
}
302
155
303
- bb15 : {
304
- StorageDead ( _40) ;
305
- StorageDead ( _39) ;
306
- StorageDead ( _37) ;
307
- goto -> bb4;
308
- }
309
-
310
- bb16 ( cleanup) : {
311
- drop ( _2) -> [ return : bb17, unwind terminate ( cleanup) ] ;
312
- }
313
-
314
- bb17 ( cleanup) : {
156
+ bb12 ( cleanup) : {
315
157
resume;
316
158
}
317
-
318
- bb18 : {
319
- StorageDead ( _20) ;
320
- StorageDead ( _36) ;
321
- StorageDead ( _16) ;
322
- StorageDead ( _21) ;
323
- StorageDead ( _22) ;
324
- StorageDead ( _37) ;
325
- StorageDead ( _13) ;
326
- drop ( _2) -> [ return : bb19, unwind continue ] ;
327
- }
328
-
329
- bb19 : {
330
- return;
331
- }
332
159
}
0 commit comments