mir-opt & codegen test updates
`SimplifyArm` and such are currently in `-Zunsound-mir-opts` and thus weren't running by default, so having something like them for the new desugar shouldn't be necessary for switching.
This commit is contained in:
parent
266a72637a
commit
47b99485a3
10 changed files with 352 additions and 349 deletions
|
|
@ -7,11 +7,28 @@
|
|||
|
||||
type R = Result<u64, i32>;
|
||||
|
||||
// This was written to the `?` from `try_trait`,
|
||||
// but `try_trait_v2` uses a different structure,
|
||||
// so the relevant desugar is copied inline
|
||||
// in order to keep the test testing the same thing.
|
||||
#[no_mangle]
|
||||
fn try_identity(x: R) -> R {
|
||||
pub fn try_identity(x: R) -> R {
|
||||
// CHECK: start:
|
||||
// CHECK-NOT: br {{.*}}
|
||||
// CHECK ret void
|
||||
let y = x?;
|
||||
let y = match into_result(x) {
|
||||
Err(e) => return from_error(From::from(e)),
|
||||
Ok(v) => v,
|
||||
};
|
||||
Ok(y)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn into_result<T, E>(r: Result<T, E>) -> Result<T, E> {
|
||||
r
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn from_error<T, E>(e: E) -> Result<T, E> {
|
||||
Err(e)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,21 +4,20 @@ fn test() -> Option<Box<u32>> {
|
|||
let mut _0: std::option::Option<std::boxed::Box<u32>>; // return place in scope 0 at $DIR/issue-62289.rs:8:14: 8:30
|
||||
let mut _1: std::boxed::Box<u32>; // in scope 0 at $DIR/issue-62289.rs:9:10: 9:21
|
||||
let mut _2: std::boxed::Box<u32>; // in scope 0 at $DIR/issue-62289.rs:9:10: 9:21
|
||||
let mut _3: std::result::Result<u32, std::option::NoneError>; // in scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
let mut _3: std::ops::ControlFlow<std::option::Option<std::convert::Infallible>, u32>; // in scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
let mut _4: std::option::Option<u32>; // in scope 0 at $DIR/issue-62289.rs:9:15: 9:19
|
||||
let mut _5: isize; // in scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
let _6: std::option::NoneError; // in scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
let _6: std::option::Option<std::convert::Infallible>; // in scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
let mut _7: !; // in scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
let mut _8: std::option::NoneError; // in scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
let mut _9: std::option::NoneError; // in scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
let _10: u32; // in scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
let mut _8: std::option::Option<std::convert::Infallible>; // in scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
let _9: u32; // in scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
scope 1 {
|
||||
debug err => _6; // in scope 1 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
debug residual => _6; // in scope 1 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
scope 2 {
|
||||
}
|
||||
}
|
||||
scope 3 {
|
||||
debug val => _10; // in scope 3 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
debug val => _9; // in scope 3 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
scope 4 {
|
||||
}
|
||||
}
|
||||
|
|
@ -30,10 +29,10 @@ fn test() -> Option<Box<u32>> {
|
|||
StorageLive(_3); // scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
StorageLive(_4); // scope 0 at $DIR/issue-62289.rs:9:15: 9:19
|
||||
_4 = Option::<u32>::None; // scope 0 at $DIR/issue-62289.rs:9:15: 9:19
|
||||
_3 = <Option<u32> as Try>::into_result(move _4) -> [return: bb1, unwind: bb12]; // scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
_3 = <Option<u32> as Try>::branch(move _4) -> [return: bb1, unwind: bb11]; // scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
// mir::Constant
|
||||
// + span: $DIR/issue-62289.rs:9:15: 9:20
|
||||
// + literal: Const { ty: fn(std::option::Option<u32>) -> std::result::Result<<std::option::Option<u32> as std::ops::Try>::Ok, <std::option::Option<u32> as std::ops::Try>::Error> {<std::option::Option<u32> as std::ops::Try>::into_result}, val: Value(Scalar(<ZST>)) }
|
||||
// + literal: Const { ty: fn(std::option::Option<u32>) -> std::ops::ControlFlow<<std::option::Option<u32> as std::ops::Try>::Residual, <std::option::Option<u32> as std::ops::Try>::Output> {<std::option::Option<u32> as std::ops::Try>::branch}, val: Value(Scalar(<ZST>)) }
|
||||
}
|
||||
|
||||
bb1: {
|
||||
|
|
@ -43,12 +42,12 @@ fn test() -> Option<Box<u32>> {
|
|||
}
|
||||
|
||||
bb2: {
|
||||
StorageLive(_10); // scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
_10 = ((_3 as Ok).0: u32); // scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
(*_2) = _10; // scope 4 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
StorageDead(_10); // scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
StorageLive(_9); // scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
_9 = ((_3 as Continue).0: u32); // scope 0 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
(*_2) = _9; // scope 4 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
StorageDead(_9); // scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
_1 = move _2; // scope 0 at $DIR/issue-62289.rs:9:10: 9:21
|
||||
drop(_2) -> [return: bb7, unwind: bb11]; // scope 0 at $DIR/issue-62289.rs:9:20: 9:21
|
||||
drop(_2) -> [return: bb6, unwind: bb10]; // scope 0 at $DIR/issue-62289.rs:9:20: 9:21
|
||||
}
|
||||
|
||||
bb3: {
|
||||
|
|
@ -57,62 +56,53 @@ fn test() -> Option<Box<u32>> {
|
|||
|
||||
bb4: {
|
||||
StorageLive(_6); // scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
_6 = ((_3 as Err).0: std::option::NoneError); // scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
_6 = ((_3 as Break).0: std::option::Option<std::convert::Infallible>); // scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
StorageLive(_8); // scope 2 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
StorageLive(_9); // scope 2 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
_9 = _6; // scope 2 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
_8 = <NoneError as From<NoneError>>::from(move _9) -> [return: bb5, unwind: bb12]; // scope 2 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
_8 = _6; // scope 2 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
_0 = <Option<Box<u32>> as FromResidual<Option<Infallible>>>::from_residual(move _8) -> [return: bb5, unwind: bb11]; // scope 2 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
// mir::Constant
|
||||
// + span: $DIR/issue-62289.rs:9:19: 9:20
|
||||
// + literal: Const { ty: fn(std::option::NoneError) -> std::option::NoneError {<std::option::NoneError as std::convert::From<std::option::NoneError>>::from}, val: Value(Scalar(<ZST>)) }
|
||||
// + literal: Const { ty: fn(std::option::Option<std::convert::Infallible>) -> std::option::Option<std::boxed::Box<u32>> {<std::option::Option<std::boxed::Box<u32>> as std::ops::FromResidual<std::option::Option<std::convert::Infallible>>>::from_residual}, val: Value(Scalar(<ZST>)) }
|
||||
}
|
||||
|
||||
bb5: {
|
||||
StorageDead(_9); // scope 2 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
_0 = <Option<Box<u32>> as Try>::from_error(move _8) -> [return: bb6, unwind: bb12]; // scope 2 at $DIR/issue-62289.rs:9:15: 9:20
|
||||
// mir::Constant
|
||||
// + span: $DIR/issue-62289.rs:9:15: 9:20
|
||||
// + literal: Const { ty: fn(<std::option::Option<std::boxed::Box<u32>> as std::ops::Try>::Error) -> std::option::Option<std::boxed::Box<u32>> {<std::option::Option<std::boxed::Box<u32>> as std::ops::Try>::from_error}, val: Value(Scalar(<ZST>)) }
|
||||
StorageDead(_8); // scope 2 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
StorageDead(_6); // scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
drop(_2) -> bb8; // scope 0 at $DIR/issue-62289.rs:9:20: 9:21
|
||||
}
|
||||
|
||||
bb6: {
|
||||
StorageDead(_8); // scope 2 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
StorageDead(_6); // scope 0 at $DIR/issue-62289.rs:9:19: 9:20
|
||||
drop(_2) -> bb9; // scope 0 at $DIR/issue-62289.rs:9:20: 9:21
|
||||
StorageDead(_2); // scope 0 at $DIR/issue-62289.rs:9:20: 9:21
|
||||
_0 = Option::<Box<u32>>::Some(move _1); // scope 0 at $DIR/issue-62289.rs:9:5: 9:22
|
||||
drop(_1) -> bb7; // scope 0 at $DIR/issue-62289.rs:9:21: 9:22
|
||||
}
|
||||
|
||||
bb7: {
|
||||
StorageDead(_2); // scope 0 at $DIR/issue-62289.rs:9:20: 9:21
|
||||
_0 = Option::<Box<u32>>::Some(move _1); // scope 0 at $DIR/issue-62289.rs:9:5: 9:22
|
||||
drop(_1) -> bb8; // scope 0 at $DIR/issue-62289.rs:9:21: 9:22
|
||||
StorageDead(_1); // scope 0 at $DIR/issue-62289.rs:9:21: 9:22
|
||||
StorageDead(_3); // scope 0 at $DIR/issue-62289.rs:10:1: 10:2
|
||||
goto -> bb9; // scope 0 at $DIR/issue-62289.rs:10:2: 10:2
|
||||
}
|
||||
|
||||
bb8: {
|
||||
StorageDead(_1); // scope 0 at $DIR/issue-62289.rs:9:21: 9:22
|
||||
StorageDead(_3); // scope 0 at $DIR/issue-62289.rs:10:1: 10:2
|
||||
goto -> bb10; // scope 0 at $DIR/issue-62289.rs:10:2: 10:2
|
||||
}
|
||||
|
||||
bb9: {
|
||||
StorageDead(_2); // scope 0 at $DIR/issue-62289.rs:9:20: 9:21
|
||||
StorageDead(_1); // scope 0 at $DIR/issue-62289.rs:9:21: 9:22
|
||||
StorageDead(_3); // scope 0 at $DIR/issue-62289.rs:10:1: 10:2
|
||||
goto -> bb10; // scope 0 at $DIR/issue-62289.rs:10:2: 10:2
|
||||
goto -> bb9; // scope 0 at $DIR/issue-62289.rs:10:2: 10:2
|
||||
}
|
||||
|
||||
bb10: {
|
||||
bb9: {
|
||||
return; // scope 0 at $DIR/issue-62289.rs:10:2: 10:2
|
||||
}
|
||||
|
||||
bb10 (cleanup): {
|
||||
drop(_1) -> bb12; // scope 0 at $DIR/issue-62289.rs:9:21: 9:22
|
||||
}
|
||||
|
||||
bb11 (cleanup): {
|
||||
drop(_1) -> bb13; // scope 0 at $DIR/issue-62289.rs:9:21: 9:22
|
||||
drop(_2) -> bb12; // scope 0 at $DIR/issue-62289.rs:9:20: 9:21
|
||||
}
|
||||
|
||||
bb12 (cleanup): {
|
||||
drop(_2) -> bb13; // scope 0 at $DIR/issue-62289.rs:9:20: 9:21
|
||||
}
|
||||
|
||||
bb13 (cleanup): {
|
||||
resume; // scope 0 at $DIR/issue-62289.rs:8:1: 10:2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,8 +20,23 @@ fn id_result(r: Result<u8, i32>) -> Result<u8, i32> {
|
|||
}
|
||||
}
|
||||
|
||||
fn into_result<T, E>(r: Result<T, E>) -> Result<T, E> {
|
||||
r
|
||||
}
|
||||
|
||||
fn from_error<T, E>(e: E) -> Result<T, E> {
|
||||
Err(e)
|
||||
}
|
||||
|
||||
// This was written to the `?` from `try_trait`,
|
||||
// but `try_trait_v2` uses a different structure,
|
||||
// so the relevant desugar is copied inline
|
||||
// in order to keep the test testing the same thing.
|
||||
fn id_try(r: Result<u8, i32>) -> Result<u8, i32> {
|
||||
let x = r?;
|
||||
let x = match into_result(r) {
|
||||
Err(e) => return from_error(From::from(e)),
|
||||
Ok(v) => v,
|
||||
};
|
||||
Ok(x)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,101 +2,93 @@
|
|||
+ // MIR for `id_try` after SimplifyArmIdentity
|
||||
|
||||
fn id_try(_1: Result<u8, i32>) -> Result<u8, i32> {
|
||||
debug r => _1; // in scope 0 at $DIR/simplify-arm.rs:23:11: 23:12
|
||||
let mut _0: std::result::Result<u8, i32>; // return place in scope 0 at $DIR/simplify-arm.rs:23:34: 23:49
|
||||
let _2: u8; // in scope 0 at $DIR/simplify-arm.rs:24:9: 24:10
|
||||
let mut _3: std::result::Result<u8, i32>; // in scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
let mut _4: std::result::Result<u8, i32>; // in scope 0 at $DIR/simplify-arm.rs:24:13: 24:14
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let _10: u8; // in scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
let mut _11: u8; // in scope 0 at $DIR/simplify-arm.rs:25:8: 25:9
|
||||
debug r => _1; // in scope 0 at $DIR/simplify-arm.rs:35:11: 35:12
|
||||
let mut _0: std::result::Result<u8, i32>; // return place in scope 0 at $DIR/simplify-arm.rs:35:34: 35:49
|
||||
let _2: u8; // in scope 0 at $DIR/simplify-arm.rs:36:9: 36:10
|
||||
let mut _3: std::result::Result<u8, i32>; // in scope 0 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
let mut _4: std::result::Result<u8, i32>; // in scope 0 at $DIR/simplify-arm.rs:36:31: 36:32
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify-arm.rs:37:9: 37:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify-arm.rs:37:13: 37:14
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify-arm.rs:37:19: 37:51
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify-arm.rs:37:37: 37:50
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify-arm.rs:37:48: 37:49
|
||||
let _10: u8; // in scope 0 at $DIR/simplify-arm.rs:38:12: 38:13
|
||||
let mut _11: u8; // in scope 0 at $DIR/simplify-arm.rs:40:8: 40:9
|
||||
scope 1 {
|
||||
- debug x => _2; // in scope 1 at $DIR/simplify-arm.rs:24:9: 24:10
|
||||
+ debug x => ((_0 as Ok).0: u8); // in scope 1 at $DIR/simplify-arm.rs:24:9: 24:10
|
||||
- debug x => _2; // in scope 1 at $DIR/simplify-arm.rs:36:9: 36:10
|
||||
+ debug x => ((_0 as Ok).0: u8); // in scope 1 at $DIR/simplify-arm.rs:36:9: 36:10
|
||||
}
|
||||
scope 2 {
|
||||
- debug err => _6; // in scope 2 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
+ debug err => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
scope 3 {
|
||||
scope 7 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- debug t => _9; // in scope 7 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
+ debug t => ((_0 as Err).0: i32); // in scope 7 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
}
|
||||
scope 8 (inlined <Result<u8, i32> as Try>::from_error) { // at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- debug v => _8; // in scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
+ debug v => ((_0 as Err).0: i32); // in scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
let mut _12: i32; // in scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
}
|
||||
- debug e => _6; // in scope 2 at $DIR/simplify-arm.rs:37:13: 37:14
|
||||
+ debug e => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify-arm.rs:37:13: 37:14
|
||||
scope 5 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify-arm.rs:37:37: 37:50
|
||||
- debug t => _9; // in scope 5 at $DIR/simplify-arm.rs:37:37: 37:50
|
||||
+ debug t => ((_0 as Err).0: i32); // in scope 5 at $DIR/simplify-arm.rs:37:37: 37:50
|
||||
}
|
||||
scope 6 (inlined from_error::<u8, i32>) { // at $DIR/simplify-arm.rs:37:26: 37:51
|
||||
- debug e => _8; // in scope 6 at $DIR/simplify-arm.rs:37:26: 37:51
|
||||
+ debug e => ((_0 as Err).0: i32); // in scope 6 at $DIR/simplify-arm.rs:37:26: 37:51
|
||||
}
|
||||
}
|
||||
scope 4 {
|
||||
- debug val => _10; // in scope 4 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
+ debug val => ((_0 as Ok).0: u8); // in scope 4 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
scope 5 {
|
||||
}
|
||||
scope 3 {
|
||||
- debug v => _10; // in scope 3 at $DIR/simplify-arm.rs:38:12: 38:13
|
||||
+ debug v => ((_0 as Ok).0: u8); // in scope 3 at $DIR/simplify-arm.rs:38:12: 38:13
|
||||
}
|
||||
scope 6 (inlined <Result<u8, i32> as Try>::into_result) { // at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
debug self => _4; // in scope 6 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
scope 4 (inlined into_result::<u8, i32>) { // at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
debug r => _4; // in scope 4 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify-arm.rs:24:9: 24:10
|
||||
StorageLive(_3); // scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
StorageLive(_4); // scope 0 at $DIR/simplify-arm.rs:24:13: 24:14
|
||||
_4 = _1; // scope 0 at $DIR/simplify-arm.rs:24:13: 24:14
|
||||
_3 = move _4; // scope 6 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
StorageDead(_4); // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
_5 = discriminant(_3); // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
switchInt(move _5) -> [0_isize: bb1, 1_isize: bb3, otherwise: bb2]; // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify-arm.rs:36:9: 36:10
|
||||
StorageLive(_3); // scope 0 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
StorageLive(_4); // scope 0 at $DIR/simplify-arm.rs:36:31: 36:32
|
||||
_4 = _1; // scope 0 at $DIR/simplify-arm.rs:36:31: 36:32
|
||||
_3 = move _4; // scope 4 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
StorageDead(_4); // scope 0 at $DIR/simplify-arm.rs:36:32: 36:33
|
||||
_5 = discriminant(_3); // scope 0 at $DIR/simplify-arm.rs:37:9: 37:15
|
||||
switchInt(move _5) -> [0_isize: bb1, 1_isize: bb3, otherwise: bb2]; // scope 0 at $DIR/simplify-arm.rs:37:9: 37:15
|
||||
}
|
||||
|
||||
bb1: {
|
||||
- StorageLive(_10); // scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- _10 = ((_3 as Ok).0: u8); // scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- _2 = _10; // scope 5 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- StorageDead(_10); // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
+ _0 = move _3; // scope 1 at $DIR/simplify-arm.rs:25:5: 25:10
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify-arm.rs:24:15: 24:16
|
||||
- StorageLive(_11); // scope 1 at $DIR/simplify-arm.rs:25:8: 25:9
|
||||
- _11 = _2; // scope 1 at $DIR/simplify-arm.rs:25:8: 25:9
|
||||
- ((_0 as Ok).0: u8) = move _11; // scope 1 at $DIR/simplify-arm.rs:25:5: 25:10
|
||||
- discriminant(_0) = 0; // scope 1 at $DIR/simplify-arm.rs:25:5: 25:10
|
||||
- StorageDead(_11); // scope 1 at $DIR/simplify-arm.rs:25:9: 25:10
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify-arm.rs:26:1: 26:2
|
||||
goto -> bb4; // scope 0 at $DIR/simplify-arm.rs:26:2: 26:2
|
||||
- StorageLive(_10); // scope 0 at $DIR/simplify-arm.rs:38:12: 38:13
|
||||
- _10 = ((_3 as Ok).0: u8); // scope 0 at $DIR/simplify-arm.rs:38:12: 38:13
|
||||
- _2 = _10; // scope 3 at $DIR/simplify-arm.rs:38:18: 38:19
|
||||
- StorageDead(_10); // scope 0 at $DIR/simplify-arm.rs:38:18: 38:19
|
||||
+ _0 = move _3; // scope 1 at $DIR/simplify-arm.rs:40:5: 40:10
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify-arm.rs:39:6: 39:7
|
||||
- StorageLive(_11); // scope 1 at $DIR/simplify-arm.rs:40:8: 40:9
|
||||
- _11 = _2; // scope 1 at $DIR/simplify-arm.rs:40:8: 40:9
|
||||
- ((_0 as Ok).0: u8) = move _11; // scope 1 at $DIR/simplify-arm.rs:40:5: 40:10
|
||||
- discriminant(_0) = 0; // scope 1 at $DIR/simplify-arm.rs:40:5: 40:10
|
||||
- StorageDead(_11); // scope 1 at $DIR/simplify-arm.rs:40:9: 40:10
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify-arm.rs:41:1: 41:2
|
||||
goto -> bb4; // scope 0 at $DIR/simplify-arm.rs:41:2: 41:2
|
||||
}
|
||||
|
||||
bb2: {
|
||||
unreachable; // scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
unreachable; // scope 0 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
}
|
||||
|
||||
bb3: {
|
||||
- StorageLive(_6); // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- _6 = ((_3 as Err).0: i32); // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- StorageLive(_8); // scope 3 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- StorageLive(_9); // scope 3 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- _9 = _6; // scope 3 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- _8 = move _9; // scope 7 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- StorageDead(_9); // scope 3 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- StorageLive(_12); // scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- _12 = move _8; // scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- ((_0 as Err).0: i32) = move _12; // scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- discriminant(_0) = 1; // scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- StorageDead(_12); // scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- StorageDead(_8); // scope 3 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- StorageDead(_6); // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
+ _0 = move _3; // scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify-arm.rs:24:15: 24:16
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify-arm.rs:26:1: 26:2
|
||||
goto -> bb4; // scope 0 at $DIR/simplify-arm.rs:26:2: 26:2
|
||||
- StorageLive(_6); // scope 0 at $DIR/simplify-arm.rs:37:13: 37:14
|
||||
- _6 = ((_3 as Err).0: i32); // scope 0 at $DIR/simplify-arm.rs:37:13: 37:14
|
||||
- StorageLive(_8); // scope 2 at $DIR/simplify-arm.rs:37:37: 37:50
|
||||
- StorageLive(_9); // scope 2 at $DIR/simplify-arm.rs:37:48: 37:49
|
||||
- _9 = _6; // scope 2 at $DIR/simplify-arm.rs:37:48: 37:49
|
||||
- _8 = move _9; // scope 5 at $DIR/simplify-arm.rs:37:37: 37:50
|
||||
- StorageDead(_9); // scope 2 at $DIR/simplify-arm.rs:37:49: 37:50
|
||||
- ((_0 as Err).0: i32) = move _8; // scope 6 at $DIR/simplify-arm.rs:37:26: 37:51
|
||||
- discriminant(_0) = 1; // scope 6 at $DIR/simplify-arm.rs:37:26: 37:51
|
||||
- StorageDead(_8); // scope 2 at $DIR/simplify-arm.rs:37:50: 37:51
|
||||
- StorageDead(_6); // scope 0 at $DIR/simplify-arm.rs:37:50: 37:51
|
||||
+ _0 = move _3; // scope 6 at $DIR/simplify-arm.rs:37:26: 37:51
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify-arm.rs:39:6: 39:7
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify-arm.rs:41:1: 41:2
|
||||
goto -> bb4; // scope 0 at $DIR/simplify-arm.rs:41:2: 41:2
|
||||
}
|
||||
|
||||
bb4: {
|
||||
return; // scope 0 at $DIR/simplify-arm.rs:26:2: 26:2
|
||||
return; // scope 0 at $DIR/simplify-arm.rs:41:2: 41:2
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,75 +2,70 @@
|
|||
+ // MIR for `id_try` after SimplifyBranchSame
|
||||
|
||||
fn id_try(_1: Result<u8, i32>) -> Result<u8, i32> {
|
||||
debug r => _1; // in scope 0 at $DIR/simplify-arm.rs:23:11: 23:12
|
||||
let mut _0: std::result::Result<u8, i32>; // return place in scope 0 at $DIR/simplify-arm.rs:23:34: 23:49
|
||||
let _2: u8; // in scope 0 at $DIR/simplify-arm.rs:24:9: 24:10
|
||||
let mut _3: std::result::Result<u8, i32>; // in scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
let mut _4: std::result::Result<u8, i32>; // in scope 0 at $DIR/simplify-arm.rs:24:13: 24:14
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
let _10: u8; // in scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
let mut _11: u8; // in scope 0 at $DIR/simplify-arm.rs:25:8: 25:9
|
||||
debug r => _1; // in scope 0 at $DIR/simplify-arm.rs:35:11: 35:12
|
||||
let mut _0: std::result::Result<u8, i32>; // return place in scope 0 at $DIR/simplify-arm.rs:35:34: 35:49
|
||||
let _2: u8; // in scope 0 at $DIR/simplify-arm.rs:36:9: 36:10
|
||||
let mut _3: std::result::Result<u8, i32>; // in scope 0 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
let mut _4: std::result::Result<u8, i32>; // in scope 0 at $DIR/simplify-arm.rs:36:31: 36:32
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify-arm.rs:37:9: 37:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify-arm.rs:37:13: 37:14
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify-arm.rs:37:19: 37:51
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify-arm.rs:37:37: 37:50
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify-arm.rs:37:48: 37:49
|
||||
let _10: u8; // in scope 0 at $DIR/simplify-arm.rs:38:12: 38:13
|
||||
let mut _11: u8; // in scope 0 at $DIR/simplify-arm.rs:40:8: 40:9
|
||||
scope 1 {
|
||||
debug x => ((_0 as Ok).0: u8); // in scope 1 at $DIR/simplify-arm.rs:24:9: 24:10
|
||||
debug x => ((_0 as Ok).0: u8); // in scope 1 at $DIR/simplify-arm.rs:36:9: 36:10
|
||||
}
|
||||
scope 2 {
|
||||
debug err => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
scope 3 {
|
||||
scope 7 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
debug t => ((_0 as Err).0: i32); // in scope 7 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
}
|
||||
scope 8 (inlined <Result<u8, i32> as Try>::from_error) { // at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
debug v => ((_0 as Err).0: i32); // in scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
let mut _12: i32; // in scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
}
|
||||
debug e => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify-arm.rs:37:13: 37:14
|
||||
scope 5 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify-arm.rs:37:37: 37:50
|
||||
debug t => ((_0 as Err).0: i32); // in scope 5 at $DIR/simplify-arm.rs:37:37: 37:50
|
||||
}
|
||||
scope 6 (inlined from_error::<u8, i32>) { // at $DIR/simplify-arm.rs:37:26: 37:51
|
||||
debug e => ((_0 as Err).0: i32); // in scope 6 at $DIR/simplify-arm.rs:37:26: 37:51
|
||||
}
|
||||
}
|
||||
scope 4 {
|
||||
debug val => ((_0 as Ok).0: u8); // in scope 4 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
scope 5 {
|
||||
}
|
||||
scope 3 {
|
||||
debug v => ((_0 as Ok).0: u8); // in scope 3 at $DIR/simplify-arm.rs:38:12: 38:13
|
||||
}
|
||||
scope 6 (inlined <Result<u8, i32> as Try>::into_result) { // at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
debug self => _4; // in scope 6 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
scope 4 (inlined into_result::<u8, i32>) { // at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
debug r => _4; // in scope 4 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify-arm.rs:24:9: 24:10
|
||||
StorageLive(_3); // scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
StorageLive(_4); // scope 0 at $DIR/simplify-arm.rs:24:13: 24:14
|
||||
_4 = _1; // scope 0 at $DIR/simplify-arm.rs:24:13: 24:14
|
||||
_3 = move _4; // scope 6 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
StorageDead(_4); // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
_5 = discriminant(_3); // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
- switchInt(move _5) -> [0_isize: bb1, 1_isize: bb3, otherwise: bb2]; // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
+ goto -> bb1; // scope 0 at $DIR/simplify-arm.rs:24:14: 24:15
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify-arm.rs:36:9: 36:10
|
||||
StorageLive(_3); // scope 0 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
StorageLive(_4); // scope 0 at $DIR/simplify-arm.rs:36:31: 36:32
|
||||
_4 = _1; // scope 0 at $DIR/simplify-arm.rs:36:31: 36:32
|
||||
_3 = move _4; // scope 4 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
StorageDead(_4); // scope 0 at $DIR/simplify-arm.rs:36:32: 36:33
|
||||
_5 = discriminant(_3); // scope 0 at $DIR/simplify-arm.rs:37:9: 37:15
|
||||
- switchInt(move _5) -> [0_isize: bb1, 1_isize: bb3, otherwise: bb2]; // scope 0 at $DIR/simplify-arm.rs:37:9: 37:15
|
||||
+ goto -> bb1; // scope 0 at $DIR/simplify-arm.rs:37:9: 37:15
|
||||
}
|
||||
|
||||
bb1: {
|
||||
_0 = move _3; // scope 1 at $DIR/simplify-arm.rs:25:5: 25:10
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify-arm.rs:24:15: 24:16
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify-arm.rs:26:1: 26:2
|
||||
- goto -> bb4; // scope 0 at $DIR/simplify-arm.rs:26:2: 26:2
|
||||
+ goto -> bb2; // scope 0 at $DIR/simplify-arm.rs:26:2: 26:2
|
||||
_0 = move _3; // scope 1 at $DIR/simplify-arm.rs:40:5: 40:10
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify-arm.rs:39:6: 39:7
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify-arm.rs:41:1: 41:2
|
||||
- goto -> bb4; // scope 0 at $DIR/simplify-arm.rs:41:2: 41:2
|
||||
+ goto -> bb2; // scope 0 at $DIR/simplify-arm.rs:41:2: 41:2
|
||||
}
|
||||
|
||||
bb2: {
|
||||
- unreachable; // scope 0 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- unreachable; // scope 0 at $DIR/simplify-arm.rs:36:19: 36:33
|
||||
- }
|
||||
-
|
||||
- bb3: {
|
||||
- _0 = move _3; // scope 8 at $DIR/simplify-arm.rs:24:13: 24:15
|
||||
- StorageDead(_3); // scope 0 at $DIR/simplify-arm.rs:24:15: 24:16
|
||||
- StorageDead(_2); // scope 0 at $DIR/simplify-arm.rs:26:1: 26:2
|
||||
- goto -> bb4; // scope 0 at $DIR/simplify-arm.rs:26:2: 26:2
|
||||
- _0 = move _3; // scope 6 at $DIR/simplify-arm.rs:37:26: 37:51
|
||||
- StorageDead(_3); // scope 0 at $DIR/simplify-arm.rs:39:6: 39:7
|
||||
- StorageDead(_2); // scope 0 at $DIR/simplify-arm.rs:41:1: 41:2
|
||||
- goto -> bb4; // scope 0 at $DIR/simplify-arm.rs:41:2: 41:2
|
||||
- }
|
||||
-
|
||||
- bb4: {
|
||||
return; // scope 0 at $DIR/simplify-arm.rs:26:2: 26:2
|
||||
return; // scope 0 at $DIR/simplify-arm.rs:41:2: 41:2
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,24 @@
|
|||
// EMIT_MIR simplify_try.try_identity.SimplifyLocals.after.mir
|
||||
// EMIT_MIR simplify_try.try_identity.DestinationPropagation.diff
|
||||
|
||||
|
||||
fn into_result<T, E>(r: Result<T, E>) -> Result<T, E> {
|
||||
r
|
||||
}
|
||||
|
||||
fn from_error<T, E>(e: E) -> Result<T, E> {
|
||||
Err(e)
|
||||
}
|
||||
|
||||
// This was written to the `?` from `try_trait`,
|
||||
// but `try_trait_v2` uses a different structure,
|
||||
// so the relevant desugar is copied inline
|
||||
// in order to keep the test testing the same thing.
|
||||
fn try_identity(x: Result<u32, i32>) -> Result<u32, i32> {
|
||||
let y = x?;
|
||||
let y = match into_result(x) {
|
||||
Err(e) => return from_error(From::from(e)),
|
||||
Ok(v) => v,
|
||||
};
|
||||
Ok(y)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,67 +2,62 @@
|
|||
+ // MIR for `try_identity` after DestinationPropagation
|
||||
|
||||
fn try_identity(_1: Result<u32, i32>) -> Result<u32, i32> {
|
||||
debug x => _1; // in scope 0 at $DIR/simplify_try.rs:7:17: 7:18
|
||||
let mut _0: std::result::Result<u32, i32>; // return place in scope 0 at $DIR/simplify_try.rs:7:41: 7:57
|
||||
let _2: u32; // in scope 0 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
let mut _3: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
let mut _4: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let _10: u32; // in scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
let mut _11: u32; // in scope 0 at $DIR/simplify_try.rs:9:8: 9:9
|
||||
debug x => _1; // in scope 0 at $DIR/simplify_try.rs:20:17: 20:18
|
||||
let mut _0: std::result::Result<u32, i32>; // return place in scope 0 at $DIR/simplify_try.rs:20:41: 20:57
|
||||
let _2: u32; // in scope 0 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
let mut _3: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
let mut _4: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify_try.rs:22:19: 22:51
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify_try.rs:22:48: 22:49
|
||||
let _10: u32; // in scope 0 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
let mut _11: u32; // in scope 0 at $DIR/simplify_try.rs:25:8: 25:9
|
||||
scope 1 {
|
||||
debug y => ((_0 as Ok).0: u32); // in scope 1 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
debug y => ((_0 as Ok).0: u32); // in scope 1 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
}
|
||||
scope 2 {
|
||||
debug err => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
scope 3 {
|
||||
scope 7 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify_try.rs:8:14: 8:15
|
||||
debug t => ((_0 as Err).0: i32); // in scope 7 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
}
|
||||
scope 8 (inlined <Result<u32, i32> as Try>::from_error) { // at $DIR/simplify_try.rs:8:13: 8:15
|
||||
debug v => ((_0 as Err).0: i32); // in scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
let mut _12: i32; // in scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
}
|
||||
debug e => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
scope 5 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify_try.rs:22:37: 22:50
|
||||
debug t => ((_0 as Err).0: i32); // in scope 5 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
}
|
||||
scope 6 (inlined from_error::<u32, i32>) { // at $DIR/simplify_try.rs:22:26: 22:51
|
||||
debug e => ((_0 as Err).0: i32); // in scope 6 at $DIR/simplify_try.rs:22:26: 22:51
|
||||
}
|
||||
}
|
||||
scope 4 {
|
||||
debug val => ((_0 as Ok).0: u32); // in scope 4 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
scope 5 {
|
||||
}
|
||||
scope 3 {
|
||||
debug v => ((_0 as Ok).0: u32); // in scope 3 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
}
|
||||
scope 6 (inlined <Result<u32, i32> as Try>::into_result) { // at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- debug self => _4; // in scope 6 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
+ debug self => _0; // in scope 6 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
scope 4 (inlined into_result::<u32, i32>) { // at $DIR/simplify_try.rs:21:19: 21:33
|
||||
- debug r => _4; // in scope 4 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
+ debug r => _0; // in scope 4 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
- StorageLive(_3); // scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- StorageLive(_4); // scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
- _4 = _1; // scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
- _3 = move _4; // scope 6 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- StorageDead(_4); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- _5 = discriminant(_3); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
+ nop; // scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
+ nop; // scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
+ _0 = _1; // scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
+ nop; // scope 6 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
+ nop; // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
+ _5 = discriminant(_0); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
goto -> bb1; // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
- StorageLive(_3); // scope 0 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
- StorageLive(_4); // scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
- _4 = _1; // scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
- _3 = move _4; // scope 4 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
- StorageDead(_4); // scope 0 at $DIR/simplify_try.rs:21:32: 21:33
|
||||
- _5 = discriminant(_3); // scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
+ nop; // scope 0 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
+ nop; // scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
+ _0 = _1; // scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
+ nop; // scope 4 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
+ nop; // scope 0 at $DIR/simplify_try.rs:21:32: 21:33
|
||||
+ _5 = discriminant(_0); // scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
goto -> bb1; // scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
}
|
||||
|
||||
bb1: {
|
||||
- _0 = move _3; // scope 1 at $DIR/simplify_try.rs:9:5: 9:10
|
||||
- StorageDead(_3); // scope 0 at $DIR/simplify_try.rs:8:15: 8:16
|
||||
+ nop; // scope 1 at $DIR/simplify_try.rs:9:5: 9:10
|
||||
+ nop; // scope 0 at $DIR/simplify_try.rs:8:15: 8:16
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify_try.rs:10:1: 10:2
|
||||
return; // scope 0 at $DIR/simplify_try.rs:10:2: 10:2
|
||||
- _0 = move _3; // scope 1 at $DIR/simplify_try.rs:25:5: 25:10
|
||||
- StorageDead(_3); // scope 0 at $DIR/simplify_try.rs:24:6: 24:7
|
||||
+ nop; // scope 1 at $DIR/simplify_try.rs:25:5: 25:10
|
||||
+ nop; // scope 0 at $DIR/simplify_try.rs:24:6: 24:7
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify_try.rs:26:1: 26:2
|
||||
return; // scope 0 at $DIR/simplify_try.rs:26:2: 26:2
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,93 +2,85 @@
|
|||
+ // MIR for `try_identity` after SimplifyArmIdentity
|
||||
|
||||
fn try_identity(_1: Result<u32, i32>) -> Result<u32, i32> {
|
||||
debug x => _1; // in scope 0 at $DIR/simplify_try.rs:7:17: 7:18
|
||||
let mut _0: std::result::Result<u32, i32>; // return place in scope 0 at $DIR/simplify_try.rs:7:41: 7:57
|
||||
let _2: u32; // in scope 0 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
let mut _3: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
let mut _4: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let _10: u32; // in scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
let mut _11: u32; // in scope 0 at $DIR/simplify_try.rs:9:8: 9:9
|
||||
debug x => _1; // in scope 0 at $DIR/simplify_try.rs:20:17: 20:18
|
||||
let mut _0: std::result::Result<u32, i32>; // return place in scope 0 at $DIR/simplify_try.rs:20:41: 20:57
|
||||
let _2: u32; // in scope 0 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
let mut _3: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
let mut _4: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify_try.rs:22:19: 22:51
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify_try.rs:22:48: 22:49
|
||||
let _10: u32; // in scope 0 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
let mut _11: u32; // in scope 0 at $DIR/simplify_try.rs:25:8: 25:9
|
||||
scope 1 {
|
||||
- debug y => _2; // in scope 1 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
+ debug y => ((_0 as Ok).0: u32); // in scope 1 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
- debug y => _2; // in scope 1 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
+ debug y => ((_0 as Ok).0: u32); // in scope 1 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
}
|
||||
scope 2 {
|
||||
- debug err => _6; // in scope 2 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
+ debug err => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
scope 3 {
|
||||
scope 7 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- debug t => _9; // in scope 7 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
+ debug t => ((_0 as Err).0: i32); // in scope 7 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
}
|
||||
scope 8 (inlined <Result<u32, i32> as Try>::from_error) { // at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- debug v => _8; // in scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
+ debug v => ((_0 as Err).0: i32); // in scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
let mut _12: i32; // in scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
}
|
||||
- debug e => _6; // in scope 2 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
+ debug e => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
scope 5 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify_try.rs:22:37: 22:50
|
||||
- debug t => _9; // in scope 5 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
+ debug t => ((_0 as Err).0: i32); // in scope 5 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
}
|
||||
scope 6 (inlined from_error::<u32, i32>) { // at $DIR/simplify_try.rs:22:26: 22:51
|
||||
- debug e => _8; // in scope 6 at $DIR/simplify_try.rs:22:26: 22:51
|
||||
+ debug e => ((_0 as Err).0: i32); // in scope 6 at $DIR/simplify_try.rs:22:26: 22:51
|
||||
}
|
||||
}
|
||||
scope 4 {
|
||||
- debug val => _10; // in scope 4 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
+ debug val => ((_0 as Ok).0: u32); // in scope 4 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
scope 5 {
|
||||
}
|
||||
scope 3 {
|
||||
- debug v => _10; // in scope 3 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
+ debug v => ((_0 as Ok).0: u32); // in scope 3 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
}
|
||||
scope 6 (inlined <Result<u32, i32> as Try>::into_result) { // at $DIR/simplify_try.rs:8:13: 8:15
|
||||
debug self => _4; // in scope 6 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
scope 4 (inlined into_result::<u32, i32>) { // at $DIR/simplify_try.rs:21:19: 21:33
|
||||
debug r => _4; // in scope 4 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
StorageLive(_3); // scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
StorageLive(_4); // scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
_4 = _1; // scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
_3 = move _4; // scope 6 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
StorageDead(_4); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
_5 = discriminant(_3); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
switchInt(move _5) -> [0_isize: bb1, otherwise: bb2]; // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
StorageLive(_3); // scope 0 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
StorageLive(_4); // scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
_4 = _1; // scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
_3 = move _4; // scope 4 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
StorageDead(_4); // scope 0 at $DIR/simplify_try.rs:21:32: 21:33
|
||||
_5 = discriminant(_3); // scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
switchInt(move _5) -> [0_isize: bb1, otherwise: bb2]; // scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
}
|
||||
|
||||
bb1: {
|
||||
- StorageLive(_10); // scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- _10 = ((_3 as Ok).0: u32); // scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- _2 = _10; // scope 5 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- StorageDead(_10); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
+ _0 = move _3; // scope 1 at $DIR/simplify_try.rs:9:5: 9:10
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify_try.rs:8:15: 8:16
|
||||
- StorageLive(_11); // scope 1 at $DIR/simplify_try.rs:9:8: 9:9
|
||||
- _11 = _2; // scope 1 at $DIR/simplify_try.rs:9:8: 9:9
|
||||
- ((_0 as Ok).0: u32) = move _11; // scope 1 at $DIR/simplify_try.rs:9:5: 9:10
|
||||
- discriminant(_0) = 0; // scope 1 at $DIR/simplify_try.rs:9:5: 9:10
|
||||
- StorageDead(_11); // scope 1 at $DIR/simplify_try.rs:9:9: 9:10
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify_try.rs:10:1: 10:2
|
||||
return; // scope 0 at $DIR/simplify_try.rs:10:2: 10:2
|
||||
- StorageLive(_10); // scope 0 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
- _10 = ((_3 as Ok).0: u32); // scope 0 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
- _2 = _10; // scope 3 at $DIR/simplify_try.rs:23:18: 23:19
|
||||
- StorageDead(_10); // scope 0 at $DIR/simplify_try.rs:23:18: 23:19
|
||||
+ _0 = move _3; // scope 1 at $DIR/simplify_try.rs:25:5: 25:10
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify_try.rs:24:6: 24:7
|
||||
- StorageLive(_11); // scope 1 at $DIR/simplify_try.rs:25:8: 25:9
|
||||
- _11 = _2; // scope 1 at $DIR/simplify_try.rs:25:8: 25:9
|
||||
- ((_0 as Ok).0: u32) = move _11; // scope 1 at $DIR/simplify_try.rs:25:5: 25:10
|
||||
- discriminant(_0) = 0; // scope 1 at $DIR/simplify_try.rs:25:5: 25:10
|
||||
- StorageDead(_11); // scope 1 at $DIR/simplify_try.rs:25:9: 25:10
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify_try.rs:26:1: 26:2
|
||||
return; // scope 0 at $DIR/simplify_try.rs:26:2: 26:2
|
||||
}
|
||||
|
||||
bb2: {
|
||||
- StorageLive(_6); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- _6 = ((_3 as Err).0: i32); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- StorageLive(_8); // scope 3 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- StorageLive(_9); // scope 3 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- _9 = _6; // scope 3 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- _8 = move _9; // scope 7 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- StorageDead(_9); // scope 3 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- StorageLive(_12); // scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- _12 = move _8; // scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- ((_0 as Err).0: i32) = move _12; // scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- discriminant(_0) = 1; // scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- StorageDead(_12); // scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
- StorageDead(_8); // scope 3 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
- StorageDead(_6); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
+ _0 = move _3; // scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify_try.rs:8:15: 8:16
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify_try.rs:10:1: 10:2
|
||||
return; // scope 0 at $DIR/simplify_try.rs:10:2: 10:2
|
||||
- StorageLive(_6); // scope 0 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
- _6 = ((_3 as Err).0: i32); // scope 0 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
- StorageLive(_8); // scope 2 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
- StorageLive(_9); // scope 2 at $DIR/simplify_try.rs:22:48: 22:49
|
||||
- _9 = _6; // scope 2 at $DIR/simplify_try.rs:22:48: 22:49
|
||||
- _8 = move _9; // scope 5 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
- StorageDead(_9); // scope 2 at $DIR/simplify_try.rs:22:49: 22:50
|
||||
- ((_0 as Err).0: i32) = move _8; // scope 6 at $DIR/simplify_try.rs:22:26: 22:51
|
||||
- discriminant(_0) = 1; // scope 6 at $DIR/simplify_try.rs:22:26: 22:51
|
||||
- StorageDead(_8); // scope 2 at $DIR/simplify_try.rs:22:50: 22:51
|
||||
- StorageDead(_6); // scope 0 at $DIR/simplify_try.rs:22:50: 22:51
|
||||
+ _0 = move _3; // scope 6 at $DIR/simplify_try.rs:22:26: 22:51
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify_try.rs:24:6: 24:7
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify_try.rs:26:1: 26:2
|
||||
return; // scope 0 at $DIR/simplify_try.rs:26:2: 26:2
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,57 +1,52 @@
|
|||
// MIR for `try_identity` after SimplifyBranchSame
|
||||
|
||||
fn try_identity(_1: Result<u32, i32>) -> Result<u32, i32> {
|
||||
debug x => _1; // in scope 0 at $DIR/simplify_try.rs:7:17: 7:18
|
||||
let mut _0: std::result::Result<u32, i32>; // return place in scope 0 at $DIR/simplify_try.rs:7:41: 7:57
|
||||
let _2: u32; // in scope 0 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
let mut _3: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
let mut _4: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
let _10: u32; // in scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
let mut _11: u32; // in scope 0 at $DIR/simplify_try.rs:9:8: 9:9
|
||||
debug x => _1; // in scope 0 at $DIR/simplify_try.rs:20:17: 20:18
|
||||
let mut _0: std::result::Result<u32, i32>; // return place in scope 0 at $DIR/simplify_try.rs:20:41: 20:57
|
||||
let _2: u32; // in scope 0 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
let mut _3: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
let mut _4: std::result::Result<u32, i32>; // in scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
let mut _5: isize; // in scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
let _6: i32; // in scope 0 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
let mut _7: !; // in scope 0 at $DIR/simplify_try.rs:22:19: 22:51
|
||||
let mut _8: i32; // in scope 0 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
let mut _9: i32; // in scope 0 at $DIR/simplify_try.rs:22:48: 22:49
|
||||
let _10: u32; // in scope 0 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
let mut _11: u32; // in scope 0 at $DIR/simplify_try.rs:25:8: 25:9
|
||||
scope 1 {
|
||||
debug y => ((_0 as Ok).0: u32); // in scope 1 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
debug y => ((_0 as Ok).0: u32); // in scope 1 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
}
|
||||
scope 2 {
|
||||
debug err => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
scope 3 {
|
||||
scope 7 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify_try.rs:8:14: 8:15
|
||||
debug t => ((_0 as Err).0: i32); // in scope 7 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
}
|
||||
scope 8 (inlined <Result<u32, i32> as Try>::from_error) { // at $DIR/simplify_try.rs:8:13: 8:15
|
||||
debug v => ((_0 as Err).0: i32); // in scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
let mut _12: i32; // in scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
}
|
||||
debug e => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
scope 5 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify_try.rs:22:37: 22:50
|
||||
debug t => ((_0 as Err).0: i32); // in scope 5 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
}
|
||||
scope 6 (inlined from_error::<u32, i32>) { // at $DIR/simplify_try.rs:22:26: 22:51
|
||||
debug e => ((_0 as Err).0: i32); // in scope 6 at $DIR/simplify_try.rs:22:26: 22:51
|
||||
}
|
||||
}
|
||||
scope 4 {
|
||||
debug val => ((_0 as Ok).0: u32); // in scope 4 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
scope 5 {
|
||||
}
|
||||
scope 3 {
|
||||
debug v => ((_0 as Ok).0: u32); // in scope 3 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
}
|
||||
scope 6 (inlined <Result<u32, i32> as Try>::into_result) { // at $DIR/simplify_try.rs:8:13: 8:15
|
||||
debug self => _4; // in scope 6 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
scope 4 (inlined into_result::<u32, i32>) { // at $DIR/simplify_try.rs:21:19: 21:33
|
||||
debug r => _4; // in scope 4 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
}
|
||||
|
||||
bb0: {
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
StorageLive(_3); // scope 0 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
StorageLive(_4); // scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
_4 = _1; // scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
_3 = move _4; // scope 6 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
StorageDead(_4); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
_5 = discriminant(_3); // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
goto -> bb1; // scope 0 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
StorageLive(_2); // scope 0 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
StorageLive(_3); // scope 0 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
StorageLive(_4); // scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
_4 = _1; // scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
_3 = move _4; // scope 4 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
StorageDead(_4); // scope 0 at $DIR/simplify_try.rs:21:32: 21:33
|
||||
_5 = discriminant(_3); // scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
goto -> bb1; // scope 0 at $DIR/simplify_try.rs:22:9: 22:15
|
||||
}
|
||||
|
||||
bb1: {
|
||||
_0 = move _3; // scope 1 at $DIR/simplify_try.rs:9:5: 9:10
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify_try.rs:8:15: 8:16
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify_try.rs:10:1: 10:2
|
||||
return; // scope 0 at $DIR/simplify_try.rs:10:2: 10:2
|
||||
_0 = move _3; // scope 1 at $DIR/simplify_try.rs:25:5: 25:10
|
||||
StorageDead(_3); // scope 0 at $DIR/simplify_try.rs:24:6: 24:7
|
||||
StorageDead(_2); // scope 0 at $DIR/simplify_try.rs:26:1: 26:2
|
||||
return; // scope 0 at $DIR/simplify_try.rs:26:2: 26:2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,33 +1,29 @@
|
|||
// MIR for `try_identity` after SimplifyLocals
|
||||
|
||||
fn try_identity(_1: Result<u32, i32>) -> Result<u32, i32> {
|
||||
debug x => _1; // in scope 0 at $DIR/simplify_try.rs:7:17: 7:18
|
||||
let mut _0: std::result::Result<u32, i32>; // return place in scope 0 at $DIR/simplify_try.rs:7:41: 7:57
|
||||
debug x => _1; // in scope 0 at $DIR/simplify_try.rs:20:17: 20:18
|
||||
let mut _0: std::result::Result<u32, i32>; // return place in scope 0 at $DIR/simplify_try.rs:20:41: 20:57
|
||||
scope 1 {
|
||||
debug y => ((_0 as Ok).0: u32); // in scope 1 at $DIR/simplify_try.rs:8:9: 8:10
|
||||
debug y => ((_0 as Ok).0: u32); // in scope 1 at $DIR/simplify_try.rs:21:9: 21:10
|
||||
}
|
||||
scope 2 {
|
||||
debug err => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
scope 3 {
|
||||
scope 7 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify_try.rs:8:14: 8:15
|
||||
debug t => ((_0 as Err).0: i32); // in scope 7 at $DIR/simplify_try.rs:8:14: 8:15
|
||||
}
|
||||
scope 8 (inlined <Result<u32, i32> as Try>::from_error) { // at $DIR/simplify_try.rs:8:13: 8:15
|
||||
debug v => ((_0 as Err).0: i32); // in scope 8 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
}
|
||||
debug e => ((_0 as Err).0: i32); // in scope 2 at $DIR/simplify_try.rs:22:13: 22:14
|
||||
scope 5 (inlined <i32 as From<i32>>::from) { // at $DIR/simplify_try.rs:22:37: 22:50
|
||||
debug t => ((_0 as Err).0: i32); // in scope 5 at $DIR/simplify_try.rs:22:37: 22:50
|
||||
}
|
||||
scope 6 (inlined from_error::<u32, i32>) { // at $DIR/simplify_try.rs:22:26: 22:51
|
||||
debug e => ((_0 as Err).0: i32); // in scope 6 at $DIR/simplify_try.rs:22:26: 22:51
|
||||
}
|
||||
}
|
||||
scope 4 {
|
||||
debug val => ((_0 as Ok).0: u32); // in scope 4 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
scope 5 {
|
||||
}
|
||||
scope 3 {
|
||||
debug v => ((_0 as Ok).0: u32); // in scope 3 at $DIR/simplify_try.rs:23:12: 23:13
|
||||
}
|
||||
scope 6 (inlined <Result<u32, i32> as Try>::into_result) { // at $DIR/simplify_try.rs:8:13: 8:15
|
||||
debug self => _0; // in scope 6 at $DIR/simplify_try.rs:8:13: 8:15
|
||||
scope 4 (inlined into_result::<u32, i32>) { // at $DIR/simplify_try.rs:21:19: 21:33
|
||||
debug r => _0; // in scope 4 at $DIR/simplify_try.rs:21:19: 21:33
|
||||
}
|
||||
|
||||
bb0: {
|
||||
_0 = _1; // scope 0 at $DIR/simplify_try.rs:8:13: 8:14
|
||||
return; // scope 0 at $DIR/simplify_try.rs:10:2: 10:2
|
||||
_0 = _1; // scope 0 at $DIR/simplify_try.rs:21:31: 21:32
|
||||
return; // scope 0 at $DIR/simplify_try.rs:26:2: 26:2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue