Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir_ty/src/infer.rs')
-rw-r--r--crates/hir_ty/src/infer.rs18
1 files changed, 8 insertions, 10 deletions
diff --git a/crates/hir_ty/src/infer.rs b/crates/hir_ty/src/infer.rs
index 56e554736e..ce6cb81540 100644
--- a/crates/hir_ty/src/infer.rs
+++ b/crates/hir_ty/src/infer.rs
@@ -28,11 +28,10 @@ use hir_def::{
AdtId, AssocItemId, DefWithBodyId, EnumVariantId, FieldId, FunctionId, HasModule, Lookup,
TraitId, TypeAliasId, VariantId,
};
-use hir_expand::name::name;
+use hir_expand::name::{name, Name};
use la_arena::ArenaMap;
use rustc_hash::FxHashMap;
use stdx::impl_from;
-use syntax::SmolStr;
use crate::{
db::HirDatabase, fold_tys, infer::coerce::CoerceMany, lower::ImplTraitLoweringMode,
@@ -719,10 +718,9 @@ impl<'a> InferenceContext<'a> {
self.infer_expr_coerce(self.body.body_expr, &Expectation::has_type(self.return_ty.clone()));
}
- fn resolve_lang_item(&self, name: &str) -> Option<LangItemTarget> {
+ fn resolve_lang_item(&self, name: Name) -> Option<LangItemTarget> {
let krate = self.resolver.krate()?;
- let name = SmolStr::new_inline(name);
- self.db.lang_item(krate, name)
+ self.db.lang_item(krate, name.to_smol_str())
}
fn resolve_into_iter_item(&self) -> Option<TypeAliasId> {
@@ -743,22 +741,22 @@ impl<'a> InferenceContext<'a> {
}
fn resolve_ops_neg_output(&self) -> Option<TypeAliasId> {
- let trait_ = self.resolve_lang_item("neg")?.as_trait()?;
+ let trait_ = self.resolve_lang_item(name![neg])?.as_trait()?;
self.db.trait_data(trait_).associated_type_by_name(&name![Output])
}
fn resolve_ops_not_output(&self) -> Option<TypeAliasId> {
- let trait_ = self.resolve_lang_item("not")?.as_trait()?;
+ let trait_ = self.resolve_lang_item(name![not])?.as_trait()?;
self.db.trait_data(trait_).associated_type_by_name(&name![Output])
}
fn resolve_future_future_output(&self) -> Option<TypeAliasId> {
- let trait_ = self.resolve_lang_item("future_trait")?.as_trait()?;
+ let trait_ = self.resolve_lang_item(name![future_trait])?.as_trait()?;
self.db.trait_data(trait_).associated_type_by_name(&name![Output])
}
fn resolve_boxed_box(&self) -> Option<AdtId> {
- let struct_ = self.resolve_lang_item("owned_box")?.as_struct()?;
+ let struct_ = self.resolve_lang_item(name![owned_box])?.as_struct()?;
Some(struct_.into())
}
@@ -799,7 +797,7 @@ impl<'a> InferenceContext<'a> {
}
fn resolve_ops_index(&self) -> Option<TraitId> {
- self.resolve_lang_item("index")?.as_trait()
+ self.resolve_lang_item(name![index])?.as_trait()
}
fn resolve_ops_index_output(&self) -> Option<TypeAliasId> {