diff options
| author | Zalathar <Zalathar@users.noreply.github.com> | 2023-10-16 20:54:56 +1100 |
|---|---|---|
| committer | Zalathar <Zalathar@users.noreply.github.com> | 2023-10-16 21:05:33 +1100 |
| commit | 97d1a9120e565949b84e760e33e82fcd27325f36 (patch) | |
| tree | 2e5710ef0bce02424cae8526bf70012d9d2ad47d /compiler/rustc_mir_transform/src/coverage | |
| parent | 5f1e8f99505b9be3cb8a474dee64c1770070de18 (diff) | |
| download | rust-97d1a9120e565949b84e760e33e82fcd27325f36.tar.gz rust-97d1a9120e565949b84e760e33e82fcd27325f36.zip | |
coverage: Flatten guard logic in `maybe_push_macro_name_span`
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage')
| -rw-r--r-- | compiler/rustc_mir_transform/src/coverage/spans.rs | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/compiler/rustc_mir_transform/src/coverage/spans.rs b/compiler/rustc_mir_transform/src/coverage/spans.rs index 3d2fe2913f4..ad073136457 100644 --- a/compiler/rustc_mir_transform/src/coverage/spans.rs +++ b/compiler/rustc_mir_transform/src/coverage/spans.rs @@ -398,27 +398,24 @@ impl<'a> CoverageSpansGenerator<'a> { /// If `curr` is part of a new macro expansion, carve out and push a separate /// span that ends just after the macro name and its subsequent `!`. fn maybe_push_macro_name_span(&mut self) { - if let Some(visible_macro) = self.curr().visible_macro(self.body_span) { - if !self - .prev_expn_span - .is_some_and(|prev_expn_span| self.curr().expn_span.ctxt() == prev_expn_span.ctxt()) - { - let merged_prefix_len = self.curr_original_span.lo() - self.curr().span.lo(); - let after_macro_bang = - merged_prefix_len + BytePos(visible_macro.as_str().len() as u32 + 1); - let mut macro_name_cov = self.curr().clone(); - self.curr_mut().span = - self.curr().span.with_lo(self.curr().span.lo() + after_macro_bang); - macro_name_cov.span = - macro_name_cov.span.with_hi(macro_name_cov.span.lo() + after_macro_bang); - debug!( - " and curr starts a new macro expansion, so add a new span just for \ - the macro `{}!`, new span={:?}", - visible_macro, macro_name_cov - ); - self.push_refined_span(macro_name_cov); - } + let Some(visible_macro) = self.curr().visible_macro(self.body_span) else { return }; + if let Some(prev_expn_span) = &self.prev_expn_span + && prev_expn_span.ctxt() == self.curr().expn_span.ctxt() + { + return; } + + let merged_prefix_len = self.curr_original_span.lo() - self.curr().span.lo(); + let after_macro_bang = merged_prefix_len + BytePos(visible_macro.as_str().len() as u32 + 1); + let mut macro_name_cov = self.curr().clone(); + self.curr_mut().span = self.curr().span.with_lo(self.curr().span.lo() + after_macro_bang); + macro_name_cov.span = + macro_name_cov.span.with_hi(macro_name_cov.span.lo() + after_macro_bang); + debug!( + " and curr starts a new macro expansion, so add a new span just for \ + the macro `{visible_macro}!`, new span={macro_name_cov:?}", + ); + self.push_refined_span(macro_name_cov); } fn curr(&self) -> &CoverageSpan { |
