diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2013-09-08 22:08:01 +1000 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2013-09-08 22:08:01 +1000 |
| commit | 07351b44c657225d45e2aa0a302ccd28f96839a8 (patch) | |
| tree | e61809a471532d32ed51f9d72ea0536b9fef471c /src/libsyntax/ext | |
| parent | b609d022c4df307e4d68499b063c81a9ecb1e9cf (diff) | |
| download | rust-07351b44c657225d45e2aa0a302ccd28f96839a8.tar.gz rust-07351b44c657225d45e2aa0a302ccd28f96839a8.zip | |
syntax: implement labelled breaks for `for`.
`for` desugars to `loop` so it is trivial to just desugar to `loop` while retaining any label.
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index cde418ca991..abade04fedf 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -113,7 +113,7 @@ pub fn expand_expr(extsbox: @mut SyntaxEnv, // Desugar expr_for_loop // From: `for <src_pat> in <src_expr> <src_loop_block>` - ast::ExprForLoop(src_pat, src_expr, ref src_loop_block) => { + ast::ExprForLoop(src_pat, src_expr, ref src_loop_block, opt_ident) => { let src_pat = src_pat.clone(); let src_expr = src_expr.clone(); @@ -257,7 +257,7 @@ pub fn expand_expr(extsbox: @mut SyntaxEnv, // `loop { ... }` let loop_block = { let loop_body_block = mk_block(cx, [match_stmt], None, span); - let loop_body_expr = mk_expr(cx, span, ast::ExprLoop(loop_body_block, None)); + let loop_body_expr = mk_expr(cx, span, ast::ExprLoop(loop_body_block, opt_ident)); let loop_body_stmt = @spanned(lo, hi, ast::StmtExpr(loop_body_expr, cx.next_id())); mk_block(cx, [iter_decl_stmt, loop_body_stmt], |
