diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-08-30 17:09:04 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-08-30 17:10:07 -0700 |
| commit | 4846affedb3c05cb692f41398b986ad7ed1844aa (patch) | |
| tree | 7f3a2e6d264d9a5201aff6cdd1e878cdbd7b0b76 /src/libsyntax/parse/parser.rs | |
| parent | c3ac0f8fd95a6521c46ea32d1a7866635f96e921 (diff) | |
| download | rust-4846affedb3c05cb692f41398b986ad7ed1844aa.tar.gz rust-4846affedb3c05cb692f41398b986ad7ed1844aa.zip | |
rustc: "extern mod { ... }" should be written "extern { ... }" instead
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 8cc8994189b..c83e6893e3c 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2915,15 +2915,34 @@ struct parser { attrs: ~[attribute], items_allowed: bool) -> item_or_view_item { + + let mut must_be_named_mod = false; if self.is_keyword(~"mod") { + must_be_named_mod = true; self.expect_keyword(~"mod"); - } else { + } else if self.is_keyword(~"module") { + must_be_named_mod = true; self.expect_keyword(~"module"); + } else if self.token != token::LBRACE { + self.span_fatal(copy self.span, + fmt!("expected `{` or `mod` but found %s", + token_to_str(self.reader, self.token))); } + let (sort, ident) = match self.token { - token::IDENT(*) => (ast::named, self.parse_ident()), - _ => (ast::anonymous, - token::special_idents::clownshoes_foreign_mod) + token::IDENT(*) => (ast::named, self.parse_ident()), + _ => { + if must_be_named_mod { + self.span_fatal(copy self.span, + fmt!("expected foreign module name but \ + found %s", + token_to_str(self.reader, + self.token))); + } + + (ast::anonymous, + token::special_idents::clownshoes_foreign_mod) + } }; // extern mod { ... } |
