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
|
- // MIR for `main` before Derefer
+ // MIR for `main` after Derefer
fn main() -> () {
let mut _0: ();
let mut _1: (i32, i32);
let mut _3: &mut (i32, i32);
let mut _5: &mut (i32, &mut (i32, i32));
let mut _7: &mut (i32, &mut (i32, &mut (i32, i32)));
+ let mut _10: &mut (i32, &mut (i32, &mut (i32, i32)));
+ let mut _11: &mut (i32, &mut (i32, i32));
+ let mut _12: &mut (i32, i32);
+ let mut _13: &mut (i32, &mut (i32, &mut (i32, i32)));
+ let mut _14: &mut (i32, &mut (i32, i32));
+ let mut _15: &mut (i32, i32);
scope 1 {
debug a => _1;
let mut _2: (i32, &mut (i32, i32));
scope 2 {
debug b => _2;
let mut _4: (i32, &mut (i32, &mut (i32, i32)));
scope 3 {
debug c => _4;
let mut _6: (i32, &mut (i32, &mut (i32, &mut (i32, i32))));
scope 4 {
debug d => _6;
let _8: &mut i32;
scope 5 {
debug x => _8;
let _9: &mut i32;
scope 6 {
debug y => _9;
}
}
}
}
}
}
bb0: {
StorageLive(_1);
_1 = (const 42_i32, const 43_i32);
StorageLive(_2);
StorageLive(_3);
_3 = &mut _1;
_2 = (const 99_i32, move _3);
StorageDead(_3);
StorageLive(_4);
StorageLive(_5);
_5 = &mut _2;
_4 = (const 11_i32, move _5);
StorageDead(_5);
StorageLive(_6);
StorageLive(_7);
_7 = &mut _4;
_6 = (const 13_i32, move _7);
StorageDead(_7);
StorageLive(_8);
- _8 = &mut ((*((*((*(_6.1: &mut (i32, &mut (i32, &mut (i32, i32))))).1: &mut (i32, &mut (i32, i32)))).1: &mut (i32, i32))).1: i32);
+ _10 = deref_copy (_6.1: &mut (i32, &mut (i32, &mut (i32, i32))));
+ _11 = deref_copy ((*_10).1: &mut (i32, &mut (i32, i32)));
+ _12 = deref_copy ((*_11).1: &mut (i32, i32));
+ _8 = &mut ((*_12).1: i32);
StorageLive(_9);
- _9 = &mut ((*((*((*(_6.1: &mut (i32, &mut (i32, &mut (i32, i32))))).1: &mut (i32, &mut (i32, i32)))).1: &mut (i32, i32))).1: i32);
+ _13 = deref_copy (_6.1: &mut (i32, &mut (i32, &mut (i32, i32))));
+ _14 = deref_copy ((*_13).1: &mut (i32, &mut (i32, i32)));
+ _15 = deref_copy ((*_14).1: &mut (i32, i32));
+ _9 = &mut ((*_15).1: i32);
_0 = const ();
StorageDead(_9);
StorageDead(_8);
StorageDead(_6);
StorageDead(_4);
StorageDead(_2);
StorageDead(_1);
return;
}
}
|