Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/autoderef.rs')
| -rw-r--r-- | crates/hir-ty/src/autoderef.rs | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/crates/hir-ty/src/autoderef.rs b/crates/hir-ty/src/autoderef.rs index 47d06be893..4efe64377b 100644 --- a/crates/hir-ty/src/autoderef.rs +++ b/crates/hir-ty/src/autoderef.rs @@ -5,7 +5,7 @@ use std::fmt; -use hir_def::{TraitId, TypeAliasId, lang_item::LangItem}; +use hir_def::{TraitId, TypeAliasId}; use rustc_type_ir::inherent::{IntoKind, Ty as _}; use tracing::debug; use triomphe::Arc; @@ -301,36 +301,28 @@ where self.infcx().interner } - #[inline] - fn db(&self) -> &'db dyn HirDatabase { - self.interner().db - } - fn autoderef_traits(&mut self) -> Option<AutoderefTraits> { + let lang_items = self.interner().lang_items(); match &mut self.traits { Some(it) => Some(*it), None => { let traits = if self.use_receiver_trait { (|| { Some(AutoderefTraits { - trait_: LangItem::Receiver - .resolve_trait(self.db(), self.env().krate)?, - trait_target: LangItem::ReceiverTarget - .resolve_type_alias(self.db(), self.env().krate)?, + trait_: lang_items.Receiver?, + trait_target: lang_items.ReceiverTarget?, }) })() .or_else(|| { Some(AutoderefTraits { - trait_: LangItem::Deref.resolve_trait(self.db(), self.env().krate)?, - trait_target: LangItem::DerefTarget - .resolve_type_alias(self.db(), self.env().krate)?, + trait_: lang_items.Deref?, + trait_target: lang_items.DerefTarget?, }) })? } else { AutoderefTraits { - trait_: LangItem::Deref.resolve_trait(self.db(), self.env().krate)?, - trait_target: LangItem::DerefTarget - .resolve_type_alias(self.db(), self.env().krate)?, + trait_: lang_items.Deref?, + trait_target: lang_items.DerefTarget?, } }; Some(*self.traits.insert(traits)) |