coverage: Test for closure body that is a single bang-macro
This commit is contained in:
parent
268dbbbc4b
commit
fe420dc46e
3 changed files with 51 additions and 0 deletions
16
tests/coverage/macro_in_closure.cov-map
Normal file
16
tests/coverage/macro_in_closure.cov-map
Normal 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)
|
||||||
|
|
18
tests/coverage/macro_in_closure.coverage
Normal file
18
tests/coverage/macro_in_closure.coverage
Normal 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| |}
|
||||||
|
|
17
tests/coverage/macro_in_closure.rs
Normal file
17
tests/coverage/macro_in_closure.rs
Normal 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();
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue