diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-01-15 14:48:21 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2021-01-15 14:48:21 +0000 |
commit | 0c58aa9dc0e24f0fa6a6ee7eb0c35041dedddb0a (patch) | |
tree | 863b6e41430b4d9f5c9dcebd443f4acdbe7e0193 /crates/hir_ty | |
parent | d6a708b1eae170aee4a323ea6513bc4f2a1a5bbc (diff) | |
parent | 138514bea244253f2c0007976921f4475c9d2cd5 (diff) |
Merge #7209
7209: Support yield keyword r=Veykril a=sasurau4
Part of #4309
The inference of yield will be implemented at another PR.
Co-authored-by: Daiki Ihara <[email protected]>
Diffstat (limited to 'crates/hir_ty')
-rw-r--r-- | crates/hir_ty/src/infer/expr.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/crates/hir_ty/src/infer/expr.rs b/crates/hir_ty/src/infer/expr.rs index f2fc69b2f..9bf3b51b0 100644 --- a/crates/hir_ty/src/infer/expr.rs +++ b/crates/hir_ty/src/infer/expr.rs | |||
@@ -367,6 +367,13 @@ impl<'a> InferenceContext<'a> { | |||
367 | } | 367 | } |
368 | Ty::simple(TypeCtor::Never) | 368 | Ty::simple(TypeCtor::Never) |
369 | } | 369 | } |
370 | Expr::Yield { expr } => { | ||
371 | // FIXME: track yield type for coercion | ||
372 | if let Some(expr) = expr { | ||
373 | self.infer_expr(*expr, &Expectation::none()); | ||
374 | } | ||
375 | Ty::simple(TypeCtor::Never) | ||
376 | } | ||
370 | Expr::RecordLit { path, fields, spread } => { | 377 | Expr::RecordLit { path, fields, spread } => { |
371 | let (ty, def_id) = self.resolve_variant(path.as_ref()); | 378 | let (ty, def_id) = self.resolve_variant(path.as_ref()); |
372 | if let Some(variant) = def_id { | 379 | if let Some(variant) = def_id { |