about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authoryanglsh <yanglsh@shanghaitech.edu.cn>2025-05-28 15:45:22 +0800
committeryanglsh <yanglsh@shanghaitech.edu.cn>2025-05-29 20:59:49 +0800
commit5290b1ee0d746d1231fe498d6e70d05365756c87 (patch)
tree19001463c4b02341b3e6f327a41b50595fcf02cf /tests
parent3927a61a546b0f134b3790d66ef73f1960e8bc8b (diff)
downloadrust-5290b1ee0d746d1231fe498d6e70d05365756c87.tar.gz
rust-5290b1ee0d746d1231fe498d6e70d05365756c87.zip
fix: `collapsible_else_if` FP on conditionally compiled stmt
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/collapsible_else_if.fixed18
-rw-r--r--tests/ui/collapsible_else_if.rs18
2 files changed, 36 insertions, 0 deletions
diff --git a/tests/ui/collapsible_else_if.fixed b/tests/ui/collapsible_else_if.fixed
index 9f530ad670a..fed75244c6f 100644
--- a/tests/ui/collapsible_else_if.fixed
+++ b/tests/ui/collapsible_else_if.fixed
@@ -86,3 +86,21 @@ fn issue_7318() {
     }else if false {}
     //~^^^ collapsible_else_if
 }
+
+fn issue14799() {
+    use std::ops::ControlFlow;
+
+    let c: ControlFlow<_, ()> = ControlFlow::Break(Some(42));
+    if let ControlFlow::Break(Some(_)) = c {
+        todo!();
+    } else {
+        #[cfg(target_os = "freebsd")]
+        todo!();
+
+        if let ControlFlow::Break(None) = c {
+            todo!();
+        } else {
+            todo!();
+        }
+    }
+}
diff --git a/tests/ui/collapsible_else_if.rs b/tests/ui/collapsible_else_if.rs
index 2c646cd1d4d..e50e781fb69 100644
--- a/tests/ui/collapsible_else_if.rs
+++ b/tests/ui/collapsible_else_if.rs
@@ -102,3 +102,21 @@ fn issue_7318() {
     }
     //~^^^ collapsible_else_if
 }
+
+fn issue14799() {
+    use std::ops::ControlFlow;
+
+    let c: ControlFlow<_, ()> = ControlFlow::Break(Some(42));
+    if let ControlFlow::Break(Some(_)) = c {
+        todo!();
+    } else {
+        #[cfg(target_os = "freebsd")]
+        todo!();
+
+        if let ControlFlow::Break(None) = c {
+            todo!();
+        } else {
+            todo!();
+        }
+    }
+}