Make untracked.source_span lockable so that resolution can still write to it when using TyCtxt
This commit is contained in:
parent
ade3dceb38
commit
6924e3c374
6 changed files with 12 additions and 12 deletions
|
@ -155,7 +155,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||
if !candidates.is_empty() {
|
||||
show_candidates(
|
||||
&self.tcx.sess,
|
||||
&self.untracked.source_span,
|
||||
&self.untracked.source_span.read(),
|
||||
&mut err,
|
||||
span,
|
||||
&candidates,
|
||||
|
@ -688,7 +688,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||
}
|
||||
show_candidates(
|
||||
&self.tcx.sess,
|
||||
&self.untracked.source_span,
|
||||
&self.untracked.source_span.read(),
|
||||
&mut err,
|
||||
Some(span),
|
||||
&import_suggestions,
|
||||
|
@ -1353,7 +1353,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||
self.lookup_import_candidates(ident, Namespace::MacroNS, parent_scope, is_expected);
|
||||
show_candidates(
|
||||
&self.tcx.sess,
|
||||
&self.untracked.source_span,
|
||||
&self.untracked.source_span.read(),
|
||||
err,
|
||||
None,
|
||||
&import_suggestions,
|
||||
|
|
|
@ -549,7 +549,7 @@ impl<'a, 'b, 'tcx> ImportResolver<'a, 'b, 'tcx> {
|
|||
match &import.kind {
|
||||
ImportKind::Single { nested: false, source, target, .. } => import_candidates(
|
||||
self.r.tcx.sess,
|
||||
&self.r.untracked.source_span,
|
||||
&self.r.untracked.source_span.read(),
|
||||
&mut diag,
|
||||
Some(err.span),
|
||||
&candidates,
|
||||
|
@ -562,7 +562,7 @@ impl<'a, 'b, 'tcx> ImportResolver<'a, 'b, 'tcx> {
|
|||
ImportKind::Single { nested: true, source, target, .. } => {
|
||||
import_candidates(
|
||||
self.r.tcx.sess,
|
||||
&self.r.untracked.source_span,
|
||||
&self.r.untracked.source_span.read(),
|
||||
&mut diag,
|
||||
None,
|
||||
&candidates,
|
||||
|
|
|
@ -1180,7 +1180,7 @@ impl<'tcx> Resolver<'_, 'tcx> {
|
|||
|
||||
// A relative span's parent must be an absolute span.
|
||||
debug_assert_eq!(span.data_untracked().parent, None);
|
||||
let _id = self.untracked.source_span.push(span);
|
||||
let _id = self.untracked.source_span.write().push(span);
|
||||
debug_assert_eq!(_id, def_id);
|
||||
|
||||
// Some things for which we allocate `LocalDefId`s don't correspond to
|
||||
|
@ -1329,7 +1329,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||
used_extern_options: Default::default(),
|
||||
untracked: Untracked {
|
||||
cstore: RwLock::new(Box::new(CStore::new(session))),
|
||||
source_span,
|
||||
source_span: RwLock::new(source_span),
|
||||
definitions: RwLock::new(definitions),
|
||||
},
|
||||
macro_names: FxHashSet::default(),
|
||||
|
@ -1932,7 +1932,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||
/// Retrieves the span of the given `DefId` if `DefId` is in the local crate.
|
||||
#[inline]
|
||||
fn opt_span(&self, def_id: DefId) -> Option<Span> {
|
||||
def_id.as_local().map(|def_id| self.untracked.source_span[def_id])
|
||||
def_id.as_local().map(|def_id| self.untracked.source_span.read()[def_id])
|
||||
}
|
||||
|
||||
/// Retrieves the name of the given `DefId`.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue