Skip to content

Commit

Permalink
Auto merge of rust-lang#129513 - cjgillot:fast-source-span, r=petroch…
Browse files Browse the repository at this point in the history
…enkov

Do not call source_span when not tracking dependencies.

Split from rust-lang#127241
  • Loading branch information
bors committed Aug 26, 2024
2 parents 515395a + bb17fda commit 48412cc
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions compiler/rustc_interface/src/callbacks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,19 @@ use rustc_query_system::dep_graph::dep_node::default_dep_kind_debug;
use rustc_query_system::dep_graph::{DepContext, DepKind, DepNode};

fn track_span_parent(def_id: rustc_span::def_id::LocalDefId) {
tls::with_opt(|tcx| {
if let Some(tcx) = tcx {
let _span = tcx.source_span(def_id);
// Sanity check: relative span's parent must be an absolute span.
debug_assert_eq!(_span.data_untracked().parent, None);
tls::with_context_opt(|icx| {
if let Some(icx) = icx {
// `track_span_parent` gets called a lot from HIR lowering code.
// Skip doing anything if we aren't tracking dependencies.
let tracks_deps = match icx.task_deps {
TaskDepsRef::Allow(..) => true,
TaskDepsRef::EvalAlways | TaskDepsRef::Ignore | TaskDepsRef::Forbid => false,
};
if tracks_deps {
let _span = icx.tcx.source_span(def_id);
// Sanity check: relative span's parent must be an absolute span.
debug_assert_eq!(_span.data_untracked().parent, None);
}
}
})
}
Expand Down

0 comments on commit 48412cc

Please sign in to comment.