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.rs | 15 |
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; }; |