Remove priv sections from classes. Obsolete the syntax

This commit is contained in:
Brian Anderson
2012-09-10 18:56:07 -07:00
parent 3aa5b0cb44
commit 1203da3b9d
29 changed files with 64 additions and 102 deletions

View File

@@ -20,7 +20,8 @@ pub enum ObsoleteSyntax {
ObsoleteStructCtor,
ObsoleteWith,
ObsoleteClassMethod,
ObsoleteClassTraits
ObsoleteClassTraits,
ObsoletePrivSection
}
impl ObsoleteSyntax : cmp::Eq {
@@ -82,6 +83,11 @@ impl parser : ObsoleteReporter {
"implemented traits are specified on the impl, as in \
`impl foo : bar {`"
),
ObsoletePrivSection => (
"private section",
"the `priv` keyword is applied to individual items, methods, \
and fields"
),
};
self.report(sp, kind, kind_str, desc);
@@ -152,5 +158,19 @@ impl parser : ObsoleteReporter {
}
}
fn try_parse_obsolete_priv_section() -> bool {
if self.is_keyword(~"priv") && self.look_ahead(1) == token::LBRACE {
self.obsolete(copy self.span, ObsoletePrivSection);
self.eat_keyword(~"priv");
self.bump();
while self.token != token::RBRACE {
self.parse_single_class_item(ast::private);
}
self.bump();
true
} else {
false
}
}
}

View File

@@ -2818,22 +2818,13 @@ impl parser {
}
fn parse_class_item() -> class_contents {
if self.try_parse_obsolete_priv_section() {
return members(~[]);
}
if self.eat_keyword(~"priv") {
// XXX: Remove after snapshot.
match self.token {
token::LBRACE => {
self.bump();
let mut results = ~[];
while self.token != token::RBRACE {
vec::push(results,
self.parse_single_class_item(private));
}
self.bump();
return members(results);
}
_ =>
return members(~[self.parse_single_class_item(private)])
}
return members(~[self.parse_single_class_item(private)])
}
if self.eat_keyword(~"pub") {