Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/dyn_compatibility.rs')
-rw-r--r--crates/hir-ty/src/dyn_compatibility.rs15
1 files changed, 6 insertions, 9 deletions
diff --git a/crates/hir-ty/src/dyn_compatibility.rs b/crates/hir-ty/src/dyn_compatibility.rs
index d6de9ca7f4..a658302b09 100644
--- a/crates/hir-ty/src/dyn_compatibility.rs
+++ b/crates/hir-ty/src/dyn_compatibility.rs
@@ -5,7 +5,7 @@ use std::ops::ControlFlow;
use hir_def::{
AssocItemId, ConstId, CrateRootModuleId, FunctionId, GenericDefId, HasModule, TraitId,
TypeAliasId, TypeOrConstParamId, TypeParamId, hir::generics::LocalTypeOrConstParamId,
- lang_item::LangItem, signatures::TraitFlags,
+ signatures::TraitFlags,
};
use rustc_hash::FxHashSet;
use rustc_type_ir::{
@@ -131,11 +131,11 @@ pub fn dyn_compatibility_of_trait_query(
pub fn generics_require_sized_self(db: &dyn HirDatabase, def: GenericDefId) -> bool {
let krate = def.module(db).krate();
- let Some(sized) = LangItem::Sized.resolve_trait(db, krate) else {
+ let interner = DbInterner::new_with(db, krate, None);
+ let Some(sized) = interner.lang_items().Sized else {
return false;
};
- let interner = DbInterner::new_no_crate(db);
let predicates = GenericPredicates::query_explicit(db, def);
// FIXME: We should use `explicit_predicates_of` here, which hasn't been implemented to
// rust-analyzer yet
@@ -420,16 +420,13 @@ fn receiver_is_dispatchable<'db>(
return false;
};
- let krate = func.module(db).krate();
- let traits = (
- LangItem::Unsize.resolve_trait(db, krate),
- LangItem::DispatchFromDyn.resolve_trait(db, krate),
- );
+ let lang_items = interner.lang_items();
+ let traits = (lang_items.Unsize, lang_items.DispatchFromDyn);
let (Some(unsize_did), Some(dispatch_from_dyn_did)) = traits else {
return false;
};
- let meta_sized_did = LangItem::MetaSized.resolve_trait(db, krate);
+ let meta_sized_did = lang_items.MetaSized;
let Some(meta_sized_did) = meta_sized_did else {
return false;
};