Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/lib.rs')
-rw-r--r--crates/hir-def/src/lib.rs23
1 files changed, 14 insertions, 9 deletions
diff --git a/crates/hir-def/src/lib.rs b/crates/hir-def/src/lib.rs
index 4431d1b3c8..e3ac7faa6c 100644
--- a/crates/hir-def/src/lib.rs
+++ b/crates/hir-def/src/lib.rs
@@ -70,7 +70,7 @@ use hir_expand::{
AstId, ExpandError, ExpandTo, HirFileId, InFile, MacroCallId, MacroCallKind, MacroDefId,
MacroDefKind, UnresolvedMacro,
};
-use item_tree::ExternBlock;
+use item_tree::{ExternBlock, RawVisibilityId, TreeId};
use la_arena::Idx;
use nameres::DefMap;
use stdx::impl_from;
@@ -156,19 +156,24 @@ impl<N: ItemTreeNode> Hash for ItemLoc<N> {
}
}
-#[derive(Debug)]
-pub struct AssocItemLoc<N: ItemTreeNode> {
- pub container: ItemContainerId,
- pub id: ItemTreeId<N>,
+#[derive(Debug, Clone, Copy)]
+pub struct InheritedVisibilityLoc {
+ pub raw_visibility_id: RawVisibilityId,
+ pub tree_id: TreeId,
}
-impl<N: ItemTreeNode> Clone for AssocItemLoc<N> {
- fn clone(&self) -> Self {
- Self { container: self.container, id: self.id }
+impl InheritedVisibilityLoc {
+ pub fn new(visibility_id: RawVisibilityId, tree_id: TreeId) -> Self {
+ Self { raw_visibility_id: visibility_id, tree_id }
}
}
-impl<N: ItemTreeNode> Copy for AssocItemLoc<N> {}
+#[derive(Debug, Clone, Copy)]
+pub struct AssocItemLoc<N: ItemTreeNode> {
+ pub container: ItemContainerId,
+ pub id: ItemTreeId<N>,
+ pub inherited_visibility: Option<InheritedVisibilityLoc>,
+}
impl<N: ItemTreeNode> PartialEq for AssocItemLoc<N> {
fn eq(&self, other: &Self) -> bool {