From 6bad638928ab880bfbad868f07f0690ace2f2c30 Mon Sep 17 00:00:00 2001 From: ice1000 Date: Fri, 27 Sep 2019 00:19:52 -0400 Subject: Support inferring `Self` type in enum definitions Signed-off-by: ice1000 --- crates/ra_hir/src/ty/infer.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'crates/ra_hir/src/ty/infer.rs') diff --git a/crates/ra_hir/src/ty/infer.rs b/crates/ra_hir/src/ty/infer.rs index ca9aefc42..9e5d42509 100644 --- a/crates/ra_hir/src/ty/infer.rs +++ b/crates/ra_hir/src/ty/infer.rs @@ -559,6 +559,9 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { match resolver.resolve_path_in_type_ns_fully(self.db, &path) { Some(TypeNs::Adt(Adt::Struct(it))) => it.into(), Some(TypeNs::Adt(Adt::Union(it))) => it.into(), + Some(TypeNs::AdtSelfType(Adt::Struct(it))) => it.into(), + Some(TypeNs::AdtSelfType(Adt::Union(it))) => it.into(), + Some(TypeNs::AdtSelfType(Adt::Enum(it))) => it.into(), Some(TypeNs::EnumVariant(it)) => it.into(), Some(TypeNs::TypeAlias(it)) => it.into(), -- cgit v1.2.3 From b043358be936b7f139efd49b7d187d64e319830e Mon Sep 17 00:00:00 2001 From: ice1000 Date: Tue, 8 Oct 2019 07:25:37 -0400 Subject: Address comments: fix docs, add completion test for `Self`. --- crates/ra_hir/src/ty/infer.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'crates/ra_hir/src/ty/infer.rs') diff --git a/crates/ra_hir/src/ty/infer.rs b/crates/ra_hir/src/ty/infer.rs index 9e5d42509..a69f04ff1 100644 --- a/crates/ra_hir/src/ty/infer.rs +++ b/crates/ra_hir/src/ty/infer.rs @@ -559,9 +559,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { match resolver.resolve_path_in_type_ns_fully(self.db, &path) { Some(TypeNs::Adt(Adt::Struct(it))) => it.into(), Some(TypeNs::Adt(Adt::Union(it))) => it.into(), - Some(TypeNs::AdtSelfType(Adt::Struct(it))) => it.into(), - Some(TypeNs::AdtSelfType(Adt::Union(it))) => it.into(), - Some(TypeNs::AdtSelfType(Adt::Enum(it))) => it.into(), + Some(TypeNs::AdtSelfType(adt)) => adt.into(), Some(TypeNs::EnumVariant(it)) => it.into(), Some(TypeNs::TypeAlias(it)) => it.into(), -- cgit v1.2.3