about summary refs log tree commit diff
path: root/tests/coverage/coverage_attr_closure.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/coverage/coverage_attr_closure.rs')
-rw-r--r--tests/coverage/coverage_attr_closure.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/coverage/coverage_attr_closure.rs b/tests/coverage/coverage_attr_closure.rs
new file mode 100644
index 00000000000..1904c89c920
--- /dev/null
+++ b/tests/coverage/coverage_attr_closure.rs
@@ -0,0 +1,42 @@
+#![feature(coverage_attribute, stmt_expr_attributes)]
+#![allow(dead_code)]
+// edition: 2021
+
+static GLOBAL_CLOSURE_ON: fn(&str) = #[coverage(on)]
+|input: &str| {
+    println!("{input}");
+};
+static GLOBAL_CLOSURE_OFF: fn(&str) = #[coverage(off)]
+|input: &str| {
+    println!("{input}");
+};
+
+#[coverage(on)]
+fn contains_closures_on() {
+    let _local_closure_on = #[coverage(on)]
+    |input: &str| {
+        println!("{input}");
+    };
+    let _local_closure_off = #[coverage(off)]
+    |input: &str| {
+        println!("{input}");
+    };
+}
+
+#[coverage(off)]
+fn contains_closures_off() {
+    let _local_closure_on = #[coverage(on)]
+    |input: &str| {
+        println!("{input}");
+    };
+    let _local_closure_off = #[coverage(off)]
+    |input: &str| {
+        println!("{input}");
+    };
+}
+
+#[coverage(off)]
+fn main() {
+    contains_closures_on();
+    contains_closures_off();
+}