From 6294fd5ec9c6946bdd91f1274956c573f9f2a136 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 9 Nov 2019 15:34:00 +0300 Subject: Unfork struct and union ids --- crates/ra_hir_def/src/lib.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'crates/ra_hir_def/src/lib.rs') diff --git a/crates/ra_hir_def/src/lib.rs b/crates/ra_hir_def/src/lib.rs index 63ed2a098..239317efe 100644 --- a/crates/ra_hir_def/src/lib.rs +++ b/crates/ra_hir_def/src/lib.rs @@ -205,26 +205,30 @@ impl AstItemDef for FunctionId { } #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] -pub struct StructId(salsa::InternId); -impl_intern_key!(StructId); -impl AstItemDef for StructId { +pub struct StructOrUnionId(salsa::InternId); +impl_intern_key!(StructOrUnionId); +impl AstItemDef for StructOrUnionId { fn intern(db: &impl InternDatabase, loc: ItemLoc) -> Self { - db.intern_struct(loc) + db.intern_struct_or_union(loc) } fn lookup_intern(self, db: &impl InternDatabase) -> ItemLoc { - db.lookup_intern_struct(self) + db.lookup_intern_struct_or_union(self) } } #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] -pub struct UnionId(salsa::InternId); -impl_intern_key!(UnionId); -impl AstItemDef for UnionId { - fn intern(db: &impl InternDatabase, loc: ItemLoc) -> Self { - db.intern_union(loc) +pub struct StructId(pub StructOrUnionId); +impl From for StructOrUnionId { + fn from(id: StructId) -> StructOrUnionId { + id.0 } - fn lookup_intern(self, db: &impl InternDatabase) -> ItemLoc { - db.lookup_intern_union(self) +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct UnionId(pub StructOrUnionId); +impl From for StructOrUnionId { + fn from(id: UnionId) -> StructOrUnionId { + id.0 } } -- cgit v1.2.3