Remove priv sections from classes. Obsolete the syntax
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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") {
|
||||
|
||||
Reference in New Issue
Block a user