about summary refs log tree commit diff
path: root/src/libsyntax/parse/lexer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsyntax/parse/lexer.rs')
-rw-r--r--src/libsyntax/parse/lexer.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs
index 22a999ab744..d48c1d9d8d7 100644
--- a/src/libsyntax/parse/lexer.rs
+++ b/src/libsyntax/parse/lexer.rs
@@ -764,14 +764,15 @@ fn next_token_inner(rdr: @mut StringReader) -> token::Token {
                 let ident = str_to_ident(lifetime_name);
                 let tok = &token::IDENT(ident, false);
 
-                if token::is_any_keyword(tok)
-                    && !token::is_keyword(token::keywords::Static, tok)
-                    && !token::is_keyword(token::keywords::Self, tok) {
+                if token::is_keyword(token::keywords::Self, tok) {
                     fatal_span(rdr, start, rdr.last_pos,
-                        ~"invalid lifetime name");
+                               ~"invalid lifetime name: 'self is no longer a special lifetime");
+                } else if token::is_any_keyword(tok) &&
+                    !token::is_keyword(token::keywords::Static, tok) {
+                    fatal_span(rdr, start, rdr.last_pos, ~"invalid lifetime name");
+                } else {
+                    token::LIFETIME(ident)
                 }
-
-                token::LIFETIME(ident)
             })
         }