diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-12-19 17:22:40 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2019-12-19 17:22:40 +0000 |
commit | 0000c7753ead95d71cb95ccc4929d4845f218ab2 (patch) | |
tree | b25ab818073492ff8c80176043b68ffe7a40ab3c /crates/ra_hir_ty | |
parent | 90f3b31efc1afe5de671fd6076fef3240f4151ab (diff) | |
parent | 9ccad60acca0d359f1fd9046c99952d0c1adc763 (diff) |
Merge #2600
2600: Plumbing for local items support r=matklad a=matklad
bors r+
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_hir_ty')
-rw-r--r-- | crates/ra_hir_ty/src/infer/path.rs | 2 | ||||
-rw-r--r-- | crates/ra_hir_ty/src/method_resolution.rs | 10 | ||||
-rw-r--r-- | crates/ra_hir_ty/src/utils.rs | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/crates/ra_hir_ty/src/infer/path.rs b/crates/ra_hir_ty/src/infer/path.rs index 402a89386..31c90ea1e 100644 --- a/crates/ra_hir_ty/src/infer/path.rs +++ b/crates/ra_hir_ty/src/infer/path.rs | |||
@@ -237,7 +237,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
237 | })); | 237 | })); |
238 | Some(substs) | 238 | Some(substs) |
239 | } | 239 | } |
240 | ContainerId::ModuleId(_) => None, | 240 | ContainerId::ModuleId(_) | ContainerId::DefWithBodyId(_) => None, |
241 | }; | 241 | }; |
242 | 242 | ||
243 | self.write_assoc_resolution(id, item.into()); | 243 | self.write_assoc_resolution(id, item.into()); |
diff --git a/crates/ra_hir_ty/src/method_resolution.rs b/crates/ra_hir_ty/src/method_resolution.rs index 848e306e9..d0b2b016d 100644 --- a/crates/ra_hir_ty/src/method_resolution.rs +++ b/crates/ra_hir_ty/src/method_resolution.rs | |||
@@ -6,8 +6,8 @@ use std::sync::Arc; | |||
6 | 6 | ||
7 | use arrayvec::ArrayVec; | 7 | use arrayvec::ArrayVec; |
8 | use hir_def::{ | 8 | use hir_def::{ |
9 | lang_item::LangItemTarget, resolver::Resolver, type_ref::Mutability, AssocItemId, FunctionId, | 9 | lang_item::LangItemTarget, resolver::Resolver, type_ref::Mutability, AssocItemId, ContainerId, |
10 | HasModule, ImplId, Lookup, TraitId, | 10 | FunctionId, HasModule, ImplId, Lookup, TraitId, |
11 | }; | 11 | }; |
12 | use hir_expand::name::Name; | 12 | use hir_expand::name::Name; |
13 | use ra_db::CrateId; | 13 | use ra_db::CrateId; |
@@ -451,12 +451,12 @@ fn transform_receiver_ty( | |||
451 | self_ty: &Canonical<Ty>, | 451 | self_ty: &Canonical<Ty>, |
452 | ) -> Option<Ty> { | 452 | ) -> Option<Ty> { |
453 | let substs = match function_id.lookup(db).container { | 453 | let substs = match function_id.lookup(db).container { |
454 | hir_def::ContainerId::TraitId(_) => Substs::build_for_def(db, function_id) | 454 | ContainerId::TraitId(_) => Substs::build_for_def(db, function_id) |
455 | .push(self_ty.value.clone()) | 455 | .push(self_ty.value.clone()) |
456 | .fill_with_unknown() | 456 | .fill_with_unknown() |
457 | .build(), | 457 | .build(), |
458 | hir_def::ContainerId::ImplId(impl_id) => inherent_impl_substs(db, impl_id, &self_ty)?, | 458 | ContainerId::ImplId(impl_id) => inherent_impl_substs(db, impl_id, &self_ty)?, |
459 | hir_def::ContainerId::ModuleId(_) => unreachable!(), | 459 | ContainerId::ModuleId(_) | ContainerId::DefWithBodyId(_) => unreachable!(), |
460 | }; | 460 | }; |
461 | let sig = db.callable_item_signature(function_id.into()); | 461 | let sig = db.callable_item_signature(function_id.into()); |
462 | Some(sig.params()[0].clone().subst(&substs)) | 462 | Some(sig.params()[0].clone().subst(&substs)) |
diff --git a/crates/ra_hir_ty/src/utils.rs b/crates/ra_hir_ty/src/utils.rs index 29799a8cb..34defc1a2 100644 --- a/crates/ra_hir_ty/src/utils.rs +++ b/crates/ra_hir_ty/src/utils.rs | |||
@@ -157,6 +157,6 @@ fn parent_generic_def(db: &impl DefDatabase, def: GenericDefId) -> Option<Generi | |||
157 | match container { | 157 | match container { |
158 | ContainerId::ImplId(it) => Some(it.into()), | 158 | ContainerId::ImplId(it) => Some(it.into()), |
159 | ContainerId::TraitId(it) => Some(it.into()), | 159 | ContainerId::TraitId(it) => Some(it.into()), |
160 | ContainerId::ModuleId(_) => None, | 160 | ContainerId::ModuleId(_) | ContainerId::DefWithBodyId(_) => None, |
161 | } | 161 | } |
162 | } | 162 | } |