diff options
| author | Simonas Kazlauskas <git@kazlauskas.me> | 2015-09-02 22:29:41 +0300 |
|---|---|---|
| committer | Simonas Kazlauskas <git@kazlauskas.me> | 2015-09-03 03:50:43 +0300 |
| commit | d8074e65b02812e96cd5ed987795f5e8cfcef78d (patch) | |
| tree | fc579b6df045fd1d3888120eda4c9cddc53a57b6 /src/libsyntax/parse | |
| parent | cd138dc4475fa90b007969d0a4e00f230be777cf (diff) | |
| download | rust-d8074e65b02812e96cd5ed987795f5e8cfcef78d.tar.gz rust-d8074e65b02812e96cd5ed987795f5e8cfcef78d.zip | |
Use proper span for break and continue labels
Fixes #28109
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 15 |
1 files changed, 9 insertions, 6 deletions
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); } |
