blob: 656b405ef340edbd20510947b5833f602a1a5e28 [file] [log] [blame]
fn try_identity(x: Result<u32, i32>) -> Result<u32, i32> {
let y = x?;
Ok(y)
}
fn main() {
let _ = try_identity(Ok(0));
}
// END RUST SOURCE
// START rustc.try_identity.SimplifyArmIdentity.before.mir
// fn try_identity(_1: std::result::Result<u32, i32>) -> std::result::Result<u32, i32> {
// debug x => _1;
// let mut _0: std::result::Result<u32, i32>;
// let _2: u32;
// let mut _3: std::result::Result<u32, i32>;
// let mut _4: std::result::Result<u32, i32>;
// let mut _5: isize;
// let _6: i32;
// let mut _7: !;
// let mut _8: i32;
// let mut _9: i32;
// let _10: u32;
// let mut _11: u32;
// scope 1 {
// debug y => _10;
// }
// scope 2 {
// debug err => _6;
// scope 3 {
// scope 7 {
// debug t => _6;
// }
// scope 8 {
// debug v => _6;
// let mut _12: i32;
// }
// }
// }
// scope 4 {
// debug val => _10;
// scope 5 {
// }
// }
// scope 6 {
// debug self => _1;
// }
// bb0: {
// _5 = discriminant(_1);
// switchInt(move _5) -> [0isize: bb4, 1isize: bb2, otherwise: bb1];
// }
// bb1: {
// unreachable;
// }
// bb2: {
// _6 = ((_1 as Err).0: i32);
// ((_0 as Err).0: i32) = move _6;
// discriminant(_0) = 1;
// goto -> bb3;
// }
// bb3: {
// return;
// }
// bb4: {
// _10 = ((_1 as Ok).0: u32);
// ((_0 as Ok).0: u32) = move _10;
// discriminant(_0) = 0;
// goto -> bb3;
// }
// }
// END rustc.try_identity.SimplifyArmIdentity.before.mir
// START rustc.try_identity.SimplifyArmIdentity.after.mir
// fn try_identity(_1: std::result::Result<u32, i32>) -> std::result::Result<u32, i32> {
// debug x => _1;
// let mut _0: std::result::Result<u32, i32>;
// let _2: u32;
// let mut _3: std::result::Result<u32, i32>;
// let mut _4: std::result::Result<u32, i32>;
// let mut _5: isize;
// let _6: i32;
// let mut _7: !;
// let mut _8: i32;
// let mut _9: i32;
// let _10: u32;
// let mut _11: u32;
// scope 1 {
// debug y => _10;
// }
// scope 2 {
// debug err => _6;
// scope 3 {
// scope 7 {
// debug t => _6;
// }
// scope 8 {
// debug v => _6;
// let mut _12: i32;
// }
// }
// }
// scope 4 {
// debug val => _10;
// scope 5 {
// }
// }
// scope 6 {
// debug self => _1;
// }
// bb0: {
// _5 = discriminant(_1);
// switchInt(move _5) -> [0isize: bb4, 1isize: bb2, otherwise: bb1];
// }
// bb1: {
// unreachable;
// }
// bb2: {
// _0 = move _1;
// nop;
// nop;
// goto -> bb3;
// }
// bb3: {
// return;
// }
// bb4: {
// _0 = move _1;
// nop;
// nop;
// goto -> bb3;
// }
// }
// END rustc.try_identity.SimplifyArmIdentity.after.mir
// START rustc.try_identity.SimplifyBranchSame.after.mir
// fn try_identity(_1: std::result::Result<u32, i32>) -> std::result::Result<u32, i32> {
// debug x => _1;
// let mut _0: std::result::Result<u32, i32>;
// let _2: u32;
// let mut _3: std::result::Result<u32, i32>;
// let mut _4: std::result::Result<u32, i32>;
// let mut _5: isize;
// let _6: i32;
// let mut _7: !;
// let mut _8: i32;
// let mut _9: i32;
// let _10: u32;
// let mut _11: u32;
// scope 1 {
// debug y => _10;
// }
// scope 2 {
// debug err => _6;
// scope 3 {
// scope 7 {
// debug t => _6;
// }
// scope 8 {
// debug v => _6;
// let mut _12: i32;
// }
// }
// }
// scope 4 {
// debug val => _10;
// scope 5 {
// }
// }
// scope 6 {
// debug self => _1;
// }
// bb0: {
// _5 = discriminant(_1);
// goto -> bb2;
// }
// bb1: {
// return;
// }
// bb2: {
// _0 = move _1;
// nop;
// nop;
// goto -> bb1;
// }
// }
// END rustc.try_identity.SimplifyBranchSame.after.mir
// START rustc.try_identity.SimplifyLocals.after.mir
// fn try_identity(_1: std::result::Result<u32, i32>) -> std::result::Result<u32, i32> {
// debug x => _1;
// let mut _0: std::result::Result<u32, i32>;
// let mut _2: isize;
// let _3: i32;
// let _4: u32;
// scope 1 {
// debug y => _4;
// }
// scope 2 {
// debug err => _3;
// scope 3 {
// scope 7 {
// debug t => _3;
// }
// scope 8 {
// debug v => _3;
// }
// }
// }
// scope 4 {
// debug val => _4;
// scope 5 {
// }
// }
// scope 6 {
// debug self => _1;
// }
// bb0: {
// _2 = discriminant(_1);
// _0 = move _1;
// return;
// }
// }
// END rustc.try_identity.SimplifyLocals.after.mir