about summary refs log tree commit diff
path: root/tests/coverage/macro_in_closure.coverage
diff options
context:
space:
mode:
authorZalathar <Zalathar@users.noreply.github.com>2024-01-22 13:56:37 +1100
committerZalathar <Zalathar@users.noreply.github.com>2024-02-05 10:07:18 +1100
commitfe420dc46ecf988eb13c34526feea18fd8daef6b (patch)
treedde3ad4b694a375c576b4bffeede672807e95a0c /tests/coverage/macro_in_closure.coverage
parent268dbbbc4b3fd71c5f360a4d0728295252430b5b (diff)
downloadrust-fe420dc46ecf988eb13c34526feea18fd8daef6b.tar.gz
rust-fe420dc46ecf988eb13c34526feea18fd8daef6b.zip
coverage: Test for closure body that is a single bang-macro
Diffstat (limited to 'tests/coverage/macro_in_closure.coverage')
-rw-r--r--tests/coverage/macro_in_closure.coverage18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/coverage/macro_in_closure.coverage b/tests/coverage/macro_in_closure.coverage
new file mode 100644
index 00000000000..7f6f873439d
--- /dev/null
+++ b/tests/coverage/macro_in_closure.coverage
@@ -0,0 +1,18 @@
+   LL|       |#![feature(coverage_attribute)]
+   LL|       |// edition: 2021
+   LL|       |
+   LL|       |// If a closure body consists entirely of a single bang-macro invocation, the
+   LL|       |// body span ends up inside the macro-expansion, so we need to un-expand it
+   LL|       |// back to the declaration site.
+   LL|      1|static NO_BLOCK: fn() = || println!("hello");
+   LL|       |
+   LL|      1|static WITH_BLOCK: fn() = || {
+   LL|      1|    println!("hello");
+   LL|      1|};
+   LL|       |
+   LL|       |#[coverage(off)]
+   LL|       |fn main() {
+   LL|       |    NO_BLOCK();
+   LL|       |    WITH_BLOCK();
+   LL|       |}
+