diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-07-18 19:08:57 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-07-20 17:39:38 -0700 |
| commit | 06594ed96bae46cca494dc456ddffcd403efbd8e (patch) | |
| tree | eed1f082bdb199c70c146d3b59b83363df15ce98 /src/libsyntax | |
| parent | bb8ca1f52cfa59e0040c2c749a1c46048fc6d48d (diff) | |
| download | rust-06594ed96bae46cca494dc456ddffcd403efbd8e.tar.gz rust-06594ed96bae46cca494dc456ddffcd403efbd8e.zip | |
librustc: Remove `pub extern` and `priv extern` from the language.
Place `pub` or `priv` on individual items instead.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/parse/obsolete.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 17 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 2 |
3 files changed, 19 insertions, 6 deletions
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs index b014c5668b6..d844344d9f2 100644 --- a/src/libsyntax/parse/obsolete.rs +++ b/src/libsyntax/parse/obsolete.rs @@ -63,6 +63,7 @@ pub enum ObsoleteSyntax { ObsoleteNamedExternModule, ObsoleteMultipleLocalDecl, ObsoleteMutWithMultipleBindings, + ObsoleteExternVisibility, } impl to_bytes::IterBytes for ObsoleteSyntax { @@ -248,6 +249,11 @@ impl ParserObsoleteMethods for Parser { "use multiple local declarations instead of e.g. `let mut \ (x, y) = ...`." ), + ObsoleteExternVisibility => ( + "`pub extern` or `priv extern`", + "place the `pub` or `priv` on the individual external items \ + instead" + ) }; self.report(sp, kind, kind_str, desc); diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index fb5d3b5262c..7f309a01877 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -84,7 +84,7 @@ use parse::obsolete::{ObsoletePurity, ObsoleteStaticMethod}; use parse::obsolete::{ObsoleteConstItem, ObsoleteFixedLengthVectorType}; use parse::obsolete::{ObsoleteNamedExternModule, ObsoleteMultipleLocalDecl}; use parse::obsolete::{ObsoleteMutWithMultipleBindings}; -use parse::obsolete::{ParserObsoleteMethods}; +use parse::obsolete::{ObsoleteExternVisibility, ParserObsoleteMethods}; use parse::token::{can_begin_expr, get_ident_interner, ident_to_str, is_ident}; use parse::token::{is_ident_or_path}; use parse::token::{is_plain_ident, INTERPOLATED, keywords, special_idents}; @@ -4191,16 +4191,23 @@ impl Parser { self.obsolete(*self.last_span, ObsoleteNamedExternModule); } + // Do not allow visibility to be specified. + if visibility != ast::inherited { + self.obsolete(*self.span, ObsoleteExternVisibility); + } + let abis = opt_abis.get_or_default(AbiSet::C()); let (inner, next) = self.parse_inner_attrs_and_next(); let m = self.parse_foreign_mod_items(sort, abis, next); self.expect(&token::RBRACE); - return iovi_item(self.mk_item(lo, self.last_span.hi, ident, - item_foreign_mod(m), visibility, - maybe_append(attrs, - Some(inner)))); + return iovi_item(self.mk_item(lo, + self.last_span.hi, + ident, + item_foreign_mod(m), + public, + maybe_append(attrs, Some(inner)))); } if opt_abis.is_some() { diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index f1412994865..f88b7b9a1f8 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -524,7 +524,7 @@ pub fn print_item(s: @ps, item: &ast::item) { bclose(s, item.span); } ast::item_foreign_mod(ref nmod) => { - head(s, visibility_qualified(item.vis, "extern")); + head(s, "extern"); word_nbsp(s, nmod.abis.to_str()); match nmod.sort { ast::named => { |
