Assign correct span to continue expression
Fixes https://github.com/rust-lang/rust/issues/28105.
This commit is contained in:
parent
4bb90232da
commit
b69347c00c
2 changed files with 23 additions and 1 deletions
|
@ -2142,7 +2142,6 @@ impl<'a> Parser<'a> {
|
||||||
return self.parse_loop_expr(None, lo);
|
return self.parse_loop_expr(None, lo);
|
||||||
}
|
}
|
||||||
if try!(self.eat_keyword(keywords::Continue) ){
|
if try!(self.eat_keyword(keywords::Continue) ){
|
||||||
let lo = self.span.lo;
|
|
||||||
let ex = if self.token.is_lifetime() {
|
let ex = if self.token.is_lifetime() {
|
||||||
let lifetime = self.get_lifetime();
|
let lifetime = self.get_lifetime();
|
||||||
try!(self.bump());
|
try!(self.bump());
|
||||||
|
|
23
src/test/compile-fail/issue-28105.rs
Normal file
23
src/test/compile-fail/issue-28105.rs
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue