rust/tests/mir-opt/inline/inline_closure_borrows_arg.foo.Inline.after.mir
2023-06-15 15:19:11 -04:00

51 lines
1.1 KiB
Rust

// MIR for `foo` after Inline
fn foo(_1: T, _2: &i32) -> i32 {
debug _t => _1;
debug q => _2;
let mut _0: i32;
let _3: [closure@foo<T>::{closure#0}];
let mut _4: &[closure@foo<T>::{closure#0}];
let mut _5: (&i32, &i32);
let mut _6: &i32;
let mut _7: &i32;
let mut _8: &i32;
let mut _9: &i32;
scope 1 {
debug x => _3;
scope 2 (inlined foo::<T>::{closure#0}) {
debug r => _8;
debug _s => _9;
scope 3 {
debug variable => _8;
}
}
}
bb0: {
StorageLive(_3);
_3 = [closure@foo::<T>::{closure#0}];
StorageLive(_4);
_4 = &_3;
StorageLive(_5);
StorageLive(_6);
_6 = &(*_2);
StorageLive(_7);
_7 = &(*_2);
_5 = (move _6, move _7);
StorageLive(_8);
_8 = move (_5.0: &i32);
StorageLive(_9);
_9 = move (_5.1: &i32);
_0 = (*_8);
StorageDead(_9);
StorageDead(_8);
StorageDead(_7);
StorageDead(_6);
StorageDead(_5);
StorageDead(_4);
StorageDead(_3);
return;
}
}