aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/db.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_ty/src/db.rs')
-rw-r--r--crates/ra_hir_ty/src/db.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/crates/ra_hir_ty/src/db.rs b/crates/ra_hir_ty/src/db.rs
index fea122a8b..7684ade06 100644
--- a/crates/ra_hir_ty/src/db.rs
+++ b/crates/ra_hir_ty/src/db.rs
@@ -3,10 +3,10 @@
3use std::sync::Arc; 3use std::sync::Arc;
4 4
5use hir_def::{ 5use hir_def::{
6 db::DefDatabase, DefWithBodyId, GenericDefId, ImplId, LocalStructFieldId, TraitId, VariantId, 6 db::DefDatabase, DefWithBodyId, GenericDefId, ImplId, LocalStructFieldId, TraitId, VariantId, TypeParamId,
7}; 7};
8use ra_arena::map::ArenaMap; 8use ra_arena::map::ArenaMap;
9use ra_db::{salsa, CrateId}; 9use ra_db::{impl_intern_key, salsa, CrateId};
10use ra_prof::profile; 10use ra_prof::profile;
11 11
12use crate::{ 12use crate::{
@@ -37,10 +37,10 @@ pub trait HirDatabase: DefDatabase {
37 fn impl_self_ty(&self, def: ImplId) -> Binders<Ty>; 37 fn impl_self_ty(&self, def: ImplId) -> Binders<Ty>;
38 38
39 #[salsa::invoke(crate::lower::impl_trait_query)] 39 #[salsa::invoke(crate::lower::impl_trait_query)]
40 fn impl_trait(&self, def: ImplId) -> Option<TraitRef>; 40 fn impl_trait(&self, def: ImplId) -> Option<Binders<TraitRef>>;
41 41
42 #[salsa::invoke(crate::lower::field_types_query)] 42 #[salsa::invoke(crate::lower::field_types_query)]
43 fn field_types(&self, var: VariantId) -> Arc<ArenaMap<LocalStructFieldId, Ty>>; 43 fn field_types(&self, var: VariantId) -> Arc<ArenaMap<LocalStructFieldId, Binders<Ty>>>;
44 44
45 #[salsa::invoke(crate::callable_item_sig)] 45 #[salsa::invoke(crate::callable_item_sig)]
46 fn callable_item_signature(&self, def: CallableDef) -> PolyFnSig; 46 fn callable_item_signature(&self, def: CallableDef) -> PolyFnSig;
@@ -49,8 +49,7 @@ pub trait HirDatabase: DefDatabase {
49 #[salsa::cycle(crate::lower::generic_predicates_for_param_recover)] 49 #[salsa::cycle(crate::lower::generic_predicates_for_param_recover)]
50 fn generic_predicates_for_param( 50 fn generic_predicates_for_param(
51 &self, 51 &self,
52 def: GenericDefId, 52 param_id: TypeParamId,
53 param_idx: u32,
54 ) -> Arc<[GenericPredicate]>; 53 ) -> Arc<[GenericPredicate]>;
55 54
56 #[salsa::invoke(crate::lower::generic_predicates_query)] 55 #[salsa::invoke(crate::lower::generic_predicates_query)]
@@ -77,6 +76,8 @@ pub trait HirDatabase: DefDatabase {
77 #[salsa::interned] 76 #[salsa::interned]
78 fn intern_type_ctor(&self, type_ctor: TypeCtor) -> crate::TypeCtorId; 77 fn intern_type_ctor(&self, type_ctor: TypeCtor) -> crate::TypeCtorId;
79 #[salsa::interned] 78 #[salsa::interned]
79 fn intern_type_param_id(&self, param_id: TypeParamId) -> GlobalTypeParamId;
80 #[salsa::interned]
80 fn intern_chalk_impl(&self, impl_: Impl) -> crate::traits::GlobalImplId; 81 fn intern_chalk_impl(&self, impl_: Impl) -> crate::traits::GlobalImplId;
81 #[salsa::interned] 82 #[salsa::interned]
82 fn intern_assoc_ty_value(&self, assoc_ty_value: AssocTyValue) -> crate::traits::AssocTyValueId; 83 fn intern_assoc_ty_value(&self, assoc_ty_value: AssocTyValue) -> crate::traits::AssocTyValueId;
@@ -117,3 +118,7 @@ fn infer(db: &impl HirDatabase, def: DefWithBodyId) -> Arc<InferenceResult> {
117fn hir_database_is_object_safe() { 118fn hir_database_is_object_safe() {
118 fn _assert_object_safe(_: &dyn HirDatabase) {} 119 fn _assert_object_safe(_: &dyn HirDatabase) {}
119} 120}
121
122#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
123pub struct GlobalTypeParamId(salsa::InternId);
124impl_intern_key!(GlobalTypeParamId);