about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2021-07-28 18:23:40 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2021-07-31 19:31:29 +0300
commitb08576b2ad9dc25d166fae657c3f0331195681ec (patch)
tree622d6af4fe7fdd208affea726f2afec9b51ad0dc /src
parent337181e07d3cd33c0aec2f17c12279bc9afca88f (diff)
rustc: Replace `HirId`s with `LocalDefId`s in `AccessLevels` tables
and passes using them - primarily privacy checking, stability checking and dead code checking.

WIP
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/core.rs9
-rw-r--r--src/librustdoc/passes/collect_intra_doc_links.rs7
2 files changed, 3 insertions, 13 deletions
diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs
index 0689d72e4e0..46aa9617227 100644
--- a/src/librustdoc/core.rs
+++ b/src/librustdoc/core.rs
@@ -374,15 +374,8 @@ crate fn run_global_ctxt(
     });
     rustc_passes::stability::check_unused_or_stable_features(tcx);
 
-    let access_levels = tcx.privacy_access_levels(());
-    // Convert from a HirId set to a DefId set since we don't always have easy access
-    // to the map from defid -> hirid
     let access_levels = AccessLevels {
-        map: access_levels
-            .map
-            .iter()
-            .map(|(&k, &v)| (tcx.hir().local_def_id(k).to_def_id(), v))
-            .collect(),
+        map: tcx.privacy_access_levels(()).map.iter().map(|(k, v)| (k.to_def_id(), *v)).collect(),
     };
 
     let mut ctxt = DocContext {
diff --git a/src/librustdoc/passes/collect_intra_doc_links.rs b/src/librustdoc/passes/collect_intra_doc_links.rs
index ddb7b85d34a..096c0a05ff7 100644
--- a/src/librustdoc/passes/collect_intra_doc_links.rs
+++ b/src/librustdoc/passes/collect_intra_doc_links.rs
@@ -1244,11 +1244,8 @@ impl LinkCollector<'_, '_> {
                     item.def_id.expect_def_id().as_local().map(|src_id| (src_id, dst_id))
                 })
             {
-                let hir_src = self.cx.tcx.hir().local_def_id_to_hir_id(src_id);
-                let hir_dst = self.cx.tcx.hir().local_def_id_to_hir_id(dst_id);
-
-                if self.cx.tcx.privacy_access_levels(()).is_exported(hir_src)
-                    && !self.cx.tcx.privacy_access_levels(()).is_exported(hir_dst)
+                if self.cx.tcx.privacy_access_levels(()).is_exported(src_id)
+                    && !self.cx.tcx.privacy_access_levels(()).is_exported(dst_id)
                 {
                     privacy_error(self.cx, &diag_info, &path_str);
                 }