aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/infer.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-09-16 21:01:13 +0100
committerFlorian Diebold <[email protected]>2019-09-17 18:47:45 +0100
commita040fde3ae5e339199237f24a7461812e74475bf (patch)
tree007e93e160cd6f0c5e62a4ed4ac72e8f6f8bf76b /crates/ra_hir/src/ty/infer.rs
parent53a932509dbb9dfdaabb27a0d7fc3fe87e44ec55 (diff)
Remove TraitItem and ImplItem in favor of AssocItem
Diffstat (limited to 'crates/ra_hir/src/ty/infer.rs')
-rw-r--r--crates/ra_hir/src/ty/infer.rs26
1 files changed, 12 insertions, 14 deletions
diff --git a/crates/ra_hir/src/ty/infer.rs b/crates/ra_hir/src/ty/infer.rs
index 181be0fcc..70da7f311 100644
--- a/crates/ra_hir/src/ty/infer.rs
+++ b/crates/ra_hir/src/ty/infer.rs
@@ -576,34 +576,32 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
576 576
577 // Find impl 577 // Find impl
578 // FIXME: consider trait candidates 578 // FIXME: consider trait candidates
579 let def = ty.clone().iterate_impl_items(self.db, krate, |item| match item { 579 let item = ty.clone().iterate_impl_items(self.db, krate, |item| match item {
580 crate::ImplItem::Method(func) => { 580 AssocItem::Function(func) => {
581 if segment.name == func.name(self.db) { 581 if segment.name == func.name(self.db) {
582 Some(ValueNs::Function(func)) 582 Some(AssocItem::Function(func))
583 } else { 583 } else {
584 None 584 None
585 } 585 }
586 } 586 }
587 587
588 crate::ImplItem::Const(konst) => { 588 AssocItem::Const(konst) => {
589 if konst.name(self.db).map_or(false, |n| n == segment.name) { 589 if konst.name(self.db).map_or(false, |n| n == segment.name) {
590 Some(ValueNs::Const(konst)) 590 Some(AssocItem::Const(konst))
591 } else { 591 } else {
592 None 592 None
593 } 593 }
594 } 594 }
595 crate::ImplItem::TypeAlias(_) => None, 595 AssocItem::TypeAlias(_) => None,
596 })?; 596 })?;
597 let def = match item {
598 AssocItem::Function(f) => ValueNs::Function(f),
599 AssocItem::Const(c) => ValueNs::Const(c),
600 AssocItem::TypeAlias(_) => unreachable!(),
601 };
597 let substs = self.find_self_types(&def, ty); 602 let substs = self.find_self_types(&def, ty);
598 603
599 self.write_assoc_resolution( 604 self.write_assoc_resolution(id, item);
600 id,
601 match def {
602 ValueNs::Function(f) => AssocItem::Function(f),
603 ValueNs::Const(c) => AssocItem::Const(c),
604 _ => unreachable!(),
605 },
606 );
607 Some((def, substs)) 605 Some((def, substs))
608 } 606 }
609 607