Skip to content

Commit

Permalink
* Parsing sequence changed
Browse files Browse the repository at this point in the history
1- visibility parse
2- purity parse
  • Loading branch information
vertexclique committed Oct 23, 2012
1 parent 42c05fe commit 2985b8e
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions src/libsyntax/parse/parser.rs
Expand Up @@ -333,10 +333,11 @@ impl Parser {
let is_static = p.parse_staticness();
let static_sty = spanned(lo, p.span.hi, sty_static);

let vis = p.parse_visibility();
let pur = p.parse_fn_purity();
// NB: at the moment, trait methods are public by default; this
// could change.
let vis = p.parse_visibility();

let ident = p.parse_method_name();

let tps = p.parse_ty_params();
Expand Down Expand Up @@ -2528,13 +2529,14 @@ impl Parser {
self.parse_value_ident()
}

fn parse_method(pr: visibility) -> @method {
fn parse_method() -> @method {
let attrs = self.parse_outer_attributes();
let lo = self.span.lo;

let is_static = self.parse_staticness();
let static_sty = spanned(lo, self.span.hi, sty_static);


let visa = self.parse_visibility();
let pur = self.parse_fn_purity();
let ident = self.parse_method_name();
let tps = self.parse_ty_params();
Expand All @@ -2549,7 +2551,7 @@ impl Parser {
@{ident: ident, attrs: attrs,
tps: tps, self_ty: self_ty, purity: pur, decl: decl,
body: body, id: self.get_id(), span: mk_sp(lo, body.span.hi),
self_id: self.get_id(), vis: pr}
self_id: self.get_id(), vis: visa}
}

fn parse_item_trait() -> item_info {
Expand Down Expand Up @@ -2606,8 +2608,7 @@ impl Parser {
let mut meths = ~[];
self.expect(token::LBRACE);
while !self.eat(token::RBRACE) {
let vis = self.parse_visibility();
meths.push(self.parse_method(vis));
meths.push(self.parse_method());
}
(ident, item_impl(tps, opt_trait, ty, meths), None)
}
Expand Down Expand Up @@ -2763,7 +2764,7 @@ impl Parser {
return a_var;
} else {
self.obsolete(copy self.span, ObsoleteClassMethod);
return @method_member(self.parse_method(vis));
return @method_member(self.parse_method());
}
}

Expand Down Expand Up @@ -2869,9 +2870,9 @@ impl Parser {
(id, item_mod(m), Some(inner_attrs.inner))
}

fn parse_item_foreign_fn(vis: ast::visibility,
+attrs: ~[attribute]) -> @foreign_item {
fn parse_item_foreign_fn( +attrs: ~[attribute]) -> @foreign_item {
let lo = self.span.lo;
let vis = self.parse_visibility();
let purity = self.parse_fn_purity();
let t = self.parse_fn_header();
let (decl, _) = self.parse_fn_decl(|p| p.parse_arg());
Expand Down Expand Up @@ -2919,7 +2920,7 @@ impl Parser {
if self.is_keyword(~"const") {
self.parse_item_foreign_const(vis, move attrs)
} else {
self.parse_item_foreign_fn(vis, move attrs)
self.parse_item_foreign_fn( move attrs)
}
}

Expand Down Expand Up @@ -3239,7 +3240,7 @@ impl Parser {
maybe_append(attrs, extra_attrs)));
} else if foreign_items_allowed &&
(self.is_keyword(~"fn") || self.is_keyword(~"pure")) {
let item = self.parse_item_foreign_fn(visibility, attrs);
let item = self.parse_item_foreign_fn(attrs);
return iovi_foreign_item(item);
} else if items_allowed && self.is_keyword(~"unsafe")
&& self.look_ahead(1u) != token::LBRACE {
Expand Down

0 comments on commit 2985b8e

Please sign in to comment.