ssa: implement #[collapse_debuginfo]
Debuginfo line information for macro invocations are collapsed by default - line information are replaced by the line of the outermost expansion site. Using `-Zdebug-macros` disables this behaviour. When the `collapse_debuginfo` feature is enabled, the default behaviour is reversed so that debuginfo is not collapsed by default. In addition, the `#[collapse_debuginfo]` attribute is available and can be applied to macro definitions which will then have their line information collapsed. Signed-off-by: David Wood <david.wood@huawei.com>
This commit is contained in:
parent
2991a7c715
commit
38958aa8bd
20 changed files with 699 additions and 35 deletions
|
@ -564,6 +564,13 @@ impl Span {
|
|||
self.ctxt() != SyntaxContext::root()
|
||||
}
|
||||
|
||||
/// Returns `true` if `span` originates in a macro's expansion where debuginfo should be
|
||||
/// collapsed.
|
||||
pub fn in_macro_expansion_with_collapse_debuginfo(self) -> bool {
|
||||
let outer_expn = self.ctxt().outer_expn_data();
|
||||
matches!(outer_expn.kind, ExpnKind::Macro(..)) && outer_expn.collapse_debuginfo
|
||||
}
|
||||
|
||||
/// Returns `true` if `span` originates in a derive-macro's expansion.
|
||||
pub fn in_derive_expansion(self) -> bool {
|
||||
matches!(self.ctxt().outer_expn_data().kind, ExpnKind::Macro(MacroKind::Derive, _))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue