diff options
| author | Marcus Klaas <mail@marcusklaas.nl> | 2015-08-30 20:43:09 +0200 |
|---|---|---|
| committer | Marcus Klaas <mail@marcusklaas.nl> | 2015-08-30 20:44:36 +0200 |
| commit | b69347c00c755955ce0c49c3495eb9f7e18439e5 (patch) | |
| tree | 3bce21d92aebb6a275000f06ad6532319b2d4138 | |
| parent | 4bb90232daab451cf58359e0c5874bc905d2f101 (diff) | |
| download | rust-b69347c00c755955ce0c49c3495eb9f7e18439e5.tar.gz rust-b69347c00c755955ce0c49c3495eb9f7e18439e5.zip | |
Assign correct span to continue expression
Fixes https://github.com/rust-lang/rust/issues/28105.
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 1 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-28105.rs | 23 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index e6242690ac0..4966215a9f2 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -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()); diff --git a/src/test/compile-fail/issue-28105.rs b/src/test/compile-fail/issue-28105.rs new file mode 100644 index 00000000000..6ae635877b7 --- /dev/null +++ b/src/test/compile-fail/issue-28105.rs @@ -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; + } + } +} |
