Foo(u8),
}
+// EMIT_MIR rustc.main.SimplifyArmIdentity.diff
fn main() {
let e: Src = Src::Foo(0);
let _: Dst = match e {
Src::Bar => Dst::Foo(0),
};
}
-
-// END RUST SOURCE
-// START rustc.main.SimplifyArmIdentity.before.mir
-// fn main() -> () {
-// ...
-// bb0: {
-// StorageLive(_1);
-// ((_1 as Foo).0: u8) = const 0u8;
-// discriminant(_1) = 0;
-// StorageLive(_2);
-// _3 = discriminant(_1);
-// switchInt(move _3) -> [0isize: bb3, 1isize: bb1, otherwise: bb2];
-// }
-// bb1: {
-// ((_2 as Foo).0: u8) = const 0u8;
-// discriminant(_2) = 0;
-// goto -> bb4;
-// }
-// ...
-// bb3: {
-// _4 = ((_1 as Foo).0: u8);
-// ((_2 as Foo).0: u8) = move _4;
-// discriminant(_2) = 0;
-// goto -> bb4;
-// }
-// ...
-// }
-// END rustc.main.SimplifyArmIdentity.before.mir
-// START rustc.main.SimplifyArmIdentity.after.mir
-// fn main() -> () {
-// ...
-// bb0: {
-// StorageLive(_1);
-// ((_1 as Foo).0: u8) = const 0u8;
-// discriminant(_1) = 0;
-// StorageLive(_2);
-// _3 = discriminant(_1);
-// switchInt(move _3) -> [0isize: bb3, 1isize: bb1, otherwise: bb2];
-// }
-// bb1: {
-// ((_2 as Foo).0: u8) = const 0u8;
-// discriminant(_2) = 0;
-// goto -> bb4;
-// }
-// ...
-// bb3: {
-// _4 = ((_1 as Foo).0: u8);
-// ((_2 as Foo).0: u8) = move _4;
-// discriminant(_2) = 0;
-// goto -> bb4;
-// }
-// ...
-// }
-// END rustc.main.SimplifyArmIdentity.after.mir