about summary refs log tree commit diff
path: root/tests/coverage/branch/let-else.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-04-23 00:05:31 +0000
committerbors <bors@rust-lang.org>2024-04-23 00:05:31 +0000
commit9cf10bcf5b368de79abc24fc4d50a9d85b377ffa (patch)
tree975fed41d85532188712e2944555a73106f0f538 /tests/coverage/branch/let-else.rs
parent25087e02b34775520856b6cc15e50f5ed0c35f50 (diff)
parent000d0f9116c24c0e24a30e18bfd84f913b099520 (diff)
downloadrust-9cf10bcf5b368de79abc24fc4d50a9d85b377ffa.tar.gz
rust-9cf10bcf5b368de79abc24fc4d50a9d85b377ffa.zip
Auto merge of #124271 - GuillaumeGomez:rollup-7st9wd7, r=GuillaumeGomez
Rollup of 7 pull requests

Successful merges:

 - #115913 (checked_ilog: improve performance)
 - #124178 ([cleanup] [llvm backend] Prevent creating the same `Instance::mono` multiple times)
 - #124183 (Stop taking `ParamTy`/`ParamConst`/`EarlyParamRegion`/`AliasTy` by ref)
 - #124217 (coverage: Prepare for improved branch coverage)
 - #124230 (Stabilize generic `NonZero`.)
 - #124252 (Improve ICE message for forbidden dep-graph reads.)
 - #124268 (Update books)

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'tests/coverage/branch/let-else.rs')
-rw-r--r--tests/coverage/branch/let-else.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/coverage/branch/let-else.rs b/tests/coverage/branch/let-else.rs
new file mode 100644
index 00000000000..af0665d8241
--- /dev/null
+++ b/tests/coverage/branch/let-else.rs
@@ -0,0 +1,35 @@
+#![feature(coverage_attribute)]
+//@ edition: 2021
+//@ compile-flags: -Zcoverage-options=branch
+//@ llvm-cov-flags: --show-branches=count
+
+macro_rules! no_merge {
+    () => {
+        for _ in 0..1 {}
+    };
+}
+
+fn let_else(value: Option<&str>) {
+    no_merge!();
+
+    let Some(x) = value else {
+        say("none");
+        return;
+    };
+
+    say(x);
+}
+
+#[coverage(off)]
+fn say(message: &str) {
+    core::hint::black_box(message);
+}
+
+#[coverage(off)]
+fn main() {
+    let_else(Some("x"));
+    let_else(Some("x"));
+    let_else(None);
+}
+
+// FIXME(#124118) Actually instrument let-else for branch coverage.