1913: Fix retrieval of the Fn traits r=flodiebold a=flodiebold

I used the wrong query, so it only used the lang items from the respective
crate...

Co-authored-by: Florian Diebold <flodiebold@gmail.com>
This commit is contained in:
bors[bot] 2019-09-25 18:14:35 +00:00 committed by GitHub
commit 5704485063
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 8 deletions

View file

@ -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>;

View file

@ -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)

View file

@ -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,
}
}

View file

@ -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