rust/tests/mir-opt/inline/inline_closure_captures.foo.Inline.after.mir

65 lines
1.6 KiB
Rust
Raw Normal View History

2020-04-04 12:15:01 -05:00
// MIR for `foo` after Inline
fn foo(_1: T, _2: i32) -> (i32, T) {
2023-06-06 08:47:00 -05:00
debug t => _1;
debug q => _2;
let mut _0: (i32, T);
let _3: {closure@foo<T>::{closure#0}};
2023-06-06 08:47:00 -05:00
let mut _4: &i32;
let mut _5: &T;
let mut _6: &{closure@foo<T>::{closure#0}};
2023-06-06 08:47:00 -05:00
let mut _7: (i32,);
let mut _8: i32;
let mut _9: i32;
2020-04-04 12:15:01 -05:00
scope 1 {
2023-06-06 08:47:00 -05:00
debug x => _3;
scope 2 (inlined foo::<T>::{closure#0}) {
debug _q => _9;
debug q => (*((*_6).0: &i32));
debug t => (*((*_6).1: &T));
let mut _10: &i32;
let mut _11: i32;
let mut _12: &T;
let mut _13: T;
2020-04-04 12:15:01 -05:00
}
}
bb0: {
2023-06-06 08:47:00 -05:00
StorageLive(_3);
StorageLive(_4);
_4 = &_2;
StorageLive(_5);
_5 = &_1;
_3 = {closure@foo::<T>::{closure#0}} { q: move _4, t: move _5 };
2023-06-06 08:47:00 -05:00
StorageDead(_5);
StorageDead(_4);
StorageLive(_6);
_6 = &_3;
StorageLive(_7);
StorageLive(_8);
_8 = _2;
_7 = (move _8,);
StorageLive(_9);
_9 = move (_7.0: i32);
2023-10-04 12:50:03 -05:00
StorageLive(_10);
StorageLive(_12);
2023-06-06 08:47:00 -05:00
StorageLive(_11);
2023-04-12 13:39:56 -05:00
_10 = ((*_6).0: &i32);
2023-06-06 08:47:00 -05:00
_11 = (*_10);
StorageLive(_13);
2023-04-12 13:39:56 -05:00
_12 = ((*_6).1: &T);
2023-06-06 08:47:00 -05:00
_13 = (*_12);
_0 = (move _11, move _13);
StorageDead(_13);
StorageDead(_11);
2023-10-04 12:50:03 -05:00
StorageDead(_12);
StorageDead(_10);
2023-06-06 08:47:00 -05:00
StorageDead(_9);
StorageDead(_8);
StorageDead(_7);
StorageDead(_6);
StorageDead(_3);
return;
2020-04-04 12:15:01 -05:00
}
}