diff options
| author | bors <bors@rust-lang.org> | 2013-08-13 07:26:23 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-08-13 07:26:23 -0700 |
| commit | 0d817ee869387322dec4d3f7d407dcc9f91c2632 (patch) | |
| tree | 958140150cb50faae2b56a21bf4759261ec306d2 /src/libsyntax/parse | |
| parent | f02cc6bf0a276115a31354b1c1530e6fe9eb4d58 (diff) | |
| parent | 930885d5e5f817e3d7609f93d5ba89b1abebfaf4 (diff) | |
| download | rust-0d817ee869387322dec4d3f7d407dcc9f91c2632.tar.gz rust-0d817ee869387322dec4d3f7d407dcc9f91c2632.zip | |
auto merge of #8423 : alexcrichton/rust/less-priv-again, r=bstrie
Closes #5495
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/obsolete.rs | 21 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 23 |
2 files changed, 18 insertions, 26 deletions
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs index dda5e990221..01c1af7464d 100644 --- a/src/libsyntax/parse/obsolete.rs +++ b/src/libsyntax/parse/obsolete.rs @@ -65,6 +65,7 @@ pub enum ObsoleteSyntax { ObsoleteExternVisibility, ObsoleteUnsafeExternFn, ObsoletePrivVisibility, + ObsoleteTraitFuncVisibility, } impl to_bytes::IterBytes for ObsoleteSyntax { @@ -95,7 +96,7 @@ pub trait ParserObsoleteMethods { impl ParserObsoleteMethods for Parser { /// Reports an obsolete syntax non-fatal error. - pub fn obsolete(&self, sp: span, kind: ObsoleteSyntax) { + fn obsolete(&self, sp: span, kind: ObsoleteSyntax) { let (kind_str, desc) = match kind { ObsoleteLet => ( "`let` in field declaration", @@ -258,6 +259,10 @@ impl ParserObsoleteMethods for Parser { "`priv` not necessary", "an item without a visibility qualifier is private by default" ), + ObsoleteTraitFuncVisibility => ( + "visibility not necessary", + "trait functions inherit the visibility of the trait itself" + ), }; self.report(sp, kind, kind_str, desc); @@ -265,7 +270,7 @@ impl ParserObsoleteMethods for Parser { // Reports an obsolete syntax non-fatal error, and returns // a placeholder expression - pub fn obsolete_expr(&self, sp: span, kind: ObsoleteSyntax) -> @expr { + fn obsolete_expr(&self, sp: span, kind: ObsoleteSyntax) -> @expr { self.obsolete(sp, kind); self.mk_expr(sp.lo, sp.hi, expr_lit(@respan(sp, lit_nil))) } @@ -283,7 +288,7 @@ impl ParserObsoleteMethods for Parser { } } - pub fn token_is_obsolete_ident(&self, ident: &str, token: &Token) + fn token_is_obsolete_ident(&self, ident: &str, token: &Token) -> bool { match *token { token::IDENT(sid, _) => { @@ -293,11 +298,11 @@ impl ParserObsoleteMethods for Parser { } } - pub fn is_obsolete_ident(&self, ident: &str) -> bool { + fn is_obsolete_ident(&self, ident: &str) -> bool { self.token_is_obsolete_ident(ident, self.token) } - pub fn eat_obsolete_ident(&self, ident: &str) -> bool { + fn eat_obsolete_ident(&self, ident: &str) -> bool { if self.is_obsolete_ident(ident) { self.bump(); true @@ -306,7 +311,7 @@ impl ParserObsoleteMethods for Parser { } } - pub fn try_parse_obsolete_struct_ctor(&self) -> bool { + fn try_parse_obsolete_struct_ctor(&self) -> bool { if self.eat_obsolete_ident("new") { self.obsolete(*self.last_span, ObsoleteStructCtor); self.parse_fn_decl(); @@ -317,7 +322,7 @@ impl ParserObsoleteMethods for Parser { } } - pub fn try_parse_obsolete_with(&self) -> bool { + fn try_parse_obsolete_with(&self) -> bool { if *self.token == token::COMMA && self.look_ahead(1, |t| self.token_is_obsolete_ident("with", t)) { @@ -332,7 +337,7 @@ impl ParserObsoleteMethods for Parser { } } - pub fn try_parse_obsolete_priv_section(&self, attrs: &[Attribute]) + fn try_parse_obsolete_priv_section(&self, attrs: &[Attribute]) -> bool { if self.is_keyword(keywords::Priv) && self.look_ahead(1, |t| *t == token::LBRACE) { diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 7e18c440d81..b38de31c56a 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -70,24 +70,7 @@ use parse::common::{SeqSep, seq_sep_none}; use parse::common::{seq_sep_trailing_disallowed, seq_sep_trailing_allowed}; use parse::lexer::reader; use parse::lexer::TokenAndSpan; -use parse::obsolete::{ObsoleteClassTraits}; -use parse::obsolete::{ObsoleteLet, ObsoleteFieldTerminator}; -use parse::obsolete::{ObsoleteMoveInit, ObsoleteBinaryMove, ObsoleteSwap}; -use parse::obsolete::ObsoleteSyntax; -use parse::obsolete::{ObsoleteUnsafeBlock, ObsoleteImplSyntax}; -use parse::obsolete::{ObsoleteMutOwnedPointer}; -use parse::obsolete::{ObsoleteMutVector, ObsoleteImplVisibility}; -use parse::obsolete::{ObsoleteRecordType, ObsoleteRecordPattern}; -use parse::obsolete::{ObsoletePostFnTySigil}; -use parse::obsolete::{ObsoleteBareFnType, ObsoleteNewtypeEnum}; -use parse::obsolete::ObsoleteMode; -use parse::obsolete::{ObsoleteLifetimeNotation, ObsoleteConstManagedPointer}; -use parse::obsolete::{ObsoletePurity, ObsoleteStaticMethod}; -use parse::obsolete::{ObsoleteConstItem, ObsoleteFixedLengthVectorType}; -use parse::obsolete::{ObsoleteNamedExternModule, ObsoleteMultipleLocalDecl}; -use parse::obsolete::{ObsoleteMutWithMultipleBindings}; -use parse::obsolete::{ObsoleteExternVisibility, ObsoleteUnsafeExternFn}; -use parse::obsolete::{ParserObsoleteMethods, ObsoletePrivVisibility}; +use parse::obsolete::*; 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}; @@ -932,6 +915,10 @@ impl Parser { debug!("parse_trait_methods(): parsing required method"); // NB: at the moment, visibility annotations on required // methods are ignored; this could change. + if vis != ast::inherited { + self.obsolete(*self.last_span, + ObsoleteTraitFuncVisibility); + } required(TypeMethod { ident: ident, attrs: attrs, |
