Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/item_tree.rs')
| -rw-r--r-- | crates/hir-def/src/item_tree.rs | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/crates/hir-def/src/item_tree.rs b/crates/hir-def/src/item_tree.rs index f61b403b84..bf14c0ecee 100644 --- a/crates/hir-def/src/item_tree.rs +++ b/crates/hir-def/src/item_tree.rs @@ -416,7 +416,7 @@ impl Index<RawVisibilityId> for ItemTree { static VIS_PUB: RawVisibility = RawVisibility::Public; static VIS_PRIV_IMPLICIT: OnceLock<RawVisibility> = OnceLock::new(); static VIS_PRIV_EXPLICIT: OnceLock<RawVisibility> = OnceLock::new(); - static VIS_PUB_CRATE: OnceLock<RawVisibility> = OnceLock::new(); + static VIS_PUB_CRATE: RawVisibility = RawVisibility::PubCrate; match index { RawVisibilityId::PRIV_IMPLICIT => VIS_PRIV_IMPLICIT.get_or_init(|| { @@ -432,12 +432,7 @@ impl Index<RawVisibilityId> for ItemTree { ) }), RawVisibilityId::PUB => &VIS_PUB, - RawVisibilityId::PUB_CRATE => VIS_PUB_CRATE.get_or_init(|| { - RawVisibility::Module( - Interned::new(ModPath::from_kind(PathKind::Crate)), - VisibilityExplicitness::Explicit, - ) - }), + RawVisibilityId::PUB_CRATE => &VIS_PUB_CRATE, _ => &self.vis.arena[index.0 as usize], } } @@ -555,6 +550,8 @@ pub enum RawVisibility { /// `pub(in module)`, `pub(crate)` or `pub(super)`. Also private, which is /// equivalent to `pub(self)`. Module(Interned<ModPath>, VisibilityExplicitness), + /// `pub(crate)`. + PubCrate, /// `pub`. Public, } |