Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/lower.rs')
-rw-r--r--crates/hir-ty/src/lower.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/crates/hir-ty/src/lower.rs b/crates/hir-ty/src/lower.rs
index 386a03d93f..75ac3b0d66 100644
--- a/crates/hir-ty/src/lower.rs
+++ b/crates/hir-ty/src/lower.rs
@@ -10,7 +10,10 @@ use std::{
iter,
};
-use base_db::{salsa::Cycle, CrateId};
+use base_db::{
+ salsa::{impl_intern_value_trivial, Cycle},
+ CrateId,
+};
use chalk_ir::{
cast::Cast, fold::Shift, fold::TypeFoldable, interner::HasInterner, Mutability, Safety,
};
@@ -1225,7 +1228,7 @@ impl<'a> TyLoweringContext<'a> {
.collect();
if !ctx.unsized_types.borrow().contains(&self_ty) {
- let krate = func.lookup(ctx.db.upcast()).module(ctx.db.upcast()).krate();
+ let krate = func.krate(ctx.db.upcast());
let sized_trait = ctx
.db
.lang_item(krate, LangItem::Sized)
@@ -1809,6 +1812,7 @@ pub enum CallableDefId {
StructId(StructId),
EnumVariantId(EnumVariantId),
}
+impl_intern_value_trivial!(CallableDefId);
impl_from!(FunctionId, StructId, EnumVariantId for CallableDefId);
impl From<CallableDefId> for ModuleDefId {
fn from(def: CallableDefId) -> ModuleDefId {
@@ -1824,11 +1828,10 @@ impl CallableDefId {
pub fn krate(self, db: &dyn HirDatabase) -> CrateId {
let db = db.upcast();
match self {
- CallableDefId::FunctionId(f) => f.lookup(db).module(db),
- CallableDefId::StructId(s) => s.lookup(db).container,
- CallableDefId::EnumVariantId(e) => e.module(db),
+ CallableDefId::FunctionId(f) => f.krate(db),
+ CallableDefId::StructId(s) => s.krate(db),
+ CallableDefId::EnumVariantId(e) => e.krate(db),
}
- .krate()
}
}