Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/mir/lower/as_place.rs')
-rw-r--r--crates/hir-ty/src/mir/lower/as_place.rs24
1 files changed, 5 insertions, 19 deletions
diff --git a/crates/hir-ty/src/mir/lower/as_place.rs b/crates/hir-ty/src/mir/lower/as_place.rs
index fb4a9add81..0f7fc9a18e 100644
--- a/crates/hir-ty/src/mir/lower/as_place.rs
+++ b/crates/hir-ty/src/mir/lower/as_place.rs
@@ -1,7 +1,6 @@
//! MIR lowering for places
use hir_def::FunctionId;
-use intern::sym;
use rustc_type_ir::inherent::{Region as _, Ty as _};
use super::*;
@@ -183,10 +182,7 @@ impl<'db> MirLowerCtx<'_, 'db> {
expr_id.into(),
'b: {
if let Some((f, _)) = self.infer.method_resolution(expr_id)
- && let Some(deref_trait) = self.lang_items().DerefMut
- && let Some(deref_fn) = deref_trait
- .trait_items(self.db)
- .method_by_name(&Name::new_symbol_root(sym::deref_mut))
+ && let Some(deref_fn) = self.lang_items().DerefMut_deref_mut
{
break 'b deref_fn == f;
}
@@ -315,18 +311,12 @@ impl<'db> MirLowerCtx<'_, 'db> {
mutability: bool,
) -> Result<'db, Option<(Place, BasicBlockId)>> {
let lang_items = self.lang_items();
- let (mutability, trait_lang_item, trait_method_name, borrow_kind) = if !mutability {
- (
- Mutability::Not,
- lang_items.Deref,
- Name::new_symbol_root(sym::deref),
- BorrowKind::Shared,
- )
+ let (mutability, deref_fn, borrow_kind) = if !mutability {
+ (Mutability::Not, lang_items.Deref_deref, BorrowKind::Shared)
} else {
(
Mutability::Mut,
- lang_items.DerefMut,
- Name::new_symbol_root(sym::deref_mut),
+ lang_items.DerefMut_deref_mut,
BorrowKind::Mut { kind: MutBorrowKind::Default },
)
};
@@ -335,11 +325,7 @@ impl<'db> MirLowerCtx<'_, 'db> {
let target_ty_ref = Ty::new_ref(self.interner(), error_region, target_ty, mutability);
let ref_place: Place = self.temp(ty_ref, current, span)?.into();
self.push_assignment(current, ref_place, Rvalue::Ref(borrow_kind, place), span);
- let deref_trait = trait_lang_item.ok_or(MirLowerError::LangItemNotFound)?;
- let deref_fn = deref_trait
- .trait_items(self.db)
- .method_by_name(&trait_method_name)
- .ok_or(MirLowerError::LangItemNotFound)?;
+ let deref_fn = deref_fn.ok_or(MirLowerError::LangItemNotFound)?;
let deref_fn_op = Operand::const_zst(Ty::new_fn_def(
self.interner(),
CallableDefId::FunctionId(deref_fn).into(),