From d8074e65b02812e96cd5ed987795f5e8cfcef78d Mon Sep 17 00:00:00 2001 From: Simonas Kazlauskas Date: Wed, 2 Sep 2015 22:29:41 +0300 Subject: Use proper span for break and continue labels Fixes #28109 --- src/libsyntax/parse/parser.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/libsyntax/parse') diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 0772d124db8..33f784b72bb 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2143,9 +2143,12 @@ impl<'a> Parser<'a> { } if try!(self.eat_keyword(keywords::Continue) ){ let ex = if self.token.is_lifetime() { - let lifetime = self.get_lifetime(); + let ex = ExprAgain(Some(Spanned{ + node: self.get_lifetime(), + span: self.span + })); try!(self.bump()); - ExprAgain(Some(lifetime)) + ex } else { ExprAgain(None) }; @@ -2161,7 +2164,6 @@ impl<'a> Parser<'a> { UnsafeBlock(ast::UserProvided)); } if try!(self.eat_keyword(keywords::Return) ){ - // RETURN expression if self.token.can_begin_expr() { let e = try!(self.parse_expr_nopanic()); hi = e.span.hi; @@ -2170,11 +2172,12 @@ impl<'a> Parser<'a> { ex = ExprRet(None); } } else if try!(self.eat_keyword(keywords::Break) ){ - // BREAK expression if self.token.is_lifetime() { - let lifetime = self.get_lifetime(); + ex = ExprBreak(Some(Spanned { + node: self.get_lifetime(), + span: self.span + })); try!(self.bump()); - ex = ExprBreak(Some(lifetime)); } else { ex = ExprBreak(None); } -- cgit 1.4.1-3-g733a5