about summary refs log tree commit diff
path: root/compiler/rustc_resolve/src
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-12-08 11:02:47 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2023-02-20 15:28:58 +0000
commit6924e3c374563217a724f7ffca1a5087166e8f49 (patch)
tree409ef2c141665701623473ddea7fb4b14dfdf255 /compiler/rustc_resolve/src
parentade3dceb38c6e41e3b8623e252d9413052e3a0af (diff)
downloadrust-6924e3c374563217a724f7ffca1a5087166e8f49.tar.gz
rust-6924e3c374563217a724f7ffca1a5087166e8f49.zip
Make untracked.source_span lockable so that resolution can still write to it when using TyCtxt
Diffstat (limited to 'compiler/rustc_resolve/src')
-rw-r--r--compiler/rustc_resolve/src/diagnostics.rs6
-rw-r--r--compiler/rustc_resolve/src/imports.rs4
-rw-r--r--compiler/rustc_resolve/src/lib.rs6
3 files changed, 8 insertions, 8 deletions
diff --git a/compiler/rustc_resolve/src/diagnostics.rs b/compiler/rustc_resolve/src/diagnostics.rs
index 80c21bb0830..6bb6e92da9e 100644
--- a/compiler/rustc_resolve/src/diagnostics.rs
+++ b/compiler/rustc_resolve/src/diagnostics.rs
@@ -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,
diff --git a/compiler/rustc_resolve/src/imports.rs b/compiler/rustc_resolve/src/imports.rs
index 0862e56a4c4..6171dd657bf 100644
--- a/compiler/rustc_resolve/src/imports.rs
+++ b/compiler/rustc_resolve/src/imports.rs
@@ -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,
diff --git a/compiler/rustc_resolve/src/lib.rs b/compiler/rustc_resolve/src/lib.rs
index afadc0b2a0c..7a8e594a8f9 100644
--- a/compiler/rustc_resolve/src/lib.rs
+++ b/compiler/rustc_resolve/src/lib.rs
@@ -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`.