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
|
// MIR for `bar` after Inline
fn bar() -> bool {
let mut _0: bool; // return place in scope 0 at $DIR/inline-retag.rs:+0:13: +0:17
let _1: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:+1:9: +1:10
let mut _2: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:+2:5: +2:6
let mut _3: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:7: +2:9
let _4: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:7: +2:9
let _5: i32; // in scope 0 at $DIR/inline-retag.rs:+2:8: +2:9
let mut _6: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:11: +2:14
let _7: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:11: +2:14
let _8: i32; // in scope 0 at $DIR/inline-retag.rs:+2:12: +2:14
scope 1 {
debug f => _1; // in scope 1 at $DIR/inline-retag.rs:+1:9: +1:10
let mut _9: &i32; // in scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
let mut _10: &i32; // in scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
scope 2 (inlined foo) { // at $DIR/inline-retag.rs:12:5: 12:15
debug x => _3; // in scope 2 at $DIR/inline-retag.rs:+6:8: +6:9
debug y => _6; // in scope 2 at $DIR/inline-retag.rs:+6:17: +6:18
let mut _11: i32; // in scope 2 at $DIR/inline-retag.rs:+7:5: +7:7
let mut _12: i32; // in scope 2 at $DIR/inline-retag.rs:+7:11: +7:13
}
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-retag.rs:+1:9: +1:10
_1 = foo; // scope 0 at $DIR/inline-retag.rs:+1:13: +1:16
// mir::Constant
// + span: $DIR/inline-retag.rs:11:13: 11:16
// + literal: Const { ty: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo}, val: Value(<ZST>) }
StorageLive(_2); // scope 1 at $DIR/inline-retag.rs:+2:5: +2:6
_2 = _1; // scope 1 at $DIR/inline-retag.rs:+2:5: +2:6
StorageLive(_3); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
StorageLive(_4); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
_10 = const bar::promoted[1]; // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
// mir::Constant
// + span: $DIR/inline-retag.rs:12:7: 12:9
// + literal: Const { ty: &i32, val: Unevaluated(bar, [], Some(promoted[1])) }
Retag(_10); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
_4 = &(*_10); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
Retag(_4); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
_3 = &(*_4); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
Retag(_3); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
StorageLive(_6); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
StorageLive(_7); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
_9 = const bar::promoted[0]; // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
// mir::Constant
// + span: $DIR/inline-retag.rs:12:11: 12:14
// + literal: Const { ty: &i32, val: Unevaluated(bar, [], Some(promoted[0])) }
Retag(_9); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
_7 = &(*_9); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
Retag(_7); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
_6 = &(*_7); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
Retag(_6); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
Retag(_3); // scope 2 at $DIR/inline-retag.rs:+6:1: +8:2
Retag(_6); // scope 2 at $DIR/inline-retag.rs:+6:1: +8:2
StorageLive(_11); // scope 2 at $DIR/inline-retag.rs:+7:5: +7:7
_11 = (*_3); // scope 2 at $DIR/inline-retag.rs:+7:5: +7:7
StorageLive(_12); // scope 2 at $DIR/inline-retag.rs:+7:11: +7:13
_12 = (*_6); // scope 2 at $DIR/inline-retag.rs:+7:11: +7:13
_0 = Eq(move _11, move _12); // scope 2 at $DIR/inline-retag.rs:+7:5: +7:13
StorageDead(_12); // scope 2 at $DIR/inline-retag.rs:+7:12: +7:13
StorageDead(_11); // scope 2 at $DIR/inline-retag.rs:+7:12: +7:13
StorageDead(_6); // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
StorageDead(_3); // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
StorageDead(_2); // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
StorageDead(_1); // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
StorageDead(_7); // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
StorageDead(_4); // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
return; // scope 0 at $DIR/inline-retag.rs:+3:2: +3:2
}
}
|