From 07351b44c657225d45e2aa0a302ccd28f96839a8 Mon Sep 17 00:00:00 2001 From: Huon Wilson Date: Sun, 8 Sep 2013 22:08:01 +1000 Subject: syntax: implement labelled breaks for `for`. `for` desugars to `loop` so it is trivial to just desugar to `loop` while retaining any label. --- src/libsyntax/ext/expand.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/libsyntax/ext') 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 in ` - 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], -- cgit 1.4.1-3-g733a5