diff options
author | Florian Diebold <[email protected]> | 2019-09-16 21:01:13 +0100 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2019-09-17 18:47:45 +0100 |
commit | a040fde3ae5e339199237f24a7461812e74475bf (patch) | |
tree | 007e93e160cd6f0c5e62a4ed4ac72e8f6f8bf76b /crates/ra_hir/src/ty/infer.rs | |
parent | 53a932509dbb9dfdaabb27a0d7fc3fe87e44ec55 (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.rs | 26 |
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 | ||