diff options
| author | bors <bors@rust-lang.org> | 2014-01-02 11:32:09 -0800 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-01-02 11:32:09 -0800 |
| commit | 0df9b850ac1ed3abd0ff5abfbb716af83501dd5a (patch) | |
| tree | 380744a8c4feb43d1704d408ab410c85b7eac9c3 /src/libsyntax/parse/parser.rs | |
| parent | c29b1be5edcb56f221b0a54653f62147069b41a4 (diff) | |
| parent | 4cb13ed9823d30ac3163e7e6b3e74becd09a508d (diff) | |
| download | rust-0df9b850ac1ed3abd0ff5abfbb716af83501dd5a.tar.gz rust-0df9b850ac1ed3abd0ff5abfbb716af83501dd5a.zip | |
auto merge of #10696 : fhahn/rust/issue9543-remove-extern-mod-foo, r=pcwalton
This patch for #9543 throws an `obsolete syntax` error for `extern mod foo (name="bar")` . I was wondering if [this](https://github.com/fhahn/rust/compare/mozilla:master...fhahn:issue9543-remove-extern-mod-foo?expand=1#diff-da9d34ca1d0f6beee2838cf02e07345cR4444) is the correct place to do this? I think the wording of the error message could probably be improved as well. If this approach is OK, I'm going to run the whole test suite tomorrow and update the old syntax to the new one.
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 729d0320435..5e2b022d175 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -4446,11 +4446,18 @@ impl Parser { self.span_err(*self.span, "an ABI may not be specified here"); } + + if *self.token == token::LPAREN { + // `extern mod foo (name = "bar"[,vers = "version"]) is obsolete, + // `extern mod foo = "bar#[version]";` should be used. + // Parse obsolete options to avoid wired parser errors + self.parse_optional_meta(); + self.obsolete(*self.span, ObsoleteExternModAttributesInParens); + } // extern mod foo; - let metadata = self.parse_optional_meta(); self.expect(&token::SEMI); iovi_view_item(ast::view_item { - node: view_item_extern_mod(ident, maybe_path, metadata, ast::DUMMY_NODE_ID), + node: view_item_extern_mod(ident, maybe_path, ast::DUMMY_NODE_ID), attrs: attrs, vis: visibility, span: mk_sp(lo, self.last_span.hi) |
