| // This used to mis-compile because the mir-opt `SimplifyArmIdentity` | |
| // did not check that the types matched up in the `Ok(r)` branch. | |
| // | |
| //@ run-pass | |
| //@ compile-flags: -Zmir-opt-level=3 | |
| #[derive(Debug, PartialEq, Eq)] | |
| enum SpecialsRes { Res(u64) } | |
| fn e103() -> SpecialsRes { | |
| if let Ok(r) = "1".parse() { | |
| SpecialsRes::Res(r) | |
| } else { | |
| SpecialsRes::Res(42) | |
| } | |
| } | |
| fn main() { | |
| assert_eq!(e103(), SpecialsRes::Res(1)); | |
| } |