summaryrefslogtreecommitdiffstats
path: root/src/test/ui/mir/issue-66851.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/mir/issue-66851.rs')
-rw-r--r--src/test/ui/mir/issue-66851.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/ui/mir/issue-66851.rs b/src/test/ui/mir/issue-66851.rs
new file mode 100644
index 000000000..878ad4e47
--- /dev/null
+++ b/src/test/ui/mir/issue-66851.rs
@@ -0,0 +1,20 @@
+// 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));
+}