diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2021-07-28 18:23:40 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2021-07-31 19:31:29 +0300 |
| commit | b08576b2ad9dc25d166fae657c3f0331195681ec (patch) | |
| tree | 622d6af4fe7fdd208affea726f2afec9b51ad0dc /compiler/rustc_middle/src/middle | |
| parent | 337181e07d3cd33c0aec2f17c12279bc9afca88f (diff) | |
| download | rust-b08576b2ad9dc25d166fae657c3f0331195681ec.tar.gz rust-b08576b2ad9dc25d166fae657c3f0331195681ec.zip | |
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 'compiler/rustc_middle/src/middle')
| -rw-r--r-- | compiler/rustc_middle/src/middle/privacy.rs | 15 | ||||
| -rw-r--r-- | compiler/rustc_middle/src/middle/stability.rs | 26 |
2 files changed, 17 insertions, 24 deletions
diff --git a/compiler/rustc_middle/src/middle/privacy.rs b/compiler/rustc_middle/src/middle/privacy.rs index 54188985d7c..a11ca74b25e 100644 --- a/compiler/rustc_middle/src/middle/privacy.rs +++ b/compiler/rustc_middle/src/middle/privacy.rs @@ -3,9 +3,8 @@ //! which are available for use externally when compiled as a library. use rustc_data_structures::fx::FxHashMap; -use rustc_hir::HirId; use rustc_macros::HashStable; -use std::fmt; +use rustc_span::def_id::LocalDefId; use std::hash::Hash; /// Represents the levels of accessibility an item can have. @@ -27,8 +26,8 @@ pub enum AccessLevel { } /// Holds a map of accessibility levels for reachable HIR nodes. -#[derive(Clone)] -pub struct AccessLevels<Id = HirId> { +#[derive(Debug)] +pub struct AccessLevels<Id = LocalDefId> { pub map: FxHashMap<Id, AccessLevel>, } @@ -49,14 +48,8 @@ impl<Id: Hash + Eq> AccessLevels<Id> { } } -impl<Id: Hash + Eq> Default for AccessLevels<Id> { +impl<Id> Default for AccessLevels<Id> { fn default() -> Self { AccessLevels { map: Default::default() } } } - -impl<Id: Hash + Eq + fmt::Debug> fmt::Debug for AccessLevels<Id> { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt::Debug::fmt(&self.map, f) - } -} diff --git a/compiler/rustc_middle/src/middle/stability.rs b/compiler/rustc_middle/src/middle/stability.rs index 2804fe58061..f0b4b6b5a0c 100644 --- a/compiler/rustc_middle/src/middle/stability.rs +++ b/compiler/rustc_middle/src/middle/stability.rs @@ -11,7 +11,7 @@ use rustc_errors::{Applicability, DiagnosticBuilder}; use rustc_feature::GateIssue; use rustc_hir as hir; use rustc_hir::def::DefKind; -use rustc_hir::def_id::{CrateNum, DefId, CRATE_DEF_INDEX}; +use rustc_hir::def_id::{CrateNum, DefId, LocalDefId, CRATE_DEF_INDEX}; use rustc_hir::{self, HirId}; use rustc_middle::ty::print::with_no_trimmed_paths; use rustc_session::lint::builtin::{DEPRECATED, DEPRECATED_IN_FUTURE, SOFT_UNSTABLE}; @@ -36,12 +36,12 @@ pub struct DeprecationEntry { pub attr: Deprecation, /// The `DefId` where the attr was originally attached. `None` for non-local /// `DefId`'s. - origin: Option<HirId>, + origin: Option<LocalDefId>, } impl DeprecationEntry { - pub fn local(attr: Deprecation, id: HirId) -> DeprecationEntry { - DeprecationEntry { attr, origin: Some(id) } + pub fn local(attr: Deprecation, def_id: LocalDefId) -> DeprecationEntry { + DeprecationEntry { attr, origin: Some(def_id) } } pub fn external(attr: Deprecation) -> DeprecationEntry { @@ -61,9 +61,9 @@ impl DeprecationEntry { pub struct Index<'tcx> { /// This is mostly a cache, except the stabilities of local items /// are filled by the annotator. - pub stab_map: FxHashMap<HirId, &'tcx Stability>, - pub const_stab_map: FxHashMap<HirId, &'tcx ConstStability>, - pub depr_map: FxHashMap<HirId, DeprecationEntry>, + pub stab_map: FxHashMap<LocalDefId, &'tcx Stability>, + pub const_stab_map: FxHashMap<LocalDefId, &'tcx ConstStability>, + pub depr_map: FxHashMap<LocalDefId, DeprecationEntry>, /// Maps for each crate whether it is part of the staged API. pub staged_api: FxHashMap<CrateNum, bool>, @@ -73,16 +73,16 @@ pub struct Index<'tcx> { } impl<'tcx> Index<'tcx> { - pub fn local_stability(&self, id: HirId) -> Option<&'tcx Stability> { - self.stab_map.get(&id).cloned() + pub fn local_stability(&self, def_id: LocalDefId) -> Option<&'tcx Stability> { + self.stab_map.get(&def_id).copied() } - pub fn local_const_stability(&self, id: HirId) -> Option<&'tcx ConstStability> { - self.const_stab_map.get(&id).cloned() + pub fn local_const_stability(&self, def_id: LocalDefId) -> Option<&'tcx ConstStability> { + self.const_stab_map.get(&def_id).copied() } - pub fn local_deprecation_entry(&self, id: HirId) -> Option<DeprecationEntry> { - self.depr_map.get(&id).cloned() + pub fn local_deprecation_entry(&self, def_id: LocalDefId) -> Option<DeprecationEntry> { + self.depr_map.get(&def_id).cloned() } } |
