summaryrefslogtreecommitdiffstats
path: root/tests/mir-opt/address_of.address_of_reborrow.SimplifyCfg-initial.after.mir
blob: 5f8b2f9312b757772a1488874558223b0e0a9100 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
// MIR for `address_of_reborrow` after SimplifyCfg-initial

| User Type Annotations
| 0: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:7:5: 7:18, inferred_ty: *const [i32; 10]
| 1: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:9:5: 9:25, inferred_ty: *const dyn std::marker::Send
| 2: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:13:12: 13:20, inferred_ty: *const [i32; 10]
| 3: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:13:12: 13:20, inferred_ty: *const [i32; 10]
| 4: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address_of.rs:14:12: 14:28, inferred_ty: *const [i32; 10]
| 5: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address_of.rs:14:12: 14:28, inferred_ty: *const [i32; 10]
| 6: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:15:12: 15:27, inferred_ty: *const dyn std::marker::Send
| 7: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:15:12: 15:27, inferred_ty: *const dyn std::marker::Send
| 8: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address_of.rs:16:12: 16:24, inferred_ty: *const [i32]
| 9: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address_of.rs:16:12: 16:24, inferred_ty: *const [i32]
| 10: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:18:5: 18:18, inferred_ty: *const [i32; 10]
| 11: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:20:5: 20:25, inferred_ty: *const dyn std::marker::Send
| 12: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:23:12: 23:20, inferred_ty: *const [i32; 10]
| 13: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:23:12: 23:20, inferred_ty: *const [i32; 10]
| 14: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address_of.rs:24:12: 24:28, inferred_ty: *const [i32; 10]
| 15: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address_of.rs:24:12: 24:28, inferred_ty: *const [i32; 10]
| 16: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:25:12: 25:27, inferred_ty: *const dyn std::marker::Send
| 17: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:25:12: 25:27, inferred_ty: *const dyn std::marker::Send
| 18: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address_of.rs:26:12: 26:24, inferred_ty: *const [i32]
| 19: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address_of.rs:26:12: 26:24, inferred_ty: *const [i32]
| 20: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address_of.rs:28:5: 28:16, inferred_ty: *mut [i32; 10]
| 21: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address_of.rs:30:5: 30:23, inferred_ty: *mut dyn std::marker::Send
| 22: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address_of.rs:33:12: 33:18, inferred_ty: *mut [i32; 10]
| 23: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address_of.rs:33:12: 33:18, inferred_ty: *mut [i32; 10]
| 24: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32; 10]) }, span: $DIR/address_of.rs:34:12: 34:26, inferred_ty: *mut [i32; 10]
| 25: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32; 10]) }, span: $DIR/address_of.rs:34:12: 34:26, inferred_ty: *mut [i32; 10]
| 26: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address_of.rs:35:12: 35:25, inferred_ty: *mut dyn std::marker::Send
| 27: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address_of.rs:35:12: 35:25, inferred_ty: *mut dyn std::marker::Send
| 28: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32]) }, span: $DIR/address_of.rs:36:12: 36:22, inferred_ty: *mut [i32]
| 29: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32]) }, span: $DIR/address_of.rs:36:12: 36:22, inferred_ty: *mut [i32]
|
fn address_of_reborrow() -> () {
    let mut _0: ();                      // return place in scope 0 at $DIR/address_of.rs:+0:26: +0:26
    let _1: &[i32; 10];                  // in scope 0 at $DIR/address_of.rs:+1:9: +1:10
    let _2: [i32; 10];                   // in scope 0 at $DIR/address_of.rs:+1:14: +1:21
    let mut _4: [i32; 10];               // in scope 0 at $DIR/address_of.rs:+2:22: +2:29
    let _5: *const [i32; 10];            // in scope 0 at $DIR/address_of.rs:+4:5: +4:18
    let mut _6: *const [i32; 10];        // in scope 0 at $DIR/address_of.rs:+4:5: +4:18
    let _7: *const [i32; 10];            // in scope 0 at $DIR/address_of.rs:+5:5: +5:26
    let _8: *const dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+6:5: +6:25
    let mut _9: *const dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+6:5: +6:25
    let mut _10: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+6:5: +6:6
    let _11: *const [i32];               // in scope 0 at $DIR/address_of.rs:+7:5: +7:22
    let mut _12: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+7:5: +7:6
    let _13: *const i32;                 // in scope 0 at $DIR/address_of.rs:+8:5: +8:20
    let mut _14: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+8:5: +8:6
    let mut _18: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+12:30: +12:31
    let mut _20: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+13:27: +13:28
    let _21: *const [i32; 10];           // in scope 0 at $DIR/address_of.rs:+15:5: +15:18
    let mut _22: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+15:5: +15:18
    let _23: *const [i32; 10];           // in scope 0 at $DIR/address_of.rs:+16:5: +16:26
    let _24: *const dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+17:5: +17:25
    let mut _25: *const dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+17:5: +17:25
    let mut _26: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+17:5: +17:6
    let _27: *const [i32];               // in scope 0 at $DIR/address_of.rs:+18:5: +18:22
    let mut _28: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+18:5: +18:6
    let mut _32: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+22:30: +22:31
    let mut _34: *const [i32; 10];       // in scope 0 at $DIR/address_of.rs:+23:27: +23:28
    let _35: *mut [i32; 10];             // in scope 0 at $DIR/address_of.rs:+25:5: +25:16
    let mut _36: *mut [i32; 10];         // in scope 0 at $DIR/address_of.rs:+25:5: +25:16
    let _37: *mut [i32; 10];             // in scope 0 at $DIR/address_of.rs:+26:5: +26:24
    let _38: *mut dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+27:5: +27:23
    let mut _39: *mut dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+27:5: +27:23
    let mut _40: *mut [i32; 10];         // in scope 0 at $DIR/address_of.rs:+27:5: +27:6
    let _41: *mut [i32];                 // in scope 0 at $DIR/address_of.rs:+28:5: +28:20
    let mut _42: *mut [i32; 10];         // in scope 0 at $DIR/address_of.rs:+28:5: +28:6
    let mut _46: *mut [i32; 10];         // in scope 0 at $DIR/address_of.rs:+32:28: +32:29
    let mut _48: *mut [i32; 10];         // in scope 0 at $DIR/address_of.rs:+33:25: +33:26
    scope 1 {
        debug y => _1;                   // in scope 1 at $DIR/address_of.rs:+1:9: +1:10
        let mut _3: &mut [i32; 10];      // in scope 1 at $DIR/address_of.rs:+2:9: +2:14
        scope 2 {
            debug z => _3;               // in scope 2 at $DIR/address_of.rs:+2:9: +2:14
            let _15: *const [i32; 10] as UserTypeProjection { base: UserType(2), projs: [] }; // in scope 2 at $DIR/address_of.rs:+10:9: +10:10
            scope 3 {
                debug p => _15;          // in scope 3 at $DIR/address_of.rs:+10:9: +10:10
                let _16: *const [i32; 10] as UserTypeProjection { base: UserType(4), projs: [] }; // in scope 3 at $DIR/address_of.rs:+11:9: +11:10
                scope 4 {
                    debug p => _16;      // in scope 4 at $DIR/address_of.rs:+11:9: +11:10
                    let _17: *const dyn std::marker::Send as UserTypeProjection { base: UserType(6), projs: [] }; // in scope 4 at $DIR/address_of.rs:+12:9: +12:10
                    scope 5 {
                        debug p => _17;  // in scope 5 at $DIR/address_of.rs:+12:9: +12:10
                        let _19: *const [i32] as UserTypeProjection { base: UserType(8), projs: [] }; // in scope 5 at $DIR/address_of.rs:+13:9: +13:10
                        scope 6 {
                            debug p => _19; // in scope 6 at $DIR/address_of.rs:+13:9: +13:10
                            let _29: *const [i32; 10] as UserTypeProjection { base: UserType(12), projs: [] }; // in scope 6 at $DIR/address_of.rs:+20:9: +20:10
                            scope 7 {
                                debug p => _29; // in scope 7 at $DIR/address_of.rs:+20:9: +20:10
                                let _30: *const [i32; 10] as UserTypeProjection { base: UserType(14), projs: [] }; // in scope 7 at $DIR/address_of.rs:+21:9: +21:10
                                scope 8 {
                                    debug p => _30; // in scope 8 at $DIR/address_of.rs:+21:9: +21:10
                                    let _31: *const dyn std::marker::Send as UserTypeProjection { base: UserType(16), projs: [] }; // in scope 8 at $DIR/address_of.rs:+22:9: +22:10
                                    scope 9 {
                                        debug p => _31; // in scope 9 at $DIR/address_of.rs:+22:9: +22:10
                                        let _33: *const [i32] as UserTypeProjection { base: UserType(18), projs: [] }; // in scope 9 at $DIR/address_of.rs:+23:9: +23:10
                                        scope 10 {
                                            debug p => _33; // in scope 10 at $DIR/address_of.rs:+23:9: +23:10
                                            let _43: *mut [i32; 10] as UserTypeProjection { base: UserType(22), projs: [] }; // in scope 10 at $DIR/address_of.rs:+30:9: +30:10
                                            scope 11 {
                                                debug p => _43; // in scope 11 at $DIR/address_of.rs:+30:9: +30:10
                                                let _44: *mut [i32; 10] as UserTypeProjection { base: UserType(24), projs: [] }; // in scope 11 at $DIR/address_of.rs:+31:9: +31:10
                                                scope 12 {
                                                    debug p => _44; // in scope 12 at $DIR/address_of.rs:+31:9: +31:10
                                                    let _45: *mut dyn std::marker::Send as UserTypeProjection { base: UserType(26), projs: [] }; // in scope 12 at $DIR/address_of.rs:+32:9: +32:10
                                                    scope 13 {
                                                        debug p => _45; // in scope 13 at $DIR/address_of.rs:+32:9: +32:10
                                                        let _47: *mut [i32] as UserTypeProjection { base: UserType(28), projs: [] }; // in scope 13 at $DIR/address_of.rs:+33:9: +33:10
                                                        scope 14 {
                                                            debug p => _47; // in scope 14 at $DIR/address_of.rs:+33:9: +33:10
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    bb0: {
        StorageLive(_1);                 // scope 0 at $DIR/address_of.rs:+1:9: +1:10
        StorageLive(_2);                 // scope 0 at $DIR/address_of.rs:+1:14: +1:21
        _2 = [const 0_i32; 10];          // scope 0 at $DIR/address_of.rs:+1:14: +1:21
        _1 = &_2;                        // scope 0 at $DIR/address_of.rs:+1:13: +1:21
        FakeRead(ForLet(None), _1);      // scope 0 at $DIR/address_of.rs:+1:9: +1:10
        StorageLive(_3);                 // scope 1 at $DIR/address_of.rs:+2:9: +2:14
        StorageLive(_4);                 // scope 1 at $DIR/address_of.rs:+2:22: +2:29
        _4 = [const 0_i32; 10];          // scope 1 at $DIR/address_of.rs:+2:22: +2:29
        _3 = &mut _4;                    // scope 1 at $DIR/address_of.rs:+2:17: +2:29
        FakeRead(ForLet(None), _3);      // scope 1 at $DIR/address_of.rs:+2:9: +2:14
        StorageLive(_5);                 // scope 2 at $DIR/address_of.rs:+4:5: +4:18
        StorageLive(_6);                 // scope 2 at $DIR/address_of.rs:+4:5: +4:18
        _6 = &raw const (*_1);           // scope 2 at $DIR/address_of.rs:+4:5: +4:6
        AscribeUserType(_6, o, UserTypeProjection { base: UserType(0), projs: [] }); // scope 2 at $DIR/address_of.rs:+4:5: +4:18
        _5 = _6;                         // scope 2 at $DIR/address_of.rs:+4:5: +4:18
        StorageDead(_6);                 // scope 2 at $DIR/address_of.rs:+4:18: +4:19
        StorageDead(_5);                 // scope 2 at $DIR/address_of.rs:+4:18: +4:19
        StorageLive(_7);                 // scope 2 at $DIR/address_of.rs:+5:5: +5:26
        _7 = &raw const (*_1);           // scope 2 at $DIR/address_of.rs:+5:5: +5:6
        StorageDead(_7);                 // scope 2 at $DIR/address_of.rs:+5:26: +5:27
        StorageLive(_8);                 // scope 2 at $DIR/address_of.rs:+6:5: +6:25
        StorageLive(_9);                 // scope 2 at $DIR/address_of.rs:+6:5: +6:25
        StorageLive(_10);                // scope 2 at $DIR/address_of.rs:+6:5: +6:6
        _10 = &raw const (*_1);          // scope 2 at $DIR/address_of.rs:+6:5: +6:6
        _9 = move _10 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 2 at $DIR/address_of.rs:+6:5: +6:6
        StorageDead(_10);                // scope 2 at $DIR/address_of.rs:+6:5: +6:6
        AscribeUserType(_9, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 2 at $DIR/address_of.rs:+6:5: +6:25
        _8 = _9;                         // scope 2 at $DIR/address_of.rs:+6:5: +6:25
        StorageDead(_9);                 // scope 2 at $DIR/address_of.rs:+6:25: +6:26
        StorageDead(_8);                 // scope 2 at $DIR/address_of.rs:+6:25: +6:26
        StorageLive(_11);                // scope 2 at $DIR/address_of.rs:+7:5: +7:22
        StorageLive(_12);                // scope 2 at $DIR/address_of.rs:+7:5: +7:6
        _12 = &raw const (*_1);          // scope 2 at $DIR/address_of.rs:+7:5: +7:6
        _11 = move _12 as *const [i32] (Pointer(Unsize)); // scope 2 at $DIR/address_of.rs:+7:5: +7:6
        StorageDead(_12);                // scope 2 at $DIR/address_of.rs:+7:5: +7:6
        StorageDead(_11);                // scope 2 at $DIR/address_of.rs:+7:22: +7:23
        StorageLive(_13);                // scope 2 at $DIR/address_of.rs:+8:5: +8:20
        StorageLive(_14);                // scope 2 at $DIR/address_of.rs:+8:5: +8:6
        _14 = &raw const (*_1);          // scope 2 at $DIR/address_of.rs:+8:5: +8:6
        _13 = move _14 as *const i32 (Pointer(ArrayToPointer)); // scope 2 at $DIR/address_of.rs:+8:5: +8:20
        StorageDead(_14);                // scope 2 at $DIR/address_of.rs:+8:19: +8:20
        StorageDead(_13);                // scope 2 at $DIR/address_of.rs:+8:20: +8:21
        StorageLive(_15);                // scope 2 at $DIR/address_of.rs:+10:9: +10:10
        _15 = &raw const (*_1);          // scope 2 at $DIR/address_of.rs:+10:23: +10:24
        FakeRead(ForLet(None), _15);     // scope 2 at $DIR/address_of.rs:+10:9: +10:10
        AscribeUserType(_15, o, UserTypeProjection { base: UserType(3), projs: [] }); // scope 2 at $DIR/address_of.rs:+10:12: +10:20
        StorageLive(_16);                // scope 3 at $DIR/address_of.rs:+11:9: +11:10
        _16 = &raw const (*_1);          // scope 3 at $DIR/address_of.rs:+11:31: +11:32
        FakeRead(ForLet(None), _16);     // scope 3 at $DIR/address_of.rs:+11:9: +11:10
        AscribeUserType(_16, o, UserTypeProjection { base: UserType(5), projs: [] }); // scope 3 at $DIR/address_of.rs:+11:12: +11:28
        StorageLive(_17);                // scope 4 at $DIR/address_of.rs:+12:9: +12:10
        StorageLive(_18);                // scope 4 at $DIR/address_of.rs:+12:30: +12:31
        _18 = &raw const (*_1);          // scope 4 at $DIR/address_of.rs:+12:30: +12:31
        _17 = move _18 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 4 at $DIR/address_of.rs:+12:30: +12:31
        StorageDead(_18);                // scope 4 at $DIR/address_of.rs:+12:30: +12:31
        FakeRead(ForLet(None), _17);     // scope 4 at $DIR/address_of.rs:+12:9: +12:10
        AscribeUserType(_17, o, UserTypeProjection { base: UserType(7), projs: [] }); // scope 4 at $DIR/address_of.rs:+12:12: +12:27
        StorageLive(_19);                // scope 5 at $DIR/address_of.rs:+13:9: +13:10
        StorageLive(_20);                // scope 5 at $DIR/address_of.rs:+13:27: +13:28
        _20 = &raw const (*_1);          // scope 5 at $DIR/address_of.rs:+13:27: +13:28
        _19 = move _20 as *const [i32] (Pointer(Unsize)); // scope 5 at $DIR/address_of.rs:+13:27: +13:28
        StorageDead(_20);                // scope 5 at $DIR/address_of.rs:+13:27: +13:28
        FakeRead(ForLet(None), _19);     // scope 5 at $DIR/address_of.rs:+13:9: +13:10
        AscribeUserType(_19, o, UserTypeProjection { base: UserType(9), projs: [] }); // scope 5 at $DIR/address_of.rs:+13:12: +13:24
        StorageLive(_21);                // scope 6 at $DIR/address_of.rs:+15:5: +15:18
        StorageLive(_22);                // scope 6 at $DIR/address_of.rs:+15:5: +15:18
        _22 = &raw const (*_3);          // scope 6 at $DIR/address_of.rs:+15:5: +15:6
        AscribeUserType(_22, o, UserTypeProjection { base: UserType(10), projs: [] }); // scope 6 at $DIR/address_of.rs:+15:5: +15:18
        _21 = _22;                       // scope 6 at $DIR/address_of.rs:+15:5: +15:18
        StorageDead(_22);                // scope 6 at $DIR/address_of.rs:+15:18: +15:19
        StorageDead(_21);                // scope 6 at $DIR/address_of.rs:+15:18: +15:19
        StorageLive(_23);                // scope 6 at $DIR/address_of.rs:+16:5: +16:26
        _23 = &raw const (*_3);          // scope 6 at $DIR/address_of.rs:+16:5: +16:6
        StorageDead(_23);                // scope 6 at $DIR/address_of.rs:+16:26: +16:27
        StorageLive(_24);                // scope 6 at $DIR/address_of.rs:+17:5: +17:25
        StorageLive(_25);                // scope 6 at $DIR/address_of.rs:+17:5: +17:25
        StorageLive(_26);                // scope 6 at $DIR/address_of.rs:+17:5: +17:6
        _26 = &raw const (*_3);          // scope 6 at $DIR/address_of.rs:+17:5: +17:6
        _25 = move _26 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 6 at $DIR/address_of.rs:+17:5: +17:6
        StorageDead(_26);                // scope 6 at $DIR/address_of.rs:+17:5: +17:6
        AscribeUserType(_25, o, UserTypeProjection { base: UserType(11), projs: [] }); // scope 6 at $DIR/address_of.rs:+17:5: +17:25
        _24 = _25;                       // scope 6 at $DIR/address_of.rs:+17:5: +17:25
        StorageDead(_25);                // scope 6 at $DIR/address_of.rs:+17:25: +17:26
        StorageDead(_24);                // scope 6 at $DIR/address_of.rs:+17:25: +17:26
        StorageLive(_27);                // scope 6 at $DIR/address_of.rs:+18:5: +18:22
        StorageLive(_28);                // scope 6 at $DIR/address_of.rs:+18:5: +18:6
        _28 = &raw const (*_3);          // scope 6 at $DIR/address_of.rs:+18:5: +18:6
        _27 = move _28 as *const [i32] (Pointer(Unsize)); // scope 6 at $DIR/address_of.rs:+18:5: +18:6
        StorageDead(_28);                // scope 6 at $DIR/address_of.rs:+18:5: +18:6
        StorageDead(_27);                // scope 6 at $DIR/address_of.rs:+18:22: +18:23
        StorageLive(_29);                // scope 6 at $DIR/address_of.rs:+20:9: +20:10
        _29 = &raw const (*_3);          // scope 6 at $DIR/address_of.rs:+20:23: +20:24
        FakeRead(ForLet(None), _29);     // scope 6 at $DIR/address_of.rs:+20:9: +20:10
        AscribeUserType(_29, o, UserTypeProjection { base: UserType(13), projs: [] }); // scope 6 at $DIR/address_of.rs:+20:12: +20:20
        StorageLive(_30);                // scope 7 at $DIR/address_of.rs:+21:9: +21:10
        _30 = &raw const (*_3);          // scope 7 at $DIR/address_of.rs:+21:31: +21:32
        FakeRead(ForLet(None), _30);     // scope 7 at $DIR/address_of.rs:+21:9: +21:10
        AscribeUserType(_30, o, UserTypeProjection { base: UserType(15), projs: [] }); // scope 7 at $DIR/address_of.rs:+21:12: +21:28
        StorageLive(_31);                // scope 8 at $DIR/address_of.rs:+22:9: +22:10
        StorageLive(_32);                // scope 8 at $DIR/address_of.rs:+22:30: +22:31
        _32 = &raw const (*_3);          // scope 8 at $DIR/address_of.rs:+22:30: +22:31
        _31 = move _32 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 8 at $DIR/address_of.rs:+22:30: +22:31
        StorageDead(_32);                // scope 8 at $DIR/address_of.rs:+22:30: +22:31
        FakeRead(ForLet(None), _31);     // scope 8 at $DIR/address_of.rs:+22:9: +22:10
        AscribeUserType(_31, o, UserTypeProjection { base: UserType(17), projs: [] }); // scope 8 at $DIR/address_of.rs:+22:12: +22:27
        StorageLive(_33);                // scope 9 at $DIR/address_of.rs:+23:9: +23:10
        StorageLive(_34);                // scope 9 at $DIR/address_of.rs:+23:27: +23:28
        _34 = &raw const (*_3);          // scope 9 at $DIR/address_of.rs:+23:27: +23:28
        _33 = move _34 as *const [i32] (Pointer(Unsize)); // scope 9 at $DIR/address_of.rs:+23:27: +23:28
        StorageDead(_34);                // scope 9 at $DIR/address_of.rs:+23:27: +23:28
        FakeRead(ForLet(None), _33);     // scope 9 at $DIR/address_of.rs:+23:9: +23:10
        AscribeUserType(_33, o, UserTypeProjection { base: UserType(19), projs: [] }); // scope 9 at $DIR/address_of.rs:+23:12: +23:24
        StorageLive(_35);                // scope 10 at $DIR/address_of.rs:+25:5: +25:16
        StorageLive(_36);                // scope 10 at $DIR/address_of.rs:+25:5: +25:16
        _36 = &raw mut (*_3);            // scope 10 at $DIR/address_of.rs:+25:5: +25:6
        AscribeUserType(_36, o, UserTypeProjection { base: UserType(20), projs: [] }); // scope 10 at $DIR/address_of.rs:+25:5: +25:16
        _35 = _36;                       // scope 10 at $DIR/address_of.rs:+25:5: +25:16
        StorageDead(_36);                // scope 10 at $DIR/address_of.rs:+25:16: +25:17
        StorageDead(_35);                // scope 10 at $DIR/address_of.rs:+25:16: +25:17
        StorageLive(_37);                // scope 10 at $DIR/address_of.rs:+26:5: +26:24
        _37 = &raw mut (*_3);            // scope 10 at $DIR/address_of.rs:+26:5: +26:6
        StorageDead(_37);                // scope 10 at $DIR/address_of.rs:+26:24: +26:25
        StorageLive(_38);                // scope 10 at $DIR/address_of.rs:+27:5: +27:23
        StorageLive(_39);                // scope 10 at $DIR/address_of.rs:+27:5: +27:23
        StorageLive(_40);                // scope 10 at $DIR/address_of.rs:+27:5: +27:6
        _40 = &raw mut (*_3);            // scope 10 at $DIR/address_of.rs:+27:5: +27:6
        _39 = move _40 as *mut dyn std::marker::Send (Pointer(Unsize)); // scope 10 at $DIR/address_of.rs:+27:5: +27:6
        StorageDead(_40);                // scope 10 at $DIR/address_of.rs:+27:5: +27:6
        AscribeUserType(_39, o, UserTypeProjection { base: UserType(21), projs: [] }); // scope 10 at $DIR/address_of.rs:+27:5: +27:23
        _38 = _39;                       // scope 10 at $DIR/address_of.rs:+27:5: +27:23
        StorageDead(_39);                // scope 10 at $DIR/address_of.rs:+27:23: +27:24
        StorageDead(_38);                // scope 10 at $DIR/address_of.rs:+27:23: +27:24
        StorageLive(_41);                // scope 10 at $DIR/address_of.rs:+28:5: +28:20
        StorageLive(_42);                // scope 10 at $DIR/address_of.rs:+28:5: +28:6
        _42 = &raw mut (*_3);            // scope 10 at $DIR/address_of.rs:+28:5: +28:6
        _41 = move _42 as *mut [i32] (Pointer(Unsize)); // scope 10 at $DIR/address_of.rs:+28:5: +28:6
        StorageDead(_42);                // scope 10 at $DIR/address_of.rs:+28:5: +28:6
        StorageDead(_41);                // scope 10 at $DIR/address_of.rs:+28:20: +28:21
        StorageLive(_43);                // scope 10 at $DIR/address_of.rs:+30:9: +30:10
        _43 = &raw mut (*_3);            // scope 10 at $DIR/address_of.rs:+30:21: +30:22
        FakeRead(ForLet(None), _43);     // scope 10 at $DIR/address_of.rs:+30:9: +30:10
        AscribeUserType(_43, o, UserTypeProjection { base: UserType(23), projs: [] }); // scope 10 at $DIR/address_of.rs:+30:12: +30:18
        StorageLive(_44);                // scope 11 at $DIR/address_of.rs:+31:9: +31:10
        _44 = &raw mut (*_3);            // scope 11 at $DIR/address_of.rs:+31:29: +31:30
        FakeRead(ForLet(None), _44);     // scope 11 at $DIR/address_of.rs:+31:9: +31:10
        AscribeUserType(_44, o, UserTypeProjection { base: UserType(25), projs: [] }); // scope 11 at $DIR/address_of.rs:+31:12: +31:26
        StorageLive(_45);                // scope 12 at $DIR/address_of.rs:+32:9: +32:10
        StorageLive(_46);                // scope 12 at $DIR/address_of.rs:+32:28: +32:29
        _46 = &raw mut (*_3);            // scope 12 at $DIR/address_of.rs:+32:28: +32:29
        _45 = move _46 as *mut dyn std::marker::Send (Pointer(Unsize)); // scope 12 at $DIR/address_of.rs:+32:28: +32:29
        StorageDead(_46);                // scope 12 at $DIR/address_of.rs:+32:28: +32:29
        FakeRead(ForLet(None), _45);     // scope 12 at $DIR/address_of.rs:+32:9: +32:10
        AscribeUserType(_45, o, UserTypeProjection { base: UserType(27), projs: [] }); // scope 12 at $DIR/address_of.rs:+32:12: +32:25
        StorageLive(_47);                // scope 13 at $DIR/address_of.rs:+33:9: +33:10
        StorageLive(_48);                // scope 13 at $DIR/address_of.rs:+33:25: +33:26
        _48 = &raw mut (*_3);            // scope 13 at $DIR/address_of.rs:+33:25: +33:26
        _47 = move _48 as *mut [i32] (Pointer(Unsize)); // scope 13 at $DIR/address_of.rs:+33:25: +33:26
        StorageDead(_48);                // scope 13 at $DIR/address_of.rs:+33:25: +33:26
        FakeRead(ForLet(None), _47);     // scope 13 at $DIR/address_of.rs:+33:9: +33:10
        AscribeUserType(_47, o, UserTypeProjection { base: UserType(29), projs: [] }); // scope 13 at $DIR/address_of.rs:+33:12: +33:22
        _0 = const ();                   // scope 0 at $DIR/address_of.rs:+0:26: +34:2
        StorageDead(_47);                // scope 13 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_45);                // scope 12 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_44);                // scope 11 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_43);                // scope 10 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_33);                // scope 9 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_31);                // scope 8 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_30);                // scope 7 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_29);                // scope 6 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_19);                // scope 5 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_17);                // scope 4 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_16);                // scope 3 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_15);                // scope 2 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_4);                 // scope 1 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_3);                 // scope 1 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_2);                 // scope 0 at $DIR/address_of.rs:+34:1: +34:2
        StorageDead(_1);                 // scope 0 at $DIR/address_of.rs:+34:1: +34:2
        return;                          // scope 0 at $DIR/address_of.rs:+34:2: +34:2
    }
}