diff options
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/lexer.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/parse/obsolete.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 3 |
3 files changed, 9 insertions, 2 deletions
diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs index 4a384f864b0..79c330c4737 100644 --- a/src/libsyntax/parse/lexer.rs +++ b/src/libsyntax/parse/lexer.rs @@ -431,7 +431,7 @@ fn scan_digits(rdr: @mut StringReader, radix: uint) -> ~str { let mut rslt = ~""; loop { let c = rdr.curr; - if c == '_' { bump(rdr); loop; } + if c == '_' { bump(rdr); continue; } match char::to_digit(c, radix) { Some(_) => { rslt.push_char(c); diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs index adf0c208da4..5a8563f963d 100644 --- a/src/libsyntax/parse/obsolete.rs +++ b/src/libsyntax/parse/obsolete.rs @@ -63,6 +63,7 @@ pub enum ObsoleteSyntax { ObsoleteTraitFuncVisibility, ObsoleteConstPointer, ObsoleteEmptyImpl, + ObsoleteLoopAsContinue, } impl to_bytes::IterBytes for ObsoleteSyntax { @@ -244,6 +245,11 @@ impl ParserObsoleteMethods for Parser { "empty implementation", "instead of `impl A;`, write `impl A {}`" ), + ObsoleteLoopAsContinue => ( + "`loop` instead of `continue`", + "`loop` is now only used for loops and `continue` is used for \ + skipping iterations" + ), }; self.report(sp, kind, kind_str, desc); diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 4dd09cbcbd2..4598bc04369 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -1987,7 +1987,7 @@ impl Parser { } _ => self.unexpected() } - loop; + continue; } if self.expr_is_complete(e) { break; } match *self.token { @@ -2597,6 +2597,7 @@ impl Parser { "a label may not be used with a `loop` expression"); } + self.obsolete(*self.last_span, ObsoleteLoopAsContinue); let lo = self.span.lo; let ex = if self.token_is_lifetime(&*self.token) { let lifetime = self.get_lifetime(&*self.token); |
