diff options
| author | Rich Kadel <richkadel@google.com> | 2021-05-03 23:21:24 -0700 |
|---|---|---|
| committer | Rich Kadel <richkadel@google.com> | 2021-05-06 11:15:39 -0700 |
| commit | cb70221857d7a44bf4625f1a2d5af189f6a12495 (patch) | |
| tree | 37ae4510ee4376f0e311724a6b90a0047428f838 /library/std/src/sys/unix/stack_overflow.rs | |
| parent | 603a42ec5458c547b51173cfa48c23ad37b03c3f (diff) | |
| download | rust-cb70221857d7a44bf4625f1a2d5af189f6a12495.tar.gz rust-cb70221857d7a44bf4625f1a2d5af189f6a12495.zip | |
Coverage instruments closure bodies in macros (not the macro body)
Fixes: #84884 This solution might be considered a compromise, but I think it is the better choice. The results in the `closure.rs` test correctly resolve all test cases broken as described in #84884. One test pattern (in both `closure_macro.rs` and `closure_macro_async.rs`) was also affected, and removes coverage statistics for the lines inside the closure, because the closure includes a macro. (The coverage remains at the callsite of the macro, so we lose some detail, but there isn't a perfect choice with macros. Often macro implementations are split across the macro and the callsite, and there doesn't appear to be a single "right choice" for which body should be covered. For the current implementation, we can't do both. The callsite is most likely to be the preferred site for coverage. I applied this fix to all `MacroKinds`, not just `Bang`. I'm trying to resolve an issue of lost coverage in a `MacroKind::Attr`-based, function-scoped macro. Instead of only searching for a body_span that is "not a function-like macro" (that is, MacroKind::Bang), I'm expanding this to all `MacroKind`s. Maybe I should expand this to `ExpnKind::Desugaring` and `ExpnKind::AstPass` (or subsets, depending on their sub-kinds) as well, but I'm not sure that's a good idea. I'd like to add a test of the `Attr` macro on functions, but I need time to figure out how to constract a good, simple example without external crate dependencies. For the moment, all tests still work as expected (no change), this new commit shouldn't have a negative affect, and more importantly, I believe it will have a positive effect. I will try to confirm this.
Diffstat (limited to 'library/std/src/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions
