Fix retrieval of the Fn traits
I used the wrong query, so it only used the lang items from the respective crate...
This commit is contained in:
parent
a452e50e0e
commit
d0d1a202d4
4 changed files with 7 additions and 8 deletions
|
@ -136,8 +136,8 @@ pub trait DefDatabase: InternDatabase + HirDebugDatabase {
|
|||
#[salsa::invoke(crate::lang_item::LangItems::module_lang_items_query)]
|
||||
fn module_lang_items(&self, module: Module) -> Option<Arc<LangItems>>;
|
||||
|
||||
#[salsa::invoke(crate::lang_item::LangItems::lang_items_query)]
|
||||
fn lang_items(&self, krate: Crate) -> Arc<LangItems>;
|
||||
#[salsa::invoke(crate::lang_item::LangItems::crate_lang_items_query)]
|
||||
fn crate_lang_items(&self, krate: Crate) -> Arc<LangItems>;
|
||||
|
||||
#[salsa::invoke(crate::lang_item::LangItems::lang_item_query)]
|
||||
fn lang_item(&self, start_crate: Crate, item: SmolStr) -> Option<LangItemTarget>;
|
||||
|
|
|
@ -42,7 +42,7 @@ impl LangItems {
|
|||
}
|
||||
|
||||
/// Salsa query. This will look for lang items in a specific crate.
|
||||
pub(crate) fn lang_items_query(
|
||||
pub(crate) fn crate_lang_items_query(
|
||||
db: &(impl DefDatabase + AstDatabase),
|
||||
krate: Crate,
|
||||
) -> Arc<LangItems> {
|
||||
|
@ -75,7 +75,7 @@ impl LangItems {
|
|||
start_crate: Crate,
|
||||
item: SmolStr,
|
||||
) -> Option<LangItemTarget> {
|
||||
let lang_items = db.lang_items(start_crate);
|
||||
let lang_items = db.crate_lang_items(start_crate);
|
||||
let start_crate_target = lang_items.items.get(&item);
|
||||
if let Some(target) = start_crate_target {
|
||||
Some(*target)
|
||||
|
|
|
@ -765,10 +765,9 @@ fn closure_fn_trait_impl_datum(
|
|||
}
|
||||
|
||||
fn get_fn_trait(db: &impl HirDatabase, krate: Crate, fn_trait: super::FnTrait) -> Option<Trait> {
|
||||
let lang_items = db.lang_items(krate);
|
||||
let target = lang_items.target(fn_trait.lang_item_name())?;
|
||||
let target = db.lang_item(krate, fn_trait.lang_item_name().into())?;
|
||||
match target {
|
||||
crate::lang_item::LangItemTarget::Trait(t) => Some(*t),
|
||||
crate::lang_item::LangItemTarget::Trait(t) => Some(t),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -326,7 +326,7 @@ impl RootDatabase {
|
|||
hir::db::ConstDataQuery
|
||||
hir::db::StaticDataQuery
|
||||
hir::db::ModuleLangItemsQuery
|
||||
hir::db::LangItemsQuery
|
||||
hir::db::CrateLangItemsQuery
|
||||
hir::db::LangItemQuery
|
||||
hir::db::DocumentationQuery
|
||||
hir::db::ExprScopesQuery
|
||||
|
|
Loading…
Add table
Reference in a new issue