Rollup merge of #119828 - azhogin:azhogin/collapse_debuginfo_improved_attr, r=petrochenkov
Improved collapse_debuginfo attribute, added command-line flag Improved attribute collapse_debuginfo with variants: `#[collapse_debuginfo=(no|external|yes)]`. Added command-line flag for default behaviour. Work-in-progress: will add more tests. cc https://github.com/rust-lang/rust/issues/100758
This commit is contained in:
commit
c0da80f418
17 changed files with 281 additions and 21 deletions
|
@ -464,12 +464,15 @@ impl HygieneData {
|
|||
&self,
|
||||
mut span: Span,
|
||||
to: Span,
|
||||
collapse_debuginfo_enabled: bool,
|
||||
collapse_debuginfo_feature_enabled: bool,
|
||||
) -> Span {
|
||||
let orig_span = span;
|
||||
let mut ret_span = span;
|
||||
|
||||
debug!("walk_chain_collapsed({:?}, {:?})", span, to);
|
||||
debug!(
|
||||
"walk_chain_collapsed({:?}, {:?}), feature_enable={}",
|
||||
span, to, collapse_debuginfo_feature_enabled,
|
||||
);
|
||||
debug!("walk_chain_collapsed: span ctxt = {:?}", span.ctxt());
|
||||
while !span.eq_ctxt(to) && span.from_expansion() {
|
||||
let outer_expn = self.outer_expn(span.ctxt());
|
||||
|
@ -477,7 +480,7 @@ impl HygieneData {
|
|||
let expn_data = self.expn_data(outer_expn);
|
||||
debug!("walk_chain_collapsed({:?}): expn_data={:?}", span, expn_data);
|
||||
span = expn_data.call_site;
|
||||
if !collapse_debuginfo_enabled || expn_data.collapse_debuginfo {
|
||||
if !collapse_debuginfo_feature_enabled || expn_data.collapse_debuginfo {
|
||||
ret_span = span;
|
||||
}
|
||||
}
|
||||
|
@ -601,8 +604,14 @@ pub fn walk_chain(span: Span, to: SyntaxContext) -> Span {
|
|||
HygieneData::with(|data| data.walk_chain(span, to))
|
||||
}
|
||||
|
||||
pub fn walk_chain_collapsed(span: Span, to: Span, collapse_debuginfo_enabled: bool) -> Span {
|
||||
HygieneData::with(|hdata| hdata.walk_chain_collapsed(span, to, collapse_debuginfo_enabled))
|
||||
pub fn walk_chain_collapsed(
|
||||
span: Span,
|
||||
to: Span,
|
||||
collapse_debuginfo_feature_enabled: bool,
|
||||
) -> Span {
|
||||
HygieneData::with(|hdata| {
|
||||
hdata.walk_chain_collapsed(span, to, collapse_debuginfo_feature_enabled)
|
||||
})
|
||||
}
|
||||
|
||||
pub fn update_dollar_crate_names(mut get_name: impl FnMut(SyntaxContext) -> Symbol) {
|
||||
|
|
|
@ -749,6 +749,7 @@ symbols! {
|
|||
extern_in_paths,
|
||||
extern_prelude,
|
||||
extern_types,
|
||||
external,
|
||||
external_doc,
|
||||
f,
|
||||
f16c_target_feature,
|
||||
|
@ -1811,6 +1812,7 @@ symbols! {
|
|||
xmm_reg,
|
||||
yeet_desugar_details,
|
||||
yeet_expr,
|
||||
yes,
|
||||
yield_expr,
|
||||
ymm_reg,
|
||||
zmm_reg,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue