coverage: Test for closure body that is a single bang-macro

This commit is contained in:
Zalathar 2024-01-22 13:56:37 +11:00
parent 268dbbbc4b
commit fe420dc46e
3 changed files with 51 additions and 0 deletions

View file

@ -0,0 +1,16 @@
Function name: macro_in_closure::NO_BLOCK::{closure#0}
Raw bytes (9): 0x[01, 01, 00, 01, 01, 07, 1c, 00, 2d]
Number of files: 1
- file 0 => global file 1
Number of expressions: 0
Number of file 0 mappings: 1
- Code(Counter(0)) at (prev + 7, 28) to (start + 0, 45)
Function name: macro_in_closure::WITH_BLOCK::{closure#0}
Raw bytes (9): 0x[01, 01, 00, 01, 01, 09, 1e, 02, 02]
Number of files: 1
- file 0 => global file 1
Number of expressions: 0
Number of file 0 mappings: 1
- Code(Counter(0)) at (prev + 9, 30) to (start + 2, 2)

View file

@ -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| |}

View file

@ -0,0 +1,17 @@
#![feature(coverage_attribute)]
// edition: 2021
// If a closure body consists entirely of a single bang-macro invocation, the
// body span ends up inside the macro-expansion, so we need to un-expand it
// back to the declaration site.
static NO_BLOCK: fn() = || println!("hello");
static WITH_BLOCK: fn() = || {
println!("hello");
};
#[coverage(off)]
fn main() {
NO_BLOCK();
WITH_BLOCK();
}