Skip to content

Commit

Permalink
Assign correct span to continue expression
Browse files Browse the repository at this point in the history
Fixes #28105.
  • Loading branch information
marcusklaas committed Aug 30, 2015
1 parent 4bb9023 commit b69347c
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
1 change: 0 additions & 1 deletion src/libsyntax/parse/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2142,7 +2142,6 @@ impl<'a> Parser<'a> {
return self.parse_loop_expr(None, lo);
}
if try!(self.eat_keyword(keywords::Continue) ){
let lo = self.span.lo;
let ex = if self.token.is_lifetime() {
let lifetime = self.get_lifetime();
try!(self.bump());
Expand Down
23 changes: 23 additions & 0 deletions src/test/compile-fail/issue-28105.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// Make sure that a continue span actually contains the keyword.

fn main() {
'a: loop {
if false {
continue //~ ERROR use of undeclared label
'b;
} else {
break //~ ERROR use of undeclared label
'c;
}
}
}

0 comments on commit b69347c

Please sign in to comment.