1
Fork 0

Track span dependency using a callback.

This commit is contained in:
Camille GILLOT 2021-04-27 19:24:33 +02:00
parent e85ddeb474
commit b19ae20aad
6 changed files with 40 additions and 5 deletions

View file

@ -1947,6 +1947,7 @@ pub struct FileLines {
pub static SPAN_DEBUG: AtomicRef<fn(Span, &mut fmt::Formatter<'_>) -> fmt::Result> =
AtomicRef::new(&(default_span_debug as fn(_, &mut fmt::Formatter<'_>) -> _));
pub static SPAN_TRACK: AtomicRef<fn(LocalDefId)> = AtomicRef::new(&((|_| {}) as fn(_)));
// _____________________________________________________________________________
// SpanLinesError, SpanSnippetError, DistinctSources, MalformedSourceMapPositions
@ -2031,7 +2032,7 @@ where
return;
}
let span = self.data();
let span = self.decode();
span.ctxt.hash_stable(ctx, hasher);
span.parent.hash_stable(ctx, hasher);
@ -2041,7 +2042,7 @@ where
}
if let Some(parent) = span.parent {
let def_span = ctx.def_span(parent).data();
let def_span = ctx.def_span(parent).decode();
if def_span.contains(span) {
// This span is enclosed in a definition: only hash the relative position.
Hash::hash(&TAG_RELATIVE_SPAN, hasher);