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_def/src/body | |
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_def/src/body')
-rw-r--r-- | crates/hir_def/src/body/lower.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/crates/hir_def/src/body/lower.rs b/crates/hir_def/src/body/lower.rs index 27575c537..4ce5e5b72 100644 --- a/crates/hir_def/src/body/lower.rs +++ b/crates/hir_def/src/body/lower.rs | |||
@@ -386,6 +386,10 @@ impl ExprCollector<'_> { | |||
386 | let expr = e.expr().map(|e| self.collect_expr(e)); | 386 | let expr = e.expr().map(|e| self.collect_expr(e)); |
387 | self.alloc_expr(Expr::Return { expr }, syntax_ptr) | 387 | self.alloc_expr(Expr::Return { expr }, syntax_ptr) |
388 | } | 388 | } |
389 | ast::Expr::YieldExpr(e) => { | ||
390 | let expr = e.expr().map(|e| self.collect_expr(e)); | ||
391 | self.alloc_expr(Expr::Yield { expr }, syntax_ptr) | ||
392 | } | ||
389 | ast::Expr::RecordExpr(e) => { | 393 | ast::Expr::RecordExpr(e) => { |
390 | let path = e.path().and_then(|path| self.expander.parse_path(path)); | 394 | let path = e.path().and_then(|path| self.expander.parse_path(path)); |
391 | let mut field_ptrs = Vec::new(); | 395 | let mut field_ptrs = Vec::new(); |