diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-09-11 19:26:48 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-09-11 19:26:48 -0700 |
| commit | 3d2a74a160c5772efccda711e60c173077099ef2 (patch) | |
| tree | 232a101ea013a8ead9633bd9a83c8a6e9c62798a /src/libsyntax/parse/common.rs | |
| parent | ea01ee2e9e161a7028b98848c071e5fe9c30c7f7 (diff) | |
| download | rust-3d2a74a160c5772efccda711e60c173077099ef2.tar.gz rust-3d2a74a160c5772efccda711e60c173077099ef2.zip | |
Reserve 'be' as a keyword
Diffstat (limited to 'src/libsyntax/parse/common.rs')
| -rw-r--r-- | src/libsyntax/parse/common.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libsyntax/parse/common.rs b/src/libsyntax/parse/common.rs index d71d95fd63f..a498b69527a 100644 --- a/src/libsyntax/parse/common.rs +++ b/src/libsyntax/parse/common.rs @@ -85,6 +85,7 @@ impl parser: parser_common { fn parse_ident() -> ast::ident { self.check_strict_keywords(); + self.check_reserved_keywords(); match copy self.token { token::IDENT(i, _) => { self.bump(); return i; } token::INTERPOLATED(token::nt_ident(*)) => { self.bug( @@ -204,6 +205,26 @@ impl parser: parser_common { } } + fn is_reserved_keyword(word: ~str) -> bool { + self.reserved_keywords.contains_key_ref(&word) + } + + fn check_reserved_keywords() { + match self.token { + token::IDENT(_, false) => { + let w = token_to_str(self.reader, self.token); + self.check_reserved_keywords_(w); + } + _ => () + } + } + + fn check_reserved_keywords_(w: ~str) { + if self.is_reserved_keyword(w) { + self.fatal(~"`" + w + ~"` is a reserved keyword"); + } + } + fn expect_gt() { if self.token == token::GT { self.bump(); |
