aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/infer.rs
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2019-02-24 20:08:10 +0000
committerbors[bot] <bors[bot]@users.noreply.github.com>2019-02-24 20:08:10 +0000
commit61d961263387f7293f3d0c4d7b8c8c9a07959ced (patch)
treeb22232818d8d8ad8fff5b11b1656e2602115cd55 /crates/ra_hir/src/ty/infer.rs
parent5a684099e9aa3482b408002030fafe1dcd0fa9a9 (diff)
parentc3c09795614f31f988edc9cb051ce024d1996d89 (diff)
Merge #892
892: Type aliases r=matklad a=flodiebold This implements type aliases (i.e. `type` definitions). There's just one snag: handling recursion. E.g. `type Foo = Foo` makes type inference panic with a query cycle. I think the best way to handle this would be if Salsa provided the ability to catch cycle errors? It seems that there's some work underway to support this [here](https://github.com/salsa-rs/salsa/issues/6) and [here](https://github.com/salsa-rs/salsa/pull/147). Should we wait for this? I don't see a good way to handle this without help from Salsa. Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/ty/infer.rs')
-rw-r--r--crates/ra_hir/src/ty/infer.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/crates/ra_hir/src/ty/infer.rs b/crates/ra_hir/src/ty/infer.rs
index 13080b5aa..29331bea5 100644
--- a/crates/ra_hir/src/ty/infer.rs
+++ b/crates/ra_hir/src/ty/infer.rs
@@ -477,7 +477,9 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> {
477 let ty = self.insert_type_vars(ty.apply_substs(substs)); 477 let ty = self.insert_type_vars(ty.apply_substs(substs));
478 (ty, Some(var.into())) 478 (ty, Some(var.into()))
479 } 479 }
480 TypableDef::Function(_) | TypableDef::Enum(_) => (Ty::Unknown, None), 480 TypableDef::Type(_) | TypableDef::Function(_) | TypableDef::Enum(_) => {
481 (Ty::Unknown, None)
482 }
481 } 483 }
482 } 484 }
483 485