diff --git a/src/librustsyntax/parse/parser.rs b/src/librustsyntax/parse/parser.rs index 48d84ee9ffd..1bfc6b2c6c2 100644 --- a/src/librustsyntax/parse/parser.rs +++ b/src/librustsyntax/parse/parser.rs @@ -5,7 +5,7 @@ import token::{can_begin_expr, is_ident, is_plain_ident}; import codemap::{span,fss_none}; import util::interner; import ast_util::{spanned, mk_sp, ident_to_path, operator_prec}; -import ast::{node_id}; +import ast::*; import lexer::reader; import prec::{as_prec, token_to_binop}; import attr::{parse_outer_attrs_or_ext, @@ -49,7 +49,7 @@ enum file_type { CRATE_FILE, SOURCE_FILE, } type parser = @{ sess: parse_sess, - cfg: ast::crate_cfg, + cfg: crate_cfg, file_type: file_type, mut token: token::token, mut span: span, @@ -104,8 +104,8 @@ impl parser for parser { fn get_id() -> node_id { next_node_id(self.sess) } } -fn parse_ty_fn(p: parser) -> ast::fn_decl { - fn parse_fn_input_ty(p: parser) -> ast::arg { +fn parse_ty_fn(p: parser) -> fn_decl { + fn parse_fn_input_ty(p: parser) -> arg { let mode = parse_arg_mode(p); let name = if is_plain_ident(p.token) && p.look_ahead(1u) == token::COLON { @@ -123,14 +123,14 @@ fn parse_ty_fn(p: parser) -> ast::fn_decl { // can't have constrained types. // Not sure whether that would be desirable anyway. See #34 for the // story on constrained types. - let constrs: [@ast::constr] = []; + let constrs: [@constr] = []; let (ret_style, ret_ty) = parse_ret_ty(p); ret {inputs: inputs.node, output: ret_ty, - purity: ast::impure_fn, cf: ret_style, + purity: impure_fn, cf: ret_style, constraints: constrs}; } -fn parse_ty_methods(p: parser) -> [ast::ty_method] { +fn parse_ty_methods(p: parser) -> [ty_method] { parse_seq(token::LBRACE, token::RBRACE, seq_sep_none(), {|p| let attrs = parse_outer_attributes(p); let flo = p.span.lo; @@ -144,13 +144,13 @@ fn parse_ty_methods(p: parser) -> [ast::ty_method] { }, p).node } -fn parse_mt(p: parser) -> ast::mt { +fn parse_mt(p: parser) -> mt { let mutbl = parse_mutability(p); let t = parse_ty(p, false); ret {ty: t, mutbl: mutbl}; } -fn parse_ty_field(p: parser) -> ast::ty_field { +fn parse_ty_field(p: parser) -> ty_field { let lo = p.span.lo; let mutbl = parse_mutability(p); let id = parse_ident(p); @@ -161,64 +161,64 @@ fn parse_ty_field(p: parser) -> ast::ty_field { // if i is the jth ident in args, return j // otherwise, fail -fn ident_index(p: parser, args: [ast::arg], i: ast::ident) -> uint { +fn ident_index(p: parser, args: [arg], i: ident) -> uint { let mut j = 0u; for args.each {|a| if a.ident == i { ret j; } j += 1u; } p.fatal("unbound variable `" + i + "` in constraint arg"); } -fn parse_type_constr_arg(p: parser) -> @ast::ty_constr_arg { +fn parse_type_constr_arg(p: parser) -> @ty_constr_arg { let sp = p.span; - let mut carg = ast::carg_base; + let mut carg = carg_base; expect(p, token::BINOP(token::STAR)); if p.token == token::DOT { // "*..." notation for record fields p.bump(); let pth = parse_path_without_tps(p); - carg = ast::carg_ident(pth); + carg = carg_ident(pth); } // No literals yet, I guess? ret @{node: carg, span: sp}; } -fn parse_constr_arg(args: [ast::arg], p: parser) -> @ast::constr_arg { +fn parse_constr_arg(args: [arg], p: parser) -> @constr_arg { let sp = p.span; - let mut carg = ast::carg_base; + let mut carg = carg_base; if p.token == token::BINOP(token::STAR) { p.bump(); } else { - let i: ast::ident = parse_value_ident(p); - carg = ast::carg_ident(ident_index(p, args, i)); + let i: ident = parse_value_ident(p); + carg = carg_ident(ident_index(p, args, i)); } ret @{node: carg, span: sp}; } -fn parse_ty_constr(fn_args: [ast::arg], p: parser) -> @ast::constr { +fn parse_ty_constr(fn_args: [arg], p: parser) -> @constr { let lo = p.span.lo; let path = parse_path_without_tps(p); - let args: {node: [@ast::constr_arg], span: span} = + let args: {node: [@constr_arg], span: span} = parse_seq(token::LPAREN, token::RPAREN, seq_sep(token::COMMA), {|p| parse_constr_arg(fn_args, p)}, p); ret @spanned(lo, args.span.hi, {path: path, args: args.node, id: p.get_id()}); } -fn parse_constr_in_type(p: parser) -> @ast::ty_constr { +fn parse_constr_in_type(p: parser) -> @ty_constr { let lo = p.span.lo; let path = parse_path_without_tps(p); - let args: [@ast::ty_constr_arg] = + let args: [@ty_constr_arg] = parse_seq(token::LPAREN, token::RPAREN, seq_sep(token::COMMA), parse_type_constr_arg, p).node; let hi = p.span.lo; - let tc: ast::ty_constr_ = {path: path, args: args, id: p.get_id()}; + let tc: ty_constr_ = {path: path, args: args, id: p.get_id()}; ret @spanned(lo, hi, tc); } -fn parse_constrs(pser: fn(parser) -> @ast::constr_general, +fn parse_constrs(pser: fn(parser) -> @constr_general, p: parser) -> - [@ast::constr_general] { - let mut constrs: [@ast::constr_general] = []; + [@constr_general] { + let mut constrs: [@constr_general] = []; loop { let constr = pser(p); constrs += [constr]; @@ -226,39 +226,39 @@ fn parse_constrs(pser: fn(parser) -> @ast::constr_general, }; } -fn parse_type_constraints(p: parser) -> [@ast::ty_constr] { +fn parse_type_constraints(p: parser) -> [@ty_constr] { ret parse_constrs(parse_constr_in_type, p); } -fn parse_ret_ty(p: parser) -> (ast::ret_style, @ast::ty) { +fn parse_ret_ty(p: parser) -> (ret_style, @ty) { ret if eat(p, token::RARROW) { let lo = p.span.lo; if eat(p, token::NOT) { - (ast::noreturn, @{id: p.get_id(), - node: ast::ty_bot, + (noreturn, @{id: p.get_id(), + node: ty_bot, span: mk_sp(lo, p.last_span.hi)}) } else { - (ast::return_val, parse_ty(p, false)) + (return_val, parse_ty(p, false)) } } else { let pos = p.span.lo; - (ast::return_val, @{id: p.get_id(), - node: ast::ty_nil, + (return_val, @{id: p.get_id(), + node: ty_nil, span: mk_sp(pos, pos)}) } } -fn region_from_name(p: parser, s: option) -> @ast::region { +fn region_from_name(p: parser, s: option) -> @region { let r = alt s { - some (string) { ast::re_named(string) } - none { ast::re_anon } + some (string) { re_named(string) } + none { re_anon } }; @{id: p.get_id(), node: r} } // Parses something like "&x" -fn parse_region(p: parser) -> @ast::region { +fn parse_region(p: parser) -> @region { expect(p, token::BINOP(token::AND)); alt p.token { token::IDENT(sid, _) { @@ -273,7 +273,7 @@ fn parse_region(p: parser) -> @ast::region { } // Parses something like "&x." (note the trailing dot) -fn parse_region_dot(p: parser) -> @ast::region { +fn parse_region_dot(p: parser) -> @region { let name = alt p.token { token::IDENT(sid, _) if p.look_ahead(1u) == token::DOT { @@ -285,13 +285,13 @@ fn parse_region_dot(p: parser) -> @ast::region { region_from_name(p, name) } -fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty { +fn parse_ty(p: parser, colons_before_params: bool) -> @ty { let lo = p.span.lo; alt maybe_parse_dollar_mac(p) { some(e) { ret @{id: p.get_id(), - node: ast::ty_mac(spanned(lo, p.span.hi, e)), + node: ty_mac(spanned(lo, p.span.hi, e)), span: mk_sp(lo, p.span.hi)}; } none {} @@ -301,7 +301,7 @@ fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty { p.bump(); if p.token == token::RPAREN { p.bump(); - ast::ty_nil + ty_nil } else { let mut ts = [parse_ty(p, false)]; while p.token == token::COMMA { @@ -309,19 +309,19 @@ fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty { ts += [parse_ty(p, false)]; } let t = if vec::len(ts) == 1u { ts[0].node } - else { ast::ty_tup(ts) }; + else { ty_tup(ts) }; expect(p, token::RPAREN); t } } else if p.token == token::AT { p.bump(); - ast::ty_box(parse_mt(p)) + ty_box(parse_mt(p)) } else if p.token == token::TILDE { p.bump(); - ast::ty_uniq(parse_mt(p)) + ty_uniq(parse_mt(p)) } else if p.token == token::BINOP(token::STAR) { p.bump(); - ast::ty_ptr(parse_mt(p)) + ty_ptr(parse_mt(p)) } else if p.token == token::LBRACE { let elems = parse_seq(token::LBRACE, token::RBRACE, seq_sep_opt(token::COMMA), @@ -329,40 +329,40 @@ fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty { if vec::len(elems.node) == 0u { unexpected_last(p, token::RBRACE); } let hi = elems.span.hi; - let t = ast::ty_rec(elems.node); + let t = ty_rec(elems.node); if p.token == token::COLON { p.bump(); - ast::ty_constr(@{id: p.get_id(), + ty_constr(@{id: p.get_id(), node: t, span: mk_sp(lo, hi)}, parse_type_constraints(p)) } else { t } } else if p.token == token::LBRACKET { expect(p, token::LBRACKET); - let t = ast::ty_vec(parse_mt(p)); + let t = ty_vec(parse_mt(p)); expect(p, token::RBRACKET); t } else if p.token == token::BINOP(token::AND) { p.bump(); let region = parse_region_dot(p); let mt = parse_mt(p); - ast::ty_rptr(region, mt) + ty_rptr(region, mt) } else if eat_keyword(p, "fn") { let proto = parse_fn_ty_proto(p); alt proto { - ast::proto_bare { p.warn("fn is deprecated, use native fn"); } + proto_bare { p.warn("fn is deprecated, use native fn"); } _ { /* fallthrough */ } } - ast::ty_fn(proto, parse_ty_fn(p)) + ty_fn(proto, parse_ty_fn(p)) } else if eat_keyword(p, "native") { expect_keyword(p, "fn"); - ast::ty_fn(ast::proto_bare, parse_ty_fn(p)) + ty_fn(proto_bare, parse_ty_fn(p)) } else if p.token == token::MOD_SEP || is_ident(p.token) { let path = parse_path_with_tps(p, colons_before_params); - ast::ty_path(path, p.get_id()) + ty_path(path, p.get_id()) } else { p.fatal("expecting type"); }; - fn mk_ty(p: parser, t: ast::ty_, lo: uint, hi: uint) -> @ast::ty { + fn mk_ty(p: parser, t: ty_, lo: uint, hi: uint) -> @ty { @{id: p.get_id(), node: t, span: mk_sp(lo, hi)} @@ -376,33 +376,33 @@ fn parse_ty(p: parser, colons_before_params: bool) -> @ast::ty { ret ty; } some(v) { - let t1 = ast::ty_vstore(ty, v); + let t1 = ty_vstore(ty, v); ret mk_ty(p, t1, lo, p.last_span.hi); } } } -fn parse_arg_mode(p: parser) -> ast::mode { +fn parse_arg_mode(p: parser) -> mode { if eat(p, token::BINOP(token::AND)) { - ast::expl(ast::by_mutbl_ref) + expl(by_mutbl_ref) } else if eat(p, token::BINOP(token::MINUS)) { - ast::expl(ast::by_move) + expl(by_move) } else if eat(p, token::ANDAND) { - ast::expl(ast::by_ref) + expl(by_ref) } else if eat(p, token::BINOP(token::PLUS)) { if eat(p, token::BINOP(token::PLUS)) { - ast::expl(ast::by_val) + expl(by_val) } else { - ast::expl(ast::by_copy) + expl(by_copy) } - } else { ast::infer(p.get_id()) } + } else { infer(p.get_id()) } } fn parse_capture_item_or( p: parser, parse_arg_fn: fn() -> arg_or_capture_item) -> arg_or_capture_item { - fn parse_capture_item(p: parser, is_move: bool) -> ast::capture_item { + fn parse_capture_item(p: parser, is_move: bool) -> capture_item { let id = p.get_id(); let sp = mk_sp(p.span.lo, p.span.hi); let ident = parse_ident(p); @@ -438,29 +438,29 @@ fn parse_fn_block_arg(p: parser) -> arg_or_capture_item { parse_ty(p, false) } else { @{id: p.get_id(), - node: ast::ty_infer, + node: ty_infer, span: mk_sp(p.span.lo, p.span.hi)} }; either::left({mode: m, ty: t, ident: i, id: p.get_id()}) } } -fn maybe_parse_dollar_mac(p: parser) -> option { +fn maybe_parse_dollar_mac(p: parser) -> option { alt p.token { token::DOLLAR { let lo = p.span.lo; p.bump(); alt p.token { - token::LIT_INT(num, ast::ty_i) { + token::LIT_INT(num, ty_i) { p.bump(); - some(ast::mac_var(num as uint)) + some(mac_var(num as uint)) } token::LPAREN { p.bump(); let e = parse_expr(p); expect(p, token::RPAREN); let hi = p.last_span.hi; - some(ast::mac_aq(mk_sp(lo,hi), e)) + some(mac_aq(mk_sp(lo,hi), e)) } _ { p.fatal("expected `(` or integer literal"); @@ -471,24 +471,24 @@ fn maybe_parse_dollar_mac(p: parser) -> option { } } -fn maybe_parse_vstore(p: parser) -> option { +fn maybe_parse_vstore(p: parser) -> option { if p.token == token::BINOP(token::SLASH) { p.bump(); alt p.token { token::AT { - p.bump(); some(ast::vstore_box) + p.bump(); some(vstore_box) } token::TILDE { - p.bump(); some(ast::vstore_uniq) + p.bump(); some(vstore_uniq) } token::UNDERSCORE { - p.bump(); some(ast::vstore_fixed(none)) + p.bump(); some(vstore_fixed(none)) } - token::LIT_INT(i, ast::ty_i) if i >= 0i64 { - p.bump(); some(ast::vstore_fixed(some(i as uint))) + token::LIT_INT(i, ty_i) if i >= 0i64 { + p.bump(); some(vstore_fixed(some(i as uint))) } token::BINOP(token::AND) { - some(ast::vstore_slice(parse_region(p))) + some(vstore_slice(parse_region(p))) } _ { none @@ -499,23 +499,23 @@ fn maybe_parse_vstore(p: parser) -> option { } } -fn lit_from_token(p: parser, tok: token::token) -> ast::lit_ { +fn lit_from_token(p: parser, tok: token::token) -> lit_ { alt tok { - token::LIT_INT(i, it) { ast::lit_int(i, it) } - token::LIT_UINT(u, ut) { ast::lit_uint(u, ut) } - token::LIT_FLOAT(s, ft) { ast::lit_float(p.get_str(s), ft) } - token::LIT_STR(s) { ast::lit_str(p.get_str(s)) } - token::LPAREN { expect(p, token::RPAREN); ast::lit_nil } + token::LIT_INT(i, it) { lit_int(i, it) } + token::LIT_UINT(u, ut) { lit_uint(u, ut) } + token::LIT_FLOAT(s, ft) { lit_float(p.get_str(s), ft) } + token::LIT_STR(s) { lit_str(p.get_str(s)) } + token::LPAREN { expect(p, token::RPAREN); lit_nil } _ { unexpected_last(p, tok); } } } -fn parse_lit(p: parser) -> ast::lit { +fn parse_lit(p: parser) -> lit { let lo = p.span.lo; let lit = if eat_keyword(p, "true") { - ast::lit_bool(true) + lit_bool(true) } else if eat_keyword(p, "false") { - ast::lit_bool(false) + lit_bool(false) } else { let tok = p.token; p.bump(); @@ -524,13 +524,13 @@ fn parse_lit(p: parser) -> ast::lit { ret {node: lit, span: mk_sp(lo, p.last_span.hi)}; } -fn parse_path_without_tps(p: parser) -> @ast::path { +fn parse_path_without_tps(p: parser) -> @path { parse_path_without_tps_(p, parse_ident, parse_ident) } fn parse_path_without_tps_( - p: parser, parse_ident: fn(parser) -> ast::ident, - parse_last_ident: fn(parser) -> ast::ident) -> @ast::path { + p: parser, parse_ident: fn(parser) -> ident, + parse_last_ident: fn(parser) -> ident) -> @path { let lo = p.span.lo; let global = eat(p, token::MOD_SEP); @@ -552,11 +552,11 @@ fn parse_path_without_tps_( idents: ids, rp: none, types: []} } -fn parse_value_path(p: parser) -> @ast::path { +fn parse_value_path(p: parser) -> @path { parse_path_without_tps_(p, parse_ident, parse_value_ident) } -fn parse_path_with_tps(p: parser, colons: bool) -> @ast::path { +fn parse_path_with_tps(p: parser, colons: bool) -> @path { #debug["parse_path_with_tps(colons=%b)", colons]; let lo = p.span.lo; @@ -597,19 +597,19 @@ fn parse_path_with_tps(p: parser, colons: bool) -> @ast::path { types: tps.node with *path}; } -fn parse_mutability(p: parser) -> ast::mutability { +fn parse_mutability(p: parser) -> mutability { if eat_keyword(p, "mut") { - ast::m_mutbl + m_mutbl } else if eat_keyword(p, "mut") { - ast::m_mutbl + m_mutbl } else if eat_keyword(p, "const") { - ast::m_const + m_const } else { - ast::m_imm + m_imm } } -fn parse_field(p: parser, sep: token::token) -> ast::field { +fn parse_field(p: parser, sep: token::token) -> field { let lo = p.span.lo; let m = parse_mutability(p); let i = parse_ident(p); @@ -618,42 +618,42 @@ fn parse_field(p: parser, sep: token::token) -> ast::field { ret spanned(lo, e.span.hi, {mutbl: m, ident: i, expr: e}); } -fn mk_expr(p: parser, lo: uint, hi: uint, +node: ast::expr_) -> @ast::expr { +fn mk_expr(p: parser, lo: uint, hi: uint, +node: expr_) -> @expr { ret @{id: p.get_id(), node: node, span: mk_sp(lo, hi)}; } -fn mk_mac_expr(p: parser, lo: uint, hi: uint, m: ast::mac_) -> @ast::expr { +fn mk_mac_expr(p: parser, lo: uint, hi: uint, m: mac_) -> @expr { ret @{id: p.get_id(), - node: ast::expr_mac({node: m, span: mk_sp(lo, hi)}), + node: expr_mac({node: m, span: mk_sp(lo, hi)}), span: mk_sp(lo, hi)}; } -fn mk_lit_u32(p: parser, i: u32) -> @ast::expr { +fn mk_lit_u32(p: parser, i: u32) -> @expr { let span = p.span; - let lv_lit = @{node: ast::lit_uint(i as u64, ast::ty_u32), + let lv_lit = @{node: lit_uint(i as u64, ty_u32), span: span}; - ret @{id: p.get_id(), node: ast::expr_lit(lv_lit), span: span}; + ret @{id: p.get_id(), node: expr_lit(lv_lit), span: span}; } // We don't allow single-entry tuples in the true AST; that indicates a // parenthesized expression. However, we preserve them temporarily while // parsing because `(while{...})+3` parses differently from `while{...}+3`. // -// To reflect the fact that the @ast::expr is not a true expr that should be +// To reflect the fact that the @expr is not a true expr that should be // part of the AST, we wrap such expressions in the pexpr enum. They // can then be converted to true expressions by a call to `to_expr()`. enum pexpr { - pexpr(@ast::expr), + pexpr(@expr), } -fn mk_pexpr(p: parser, lo: uint, hi: uint, node: ast::expr_) -> pexpr { +fn mk_pexpr(p: parser, lo: uint, hi: uint, node: expr_) -> pexpr { ret pexpr(mk_expr(p, lo, hi, node)); } -fn to_expr(e: pexpr) -> @ast::expr { +fn to_expr(e: pexpr) -> @expr { alt e.node { - ast::expr_tup(es) if vec::len(es) == 1u { es[0u] } + expr_tup(es) if vec::len(es) == 1u { es[0u] } _ { *e } } } @@ -662,7 +662,7 @@ fn parse_bottom_expr(p: parser) -> pexpr { let lo = p.span.lo; let mut hi = p.span.hi; - let mut ex: ast::expr_; + let mut ex: expr_; alt maybe_parse_dollar_mac(p) { some(x) {ret pexpr(mk_mac_expr(p, lo, p.span.hi, x));} @@ -674,8 +674,8 @@ fn parse_bottom_expr(p: parser) -> pexpr { if p.token == token::RPAREN { hi = p.span.hi; p.bump(); - let lit = @spanned(lo, hi, ast::lit_nil); - ret mk_pexpr(p, lo, hi, ast::expr_lit(lit)); + let lit = @spanned(lo, hi, lit_nil); + ret mk_pexpr(p, lo, hi, expr_lit(lit)); } let mut es = [parse_expr(p)]; while p.token == token::COMMA { p.bump(); es += [parse_expr(p)]; } @@ -687,7 +687,7 @@ fn parse_bottom_expr(p: parser) -> pexpr { // This is so that wrappers around parse_bottom_expr() // can tell whether the expression was parenthesized or not, // which affects expr_is_complete(). - ret mk_pexpr(p, lo, hi, ast::expr_tup(es)); + ret mk_pexpr(p, lo, hi, expr_tup(es)); } else if p.token == token::LBRACE { p.bump(); if is_keyword(p, "mut") || @@ -707,12 +707,12 @@ fn parse_bottom_expr(p: parser) -> pexpr { } hi = p.span.hi; expect(p, token::RBRACE); - ex = ast::expr_rec(fields, base); + ex = expr_rec(fields, base); } else if token::is_bar(p.token) { ret pexpr(parse_fn_block_expr(p)); } else { - let blk = parse_block_tail(p, lo, ast::default_blk); - ret mk_pexpr(p, blk.span.lo, blk.span.hi, ast::expr_block(blk)); + let blk = parse_block_tail(p, lo, default_blk); + ret mk_pexpr(p, blk.span.lo, blk.span.hi, expr_block(blk)); } } else if eat_keyword(p, "new") { expect(p, token::LPAREN); @@ -720,7 +720,7 @@ fn parse_bottom_expr(p: parser) -> pexpr { expect(p, token::RPAREN); let v = parse_expr(p); ret mk_pexpr(p, lo, p.span.hi, - ast::expr_new(r, p.get_id(), v)); + expr_new(r, p.get_id(), v)); } else if eat_keyword(p, "if") { ret pexpr(parse_if_expr(p)); } else if eat_keyword(p, "for") { @@ -736,15 +736,15 @@ fn parse_bottom_expr(p: parser) -> pexpr { } else if eat_keyword(p, "fn") { let proto = parse_fn_ty_proto(p); alt proto { - ast::proto_bare { p.fatal("fn expr are deprecated, use fn@"); } - ast::proto_any { p.fatal("fn* cannot be used in an expression"); } + proto_bare { p.fatal("fn expr are deprecated, use fn@"); } + proto_any { p.fatal("fn* cannot be used in an expression"); } _ { /* fallthrough */ } } ret pexpr(parse_fn_expr(p, proto)); } else if eat_keyword(p, "unchecked") { - ret pexpr(parse_block_expr(p, lo, ast::unchecked_blk)); + ret pexpr(parse_block_expr(p, lo, unchecked_blk)); } else if eat_keyword(p, "unsafe") { - ret pexpr(parse_block_expr(p, lo, ast::unsafe_blk)); + ret pexpr(parse_block_expr(p, lo, unsafe_blk)); } else if p.token == token::LBRACKET { p.bump(); let mutbl = parse_mutability(p); @@ -752,7 +752,7 @@ fn parse_bottom_expr(p: parser) -> pexpr { parse_seq_to_end(token::RBRACKET, seq_sep(token::COMMA), parse_expr, p); hi = p.span.hi; - ex = ast::expr_vec(es, mutbl); + ex = expr_vec(es, mutbl); } else if p.token == token::POUND && p.look_ahead(1u) == token::LT { p.bump(); p.bump(); @@ -761,16 +761,16 @@ fn parse_bottom_expr(p: parser) -> pexpr { /* hack: early return to take advantage of specialized function */ ret pexpr(mk_mac_expr(p, lo, p.span.hi, - ast::mac_embed_type(ty))); + mac_embed_type(ty))); } else if p.token == token::POUND && p.look_ahead(1u) == token::LBRACE { p.bump(); p.bump(); - let blk = ast::mac_embed_block( - parse_block_tail(p, lo, ast::default_blk)); + let blk = mac_embed_block( + parse_block_tail(p, lo, default_blk)); ret pexpr(mk_mac_expr(p, lo, p.span.hi, blk)); } else if p.token == token::ELLIPSIS { p.bump(); - ret pexpr(mk_mac_expr(p, lo, p.span.hi, ast::mac_ellipsis)); + ret pexpr(mk_mac_expr(p, lo, p.span.hi, mac_ellipsis)); } else if p.token == token::POUND { let ex_ext = parse_syntax_ext(p); hi = ex_ext.span.hi; @@ -781,24 +781,24 @@ fn parse_bottom_expr(p: parser) -> pexpr { parse_seq(token::LPAREN, token::RPAREN, seq_sep(token::COMMA), parse_expr_or_hole, p); hi = es.span.hi; - ex = ast::expr_bind(e, es.node); + ex = expr_bind(e, es.node); } else if eat_keyword(p, "fail") { if can_begin_expr(p.token) { let e = parse_expr(p); hi = e.span.hi; - ex = ast::expr_fail(some(e)); - } else { ex = ast::expr_fail(none); } + ex = expr_fail(some(e)); + } else { ex = expr_fail(none); } } else if eat_keyword(p, "log") { expect(p, token::LPAREN); let lvl = parse_expr(p); expect(p, token::COMMA); let e = parse_expr(p); - ex = ast::expr_log(2, lvl, e); + ex = expr_log(2, lvl, e); hi = p.span.hi; expect(p, token::RPAREN); } else if eat_keyword(p, "assert") { let e = parse_expr(p); - ex = ast::expr_assert(e); + ex = expr_assert(e); hi = e.span.hi; } else if eat_keyword(p, "check") { /* Should be a predicate (pure boolean function) applied to @@ -806,7 +806,7 @@ fn parse_bottom_expr(p: parser) -> pexpr { but the typechecker enforces that. */ let e = parse_expr(p); hi = e.span.hi; - ex = ast::expr_check(ast::checked_expr, e); + ex = expr_check(checked_expr, e); } else if eat_keyword(p, "claim") { /* Same rules as check, except that if check-claims is enabled (a command-line flag), then the parser turns @@ -814,49 +814,49 @@ fn parse_bottom_expr(p: parser) -> pexpr { let e = parse_expr(p); hi = e.span.hi; - ex = ast::expr_check(ast::claimed_expr, e); + ex = expr_check(claimed_expr, e); } else if eat_keyword(p, "ret") { if can_begin_expr(p.token) { let e = parse_expr(p); hi = e.span.hi; - ex = ast::expr_ret(some(e)); - } else { ex = ast::expr_ret(none); } + ex = expr_ret(some(e)); + } else { ex = expr_ret(none); } } else if eat_keyword(p, "break") { - ex = ast::expr_break; + ex = expr_break; hi = p.span.hi; } else if eat_keyword(p, "cont") { - ex = ast::expr_cont; + ex = expr_cont; hi = p.span.hi; } else if eat_keyword(p, "be") { let e = parse_expr(p); hi = e.span.hi; - ex = ast::expr_be(e); + ex = expr_be(e); } else if eat_keyword(p, "copy") { let e = parse_expr(p); - ex = ast::expr_copy(e); + ex = expr_copy(e); hi = e.span.hi; } else if p.token == token::MOD_SEP || is_ident(p.token) && !is_keyword(p, "true") && !is_keyword(p, "false") { let pth = parse_path_with_tps(p, true); hi = pth.span.hi; - ex = ast::expr_path(pth); + ex = expr_path(pth); } else { let lit = parse_lit(p); hi = lit.span.hi; - ex = ast::expr_lit(@lit); + ex = expr_lit(@lit); } // Vstore is legal following expr_lit(lit_str(...)) and expr_vec(...) // only. alt ex { - ast::expr_lit(@{node: ast::lit_str(_), span: _}) | - ast::expr_vec(_, _) { + expr_lit(@{node: lit_str(_), span: _}) | + expr_vec(_, _) { alt maybe_parse_vstore(p) { none { } some(v) { hi = p.span.hi; - ex = ast::expr_vstore(mk_expr(p, lo, hi, ex), v); + ex = expr_vstore(mk_expr(p, lo, hi, ex), v); } } } @@ -868,19 +868,19 @@ fn parse_bottom_expr(p: parser) -> pexpr { fn parse_block_expr(p: parser, lo: uint, - blk_mode: ast::blk_check_mode) -> @ast::expr { + blk_mode: blk_check_mode) -> @expr { expect(p, token::LBRACE); let blk = parse_block_tail(p, lo, blk_mode); - ret mk_expr(p, blk.span.lo, blk.span.hi, ast::expr_block(blk)); + ret mk_expr(p, blk.span.lo, blk.span.hi, expr_block(blk)); } -fn parse_syntax_ext(p: parser) -> @ast::expr { +fn parse_syntax_ext(p: parser) -> @expr { let lo = p.span.lo; expect(p, token::POUND); ret parse_syntax_ext_naked(p, lo); } -fn parse_syntax_ext_naked(p: parser, lo: uint) -> @ast::expr { +fn parse_syntax_ext_naked(p: parser, lo: uint) -> @expr { alt p.token { token::IDENT(_, _) {} _ { p.fatal("expected a syntax expander name"); } @@ -900,7 +900,7 @@ fn parse_syntax_ext_naked(p: parser, lo: uint) -> @ast::expr { }; let hi = es.span.hi; e = some(mk_expr(p, es.span.lo, hi, - ast::expr_vec(es.node, ast::m_imm))); + expr_vec(es.node, m_imm))); } let mut b = none; if p.token == token::LBRACE { @@ -919,7 +919,7 @@ fn parse_syntax_ext_naked(p: parser, lo: uint) -> @ast::expr { let hi = p.last_span.lo; b = some({span: mk_sp(lo,hi)}); } - ret mk_mac_expr(p, lo, p.span.hi, ast::mac_invoc(pth, e, b)); + ret mk_mac_expr(p, lo, p.span.hi, mac_invoc(pth, e, b)); } fn parse_dot_or_call_expr(p: parser) -> pexpr { @@ -948,7 +948,7 @@ fn parse_dot_or_call_expr_with(p: parser, e0: pexpr) -> pexpr { {|p| parse_ty(p, false)}, p) } else { [] }; e = mk_pexpr(p, lo, hi, - ast::expr_field(to_expr(e), + expr_field(to_expr(e), p.get_str(i), tys)); } @@ -967,10 +967,10 @@ fn parse_dot_or_call_expr_with(p: parser, e0: pexpr) -> pexpr { let nd = if vec::any(es_opt.node, {|e| option::is_none(e) }) { - ast::expr_bind(to_expr(e), es_opt.node) + expr_bind(to_expr(e), es_opt.node) } else { let es = vec::map(es_opt.node) {|e| option::get(e) }; - ast::expr_call(to_expr(e), es, false) + expr_call(to_expr(e), es, false) }; e = mk_pexpr(p, lo, hi, nd); } @@ -981,13 +981,13 @@ fn parse_dot_or_call_expr_with(p: parser, e0: pexpr) -> pexpr { p.bump(); let blk = parse_fn_block_expr(p); alt e.node { - ast::expr_call(f, args, false) { - e = pexpr(@{node: ast::expr_call(f, args + [blk], true) + expr_call(f, args, false) { + e = pexpr(@{node: expr_call(f, args + [blk], true) with *to_expr(e)}); } _ { e = mk_pexpr(p, lo, p.last_span.hi, - ast::expr_call(to_expr(e), [blk], true)); + expr_call(to_expr(e), [blk], true)); } } } @@ -999,7 +999,7 @@ fn parse_dot_or_call_expr_with(p: parser, e0: pexpr) -> pexpr { hi = ix.span.hi; expect(p, token::RBRACKET); p.get_id(); // see ast_util::op_expr_callee_id - e = mk_pexpr(p, lo, hi, ast::expr_index(to_expr(e), ix)); + e = mk_pexpr(p, lo, hi, expr_index(to_expr(e), ix)); } _ { ret e; } @@ -1019,7 +1019,7 @@ fn parse_prefix_expr(p: parser) -> pexpr { let e = to_expr(parse_prefix_expr(p)); hi = e.span.hi; p.get_id(); // see ast_util::op_expr_callee_id - ex = ast::expr_unary(ast::not, e); + ex = expr_unary(not, e); } token::BINOP(b) { alt b { @@ -1028,20 +1028,20 @@ fn parse_prefix_expr(p: parser) -> pexpr { let e = to_expr(parse_prefix_expr(p)); hi = e.span.hi; p.get_id(); // see ast_util::op_expr_callee_id - ex = ast::expr_unary(ast::neg, e); + ex = expr_unary(neg, e); } token::STAR { p.bump(); let e = to_expr(parse_prefix_expr(p)); hi = e.span.hi; - ex = ast::expr_unary(ast::deref, e); + ex = expr_unary(deref, e); } token::AND { p.bump(); let m = parse_mutability(p); let e = to_expr(parse_prefix_expr(p)); hi = e.span.hi; - ex = ast::expr_addr_of(m, e); + ex = expr_addr_of(m, e); } _ { ret parse_dot_or_call_expr(p); } } @@ -1051,14 +1051,14 @@ fn parse_prefix_expr(p: parser) -> pexpr { let m = parse_mutability(p); let e = to_expr(parse_prefix_expr(p)); hi = e.span.hi; - ex = ast::expr_unary(ast::box(m), e); + ex = expr_unary(box(m), e); } token::TILDE { p.bump(); let m = parse_mutability(p); let e = to_expr(parse_prefix_expr(p)); hi = e.span.hi; - ex = ast::expr_unary(ast::uniq(m), e); + ex = expr_unary(uniq(m), e); } _ { ret parse_dot_or_call_expr(p); } } @@ -1066,12 +1066,12 @@ fn parse_prefix_expr(p: parser) -> pexpr { } -fn parse_binops(p: parser) -> @ast::expr { +fn parse_binops(p: parser) -> @expr { ret parse_more_binops(p, parse_prefix_expr(p), 0u); } fn parse_more_binops(p: parser, plhs: pexpr, min_prec: uint) -> - @ast::expr { + @expr { let lhs = to_expr(plhs); if expr_is_complete(p, plhs) { ret lhs; } let peeked = p.token; @@ -1087,7 +1087,7 @@ fn parse_more_binops(p: parser, plhs: pexpr, min_prec: uint) -> let rhs = parse_more_binops(p, expr, cur_prec); p.get_id(); // see ast_util::op_expr_callee_id let bin = mk_pexpr(p, lhs.span.lo, rhs.span.hi, - ast::expr_binary(cur_op, lhs, rhs)); + expr_binary(cur_op, lhs, rhs)); ret parse_more_binops(p, bin, min_prec); } } @@ -1096,50 +1096,50 @@ fn parse_more_binops(p: parser, plhs: pexpr, min_prec: uint) -> if as_prec > min_prec && eat_keyword(p, "as") { let rhs = parse_ty(p, true); let _as = - mk_pexpr(p, lhs.span.lo, rhs.span.hi, ast::expr_cast(lhs, rhs)); + mk_pexpr(p, lhs.span.lo, rhs.span.hi, expr_cast(lhs, rhs)); ret parse_more_binops(p, _as, min_prec); } ret lhs; } -fn parse_assign_expr(p: parser) -> @ast::expr { +fn parse_assign_expr(p: parser) -> @expr { let lo = p.span.lo; let lhs = parse_binops(p); alt p.token { token::EQ { p.bump(); let rhs = parse_expr(p); - ret mk_expr(p, lo, rhs.span.hi, ast::expr_assign(lhs, rhs)); + ret mk_expr(p, lo, rhs.span.hi, expr_assign(lhs, rhs)); } token::BINOPEQ(op) { p.bump(); let rhs = parse_expr(p); let mut aop; alt op { - token::PLUS { aop = ast::add; } - token::MINUS { aop = ast::subtract; } - token::STAR { aop = ast::mul; } - token::SLASH { aop = ast::div; } - token::PERCENT { aop = ast::rem; } - token::CARET { aop = ast::bitxor; } - token::AND { aop = ast::bitand; } - token::OR { aop = ast::bitor; } - token::LSL { aop = ast::lsl; } - token::LSR { aop = ast::lsr; } - token::ASR { aop = ast::asr; } + token::PLUS { aop = add; } + token::MINUS { aop = subtract; } + token::STAR { aop = mul; } + token::SLASH { aop = div; } + token::PERCENT { aop = rem; } + token::CARET { aop = bitxor; } + token::AND { aop = bitand; } + token::OR { aop = bitor; } + token::LSL { aop = lsl; } + token::LSR { aop = lsr; } + token::ASR { aop = asr; } } p.get_id(); // see ast_util::op_expr_callee_id - ret mk_expr(p, lo, rhs.span.hi, ast::expr_assign_op(aop, lhs, rhs)); + ret mk_expr(p, lo, rhs.span.hi, expr_assign_op(aop, lhs, rhs)); } token::LARROW { p.bump(); let rhs = parse_expr(p); - ret mk_expr(p, lo, rhs.span.hi, ast::expr_move(lhs, rhs)); + ret mk_expr(p, lo, rhs.span.hi, expr_move(lhs, rhs)); } token::DARROW { p.bump(); let rhs = parse_expr(p); - ret mk_expr(p, lo, rhs.span.hi, ast::expr_swap(lhs, rhs)); + ret mk_expr(p, lo, rhs.span.hi, expr_swap(lhs, rhs)); } _ {/* fall through */ } } @@ -1147,15 +1147,15 @@ fn parse_assign_expr(p: parser) -> @ast::expr { } fn parse_if_expr_1(p: parser) -> - {cond: @ast::expr, - then: ast::blk, - els: option<@ast::expr>, + {cond: @expr, + then: blk, + els: option<@expr>, lo: uint, hi: uint} { let lo = p.last_span.lo; let cond = parse_expr(p); let thn = parse_block(p); - let mut els: option<@ast::expr> = none; + let mut els: option<@expr> = none; let mut hi = thn.span.hi; if eat_keyword(p, "else") { let elexpr = parse_else_expr(p); @@ -1165,17 +1165,17 @@ fn parse_if_expr_1(p: parser) -> ret {cond: cond, then: thn, els: els, lo: lo, hi: hi}; } -fn parse_if_expr(p: parser) -> @ast::expr { +fn parse_if_expr(p: parser) -> @expr { if eat_keyword(p, "check") { let q = parse_if_expr_1(p); - ret mk_expr(p, q.lo, q.hi, ast::expr_if_check(q.cond, q.then, q.els)); + ret mk_expr(p, q.lo, q.hi, expr_if_check(q.cond, q.then, q.els)); } else { let q = parse_if_expr_1(p); - ret mk_expr(p, q.lo, q.hi, ast::expr_if(q.cond, q.then, q.els)); + ret mk_expr(p, q.lo, q.hi, expr_if(q.cond, q.then, q.els)); } } -fn parse_fn_expr(p: parser, proto: ast::proto) -> @ast::expr { +fn parse_fn_expr(p: parser, proto: proto) -> @expr { let lo = p.last_span.lo; let cc_old = parse_old_skool_capture_clause(p); @@ -1183,40 +1183,40 @@ fn parse_fn_expr(p: parser, proto: ast::proto) -> @ast::expr { // if we want to allow fn expression argument types to be inferred in the // future, just have to change parse_arg to parse_fn_block_arg. let (decl, capture_clause) = - parse_fn_decl(p, ast::impure_fn, parse_arg_or_capture_item); + parse_fn_decl(p, impure_fn, parse_arg_or_capture_item); let body = parse_block(p); ret mk_expr(p, lo, body.span.hi, - ast::expr_fn(proto, decl, body, + expr_fn(proto, decl, body, @(*capture_clause + cc_old))); } -fn parse_fn_block_expr(p: parser) -> @ast::expr { +fn parse_fn_block_expr(p: parser) -> @expr { let lo = p.last_span.lo; let (decl, captures) = parse_fn_block_decl(p); - let body = parse_block_tail(p, lo, ast::default_blk); + let body = parse_block_tail(p, lo, default_blk); ret mk_expr(p, lo, body.span.hi, - ast::expr_fn_block(decl, body, captures)); + expr_fn_block(decl, body, captures)); } -fn parse_else_expr(p: parser) -> @ast::expr { +fn parse_else_expr(p: parser) -> @expr { if eat_keyword(p, "if") { ret parse_if_expr(p); } else { let blk = parse_block(p); - ret mk_expr(p, blk.span.lo, blk.span.hi, ast::expr_block(blk)); + ret mk_expr(p, blk.span.lo, blk.span.hi, expr_block(blk)); } } -fn parse_for_expr(p: parser) -> @ast::expr { +fn parse_for_expr(p: parser) -> @expr { let lo = p.last_span; let call = parse_expr_res(p, RESTRICT_STMT_EXPR); alt call.node { - ast::expr_call(f, args, true) { + expr_call(f, args, true) { let b_arg = vec::last(args); let last = mk_expr(p, b_arg.span.lo, b_arg.span.hi, - ast::expr_loop_body(b_arg)); - @{node: ast::expr_call(f, vec::init(args) + [last], true) + expr_loop_body(b_arg)); + @{node: expr_call(f, vec::init(args) + [last], true) with *call} } _ { @@ -1225,37 +1225,37 @@ fn parse_for_expr(p: parser) -> @ast::expr { } } -fn parse_while_expr(p: parser) -> @ast::expr { +fn parse_while_expr(p: parser) -> @expr { let lo = p.last_span.lo; let cond = parse_expr(p); let body = parse_block_no_value(p); let mut hi = body.span.hi; - ret mk_expr(p, lo, hi, ast::expr_while(cond, body)); + ret mk_expr(p, lo, hi, expr_while(cond, body)); } -fn parse_do_while_expr(p: parser) -> @ast::expr { +fn parse_do_while_expr(p: parser) -> @expr { let lo = p.last_span.lo; let body = parse_block_no_value(p); expect_keyword(p, "while"); let cond = parse_expr(p); let mut hi = cond.span.hi; - ret mk_expr(p, lo, hi, ast::expr_do_while(body, cond)); + ret mk_expr(p, lo, hi, expr_do_while(body, cond)); } -fn parse_loop_expr(p: parser) -> @ast::expr { +fn parse_loop_expr(p: parser) -> @expr { let lo = p.last_span.lo; let body = parse_block_no_value(p); let mut hi = body.span.hi; - ret mk_expr(p, lo, hi, ast::expr_loop(body)); + ret mk_expr(p, lo, hi, expr_loop(body)); } -fn parse_alt_expr(p: parser) -> @ast::expr { +fn parse_alt_expr(p: parser) -> @expr { let lo = p.last_span.lo; - let mode = if eat_keyword(p, "check") { ast::alt_check } - else { ast::alt_exhaustive }; + let mode = if eat_keyword(p, "check") { alt_check } + else { alt_exhaustive }; let discriminant = parse_expr(p); expect(p, token::LBRACE); - let mut arms: [ast::arm] = []; + let mut arms: [arm] = []; while p.token != token::RBRACE { let pats = parse_pats(p); let mut guard = none; @@ -1265,21 +1265,21 @@ fn parse_alt_expr(p: parser) -> @ast::expr { } let mut hi = p.span.hi; p.bump(); - ret mk_expr(p, lo, hi, ast::expr_alt(discriminant, arms, mode)); + ret mk_expr(p, lo, hi, expr_alt(discriminant, arms, mode)); } -fn parse_expr(p: parser) -> @ast::expr { +fn parse_expr(p: parser) -> @expr { ret parse_expr_res(p, UNRESTRICTED); } -fn parse_expr_or_hole(p: parser) -> option<@ast::expr> { +fn parse_expr_or_hole(p: parser) -> option<@expr> { alt p.token { token::UNDERSCORE { p.bump(); ret none; } _ { ret some(parse_expr(p)); } } } -fn parse_expr_res(p: parser, r: restriction) -> @ast::expr { +fn parse_expr_res(p: parser, r: restriction) -> @expr { let old = p.restriction; p.restriction = r; let e = parse_assign_expr(p); @@ -1287,21 +1287,21 @@ fn parse_expr_res(p: parser, r: restriction) -> @ast::expr { ret e; } -fn parse_initializer(p: parser) -> option { +fn parse_initializer(p: parser) -> option { alt p.token { token::EQ { p.bump(); - ret some({op: ast::init_assign, expr: parse_expr(p)}); + ret some({op: init_assign, expr: parse_expr(p)}); } token::LARROW { p.bump(); - ret some({op: ast::init_move, expr: parse_expr(p)}); + ret some({op: init_move, expr: parse_expr(p)}); } // Now that the the channel is the first argument to receive, // combining it with an initializer doesn't really make sense. // case (token::RECV) { // p.bump(); - // ret some(rec(op = ast::init_recv, + // ret some(rec(op = init_recv, // expr = parse_expr(p))); // } _ { @@ -1310,7 +1310,7 @@ fn parse_initializer(p: parser) -> option { } } -fn parse_pats(p: parser) -> [@ast::pat] { +fn parse_pats(p: parser) -> [@pat] { let mut pats = []; loop { pats += [parse_pat(p)]; @@ -1318,22 +1318,22 @@ fn parse_pats(p: parser) -> [@ast::pat] { }; } -fn parse_pat(p: parser) -> @ast::pat { +fn parse_pat(p: parser) -> @pat { let lo = p.span.lo; let mut hi = p.span.hi; let mut pat; alt p.token { - token::UNDERSCORE { p.bump(); pat = ast::pat_wild; } + token::UNDERSCORE { p.bump(); pat = pat_wild; } token::AT { p.bump(); let sub = parse_pat(p); - pat = ast::pat_box(sub); + pat = pat_box(sub); hi = sub.span.hi; } token::TILDE { p.bump(); let sub = parse_pat(p); - pat = ast::pat_uniq(sub); + pat = pat_uniq(sub); hi = sub.span.hi; } token::LBRACE { @@ -1369,23 +1369,23 @@ fn parse_pat(p: parser) -> @ast::pat { subpat = parse_pat(p); } else { subpat = @{id: p.get_id(), - node: ast::pat_ident(fieldpath, none), + node: pat_ident(fieldpath, none), span: mk_sp(lo, hi)}; } fields += [{ident: fieldname, pat: subpat}]; } hi = p.span.hi; p.bump(); - pat = ast::pat_rec(fields, etc); + pat = pat_rec(fields, etc); } token::LPAREN { p.bump(); if p.token == token::RPAREN { hi = p.span.hi; p.bump(); - let lit = @{node: ast::lit_nil, span: mk_sp(lo, hi)}; - let expr = mk_expr(p, lo, hi, ast::expr_lit(lit)); - pat = ast::pat_lit(expr); + let lit = @{node: lit_nil, span: mk_sp(lo, hi)}; + let expr = mk_expr(p, lo, hi, expr_lit(lit)); + pat = pat_lit(expr); } else { let mut fields = [parse_pat(p)]; while p.token == token::COMMA { @@ -1395,7 +1395,7 @@ fn parse_pat(p: parser) -> @ast::pat { if vec::len(fields) == 1u { expect(p, token::COMMA); } hi = p.span.hi; expect(p, token::RPAREN); - pat = ast::pat_tup(fields); + pat = pat_tup(fields); } } tok { @@ -1404,10 +1404,10 @@ fn parse_pat(p: parser) -> @ast::pat { if eat_keyword(p, "to") { let end = parse_expr_res(p, RESTRICT_NO_BAR_OP); hi = end.span.hi; - pat = ast::pat_range(val, end); + pat = pat_range(val, end); } else { hi = val.span.hi; - pat = ast::pat_lit(val); + pat = pat_lit(val); } } else if is_plain_ident(p.token) && alt p.look_ahead(1u) { @@ -1417,11 +1417,11 @@ fn parse_pat(p: parser) -> @ast::pat { let name = parse_value_path(p); let sub = if eat(p, token::AT) { some(parse_pat(p)) } else { none }; - pat = ast::pat_ident(name, sub); + pat = pat_ident(name, sub); } else { let enum_path = parse_path_with_tps(p, true); hi = enum_path.span.hi; - let mut args: [@ast::pat] = []; + let mut args: [@pat] = []; let mut star_pat = false; alt p.token { token::LPAREN { @@ -1445,14 +1445,14 @@ fn parse_pat(p: parser) -> @ast::pat { } // at this point, we're not sure whether it's a enum or a bind if star_pat { - pat = ast::pat_enum(enum_path, none); + pat = pat_enum(enum_path, none); } else if vec::is_empty(args) && vec::len(enum_path.idents) == 1u { - pat = ast::pat_ident(enum_path, none); + pat = pat_ident(enum_path, none); } else { - pat = ast::pat_enum(enum_path, some(args)); + pat = pat_enum(enum_path, some(args)); } } } @@ -1461,11 +1461,11 @@ fn parse_pat(p: parser) -> @ast::pat { } fn parse_local(p: parser, is_mutbl: bool, - allow_init: bool) -> @ast::local { + allow_init: bool) -> @local { let lo = p.span.lo; let pat = parse_pat(p); let mut ty = @{id: p.get_id(), - node: ast::ty_infer, + node: ty_infer, span: mk_sp(lo, lo)}; if eat(p, token::COLON) { ty = parse_ty(p, false); } let init = if allow_init { parse_initializer(p) } else { none }; @@ -1474,22 +1474,22 @@ fn parse_local(p: parser, is_mutbl: bool, init: init, id: p.get_id()}); } -fn parse_let(p: parser) -> @ast::decl { +fn parse_let(p: parser) -> @decl { let is_mutbl = eat_keyword(p, "mut"); let lo = p.span.lo; let mut locals = [parse_local(p, is_mutbl, true)]; while eat(p, token::COMMA) { locals += [parse_local(p, is_mutbl, true)]; } - ret @spanned(lo, p.last_span.hi, ast::decl_local(locals)); + ret @spanned(lo, p.last_span.hi, decl_local(locals)); } /* assumes "let" token has already been consumed */ -fn parse_instance_var(p:parser, pr: ast::visibility) -> @ast::class_member { - let mut is_mutbl = ast::class_immutable; +fn parse_instance_var(p:parser, pr: visibility) -> @class_member { + let mut is_mutbl = class_immutable; let lo = p.span.lo; if eat_keyword(p, "mut") { - is_mutbl = ast::class_mutable; + is_mutbl = class_mutable; } if !is_plain_ident(p.token) { p.fatal("expecting ident"); @@ -1497,12 +1497,12 @@ fn parse_instance_var(p:parser, pr: ast::visibility) -> @ast::class_member { let name = parse_ident(p); expect(p, token::COLON); let ty = parse_ty(p, false); - ret @{node: ast::instance_var(name, ty, is_mutbl, p.get_id(), pr), + ret @{node: instance_var(name, ty, is_mutbl, p.get_id(), pr), span: mk_sp(lo, p.last_span.hi)}; } -fn parse_stmt(p: parser, +first_item_attrs: [ast::attribute]) -> @ast::stmt { - fn check_expected_item(p: parser, current_attrs: [ast::attribute]) { +fn parse_stmt(p: parser, +first_item_attrs: [attribute]) -> @stmt { + fn check_expected_item(p: parser, current_attrs: [attribute]) { // If we have attributes then we should have an item if vec::is_not_empty(current_attrs) { p.fatal("expected item"); @@ -1514,24 +1514,24 @@ fn parse_stmt(p: parser, +first_item_attrs: [ast::attribute]) -> @ast::stmt { check_expected_item(p, first_item_attrs); expect_keyword(p, "let"); let decl = parse_let(p); - ret @spanned(lo, decl.span.hi, ast::stmt_decl(decl, p.get_id())); + ret @spanned(lo, decl.span.hi, stmt_decl(decl, p.get_id())); } else { let mut item_attrs; alt parse_outer_attrs_or_ext(p, first_item_attrs) { none { item_attrs = []; } some(left(attrs)) { item_attrs = attrs; } some(right(ext)) { - ret @spanned(lo, ext.span.hi, ast::stmt_expr(ext, p.get_id())); + ret @spanned(lo, ext.span.hi, stmt_expr(ext, p.get_id())); } } let item_attrs = first_item_attrs + item_attrs; - alt parse_item(p, item_attrs, ast::public) { + alt parse_item(p, item_attrs, public) { some(i) { let mut hi = i.span.hi; - let decl = @spanned(lo, hi, ast::decl_item(i)); - ret @spanned(lo, hi, ast::stmt_decl(decl, p.get_id())); + let decl = @spanned(lo, hi, decl_item(i)); + ret @spanned(lo, hi, stmt_decl(decl, p.get_id())); } none() { /* fallthrough */ } } @@ -1540,7 +1540,7 @@ fn parse_stmt(p: parser, +first_item_attrs: [ast::attribute]) -> @ast::stmt { // Remainder are line-expr stmts. let e = parse_expr_res(p, RESTRICT_STMT_EXPR); - ret @spanned(lo, e.span.hi, ast::stmt_expr(e, p.get_id())); + ret @spanned(lo, e.span.hi, stmt_expr(e, p.get_id())); } } @@ -1552,18 +1552,18 @@ fn expr_is_complete(p: parser, e: pexpr) -> bool { !classify::expr_requires_semi_to_be_stmt(*e); } -fn parse_block(p: parser) -> ast::blk { +fn parse_block(p: parser) -> blk { let (attrs, blk) = parse_inner_attrs_and_block(p, false); assert vec::is_empty(attrs); ret blk; } fn parse_inner_attrs_and_block( - p: parser, parse_attrs: bool) -> ([ast::attribute], ast::blk) { + p: parser, parse_attrs: bool) -> ([attribute], blk) { fn maybe_parse_inner_attrs_and_next( p: parser, parse_attrs: bool) -> - {inner: [ast::attribute], next: [ast::attribute]} { + {inner: [attribute], next: [attribute]} { if parse_attrs { parse_inner_attrs_and_next(p) } else { @@ -1575,19 +1575,19 @@ fn parse_inner_attrs_and_block( if eat_keyword(p, "unchecked") { expect(p, token::LBRACE); let {inner, next} = maybe_parse_inner_attrs_and_next(p, parse_attrs); - ret (inner, parse_block_tail_(p, lo, ast::unchecked_blk, next)); + ret (inner, parse_block_tail_(p, lo, unchecked_blk, next)); } else if eat_keyword(p, "unsafe") { expect(p, token::LBRACE); let {inner, next} = maybe_parse_inner_attrs_and_next(p, parse_attrs); - ret (inner, parse_block_tail_(p, lo, ast::unsafe_blk, next)); + ret (inner, parse_block_tail_(p, lo, unsafe_blk, next)); } else { expect(p, token::LBRACE); let {inner, next} = maybe_parse_inner_attrs_and_next(p, parse_attrs); - ret (inner, parse_block_tail_(p, lo, ast::default_blk, next)); + ret (inner, parse_block_tail_(p, lo, default_blk, next)); } } -fn parse_block_no_value(p: parser) -> ast::blk { +fn parse_block_no_value(p: parser) -> blk { // We parse blocks that cannot have a value the same as any other block; // the type checker will make sure that the tail expression (if any) has // unit type. @@ -1598,12 +1598,12 @@ fn parse_block_no_value(p: parser) -> ast::blk { // I guess that also means "already parsed the 'impure'" if // necessary, and this should take a qualifier. // some blocks start with "#{"... -fn parse_block_tail(p: parser, lo: uint, s: ast::blk_check_mode) -> ast::blk { +fn parse_block_tail(p: parser, lo: uint, s: blk_check_mode) -> blk { parse_block_tail_(p, lo, s, []) } -fn parse_block_tail_(p: parser, lo: uint, s: ast::blk_check_mode, - +first_item_attrs: [ast::attribute]) -> ast::blk { +fn parse_block_tail_(p: parser, lo: uint, s: blk_check_mode, + +first_item_attrs: [attribute]) -> blk { let mut stmts = []; let mut expr = none; let view_items = maybe_parse_view_import_only(p, first_item_attrs); @@ -1622,11 +1622,11 @@ fn parse_block_tail_(p: parser, lo: uint, s: ast::blk_check_mode, let stmt = parse_stmt(p, initial_attrs); initial_attrs = []; alt stmt.node { - ast::stmt_expr(e, stmt_id) { // Expression without semicolon: + stmt_expr(e, stmt_id) { // Expression without semicolon: alt p.token { token::SEMI { p.bump(); - stmts += [@{node: ast::stmt_semi(e, stmt_id) with *stmt}]; + stmts += [@{node: stmt_semi(e, stmt_id) with *stmt}]; } token::RBRACE { expr = some(e); @@ -1660,27 +1660,27 @@ fn parse_block_tail_(p: parser, lo: uint, s: ast::blk_check_mode, ret spanned(lo, hi, bloc); } -fn parse_ty_param(p: parser) -> ast::ty_param { +fn parse_ty_param(p: parser) -> ty_param { let mut bounds = []; let ident = parse_ident(p); if eat(p, token::COLON) { while p.token != token::COMMA && p.token != token::GT { - if eat_keyword(p, "send") { bounds += [ast::bound_send]; } - else if eat_keyword(p, "copy") { bounds += [ast::bound_copy]; } - else { bounds += [ast::bound_iface(parse_ty(p, false))]; } + if eat_keyword(p, "send") { bounds += [bound_send]; } + else if eat_keyword(p, "copy") { bounds += [bound_copy]; } + else { bounds += [bound_iface(parse_ty(p, false))]; } } } ret {ident: ident, id: p.get_id(), bounds: @bounds}; } -fn parse_ty_params(p: parser) -> [ast::ty_param] { +fn parse_ty_params(p: parser) -> [ty_param] { if eat(p, token::LT) { parse_seq_to_gt(some(token::COMMA), parse_ty_param, p) } else { [] } } // FIXME Remove after snapshot -fn parse_old_skool_capture_clause(p: parser) -> [ast::capture_item] { +fn parse_old_skool_capture_clause(p: parser) -> [capture_item] { fn expect_opt_trailing_semi(p: parser) { if !eat(p, token::SEMI) { if p.token != token::RBRACKET { @@ -1689,7 +1689,7 @@ fn parse_old_skool_capture_clause(p: parser) -> [ast::capture_item] { } } - fn eat_ident_list(p: parser, is_move: bool) -> [ast::capture_item] { + fn eat_ident_list(p: parser, is_move: bool) -> [capture_item] { let mut res = []; loop { alt p.token { @@ -1728,12 +1728,12 @@ fn parse_old_skool_capture_clause(p: parser) -> [ast::capture_item] { ret cap_items; } -type arg_or_capture_item = either; +type arg_or_capture_item = either; -fn parse_fn_decl(p: parser, purity: ast::purity, +fn parse_fn_decl(p: parser, purity: purity, parse_arg_fn: fn(parser) -> arg_or_capture_item) - -> (ast::fn_decl, ast::capture_clause) { + -> (fn_decl, capture_clause) { let args_or_capture_items: [arg_or_capture_item] = parse_seq(token::LPAREN, token::RPAREN, seq_sep(token::COMMA), @@ -1758,7 +1758,7 @@ fn parse_fn_decl(p: parser, purity: ast::purity, constraints: constrs}, capture_clause); } -fn parse_fn_block_decl(p: parser) -> (ast::fn_decl, ast::capture_clause) { +fn parse_fn_block_decl(p: parser) -> (fn_decl, capture_clause) { let inputs_captures = { if eat(p, token::OROR) { [] @@ -1772,25 +1772,25 @@ fn parse_fn_block_decl(p: parser) -> (ast::fn_decl, ast::capture_clause) { let output = if eat(p, token::RARROW) { parse_ty(p, false) } else { - @{id: p.get_id(), node: ast::ty_infer, span: p.span} + @{id: p.get_id(), node: ty_infer, span: p.span} }; ret ({inputs: either::lefts(inputs_captures), output: output, - purity: ast::impure_fn, - cf: ast::return_val, + purity: impure_fn, + cf: return_val, constraints: []}, @either::rights(inputs_captures)); } -fn parse_fn_header(p: parser) -> {ident: ast::ident, tps: [ast::ty_param]} { +fn parse_fn_header(p: parser) -> {ident: ident, tps: [ty_param]} { let id = parse_value_ident(p); let ty_params = parse_ty_params(p); ret {ident: id, tps: ty_params}; } -fn mk_item(p: parser, lo: uint, hi: uint, +ident: ast::ident, - +node: ast::item_, vis: ast::visibility, - +attrs: [ast::attribute]) -> @ast::item { +fn mk_item(p: parser, lo: uint, hi: uint, +ident: ident, + +node: item_, vis: visibility, + +attrs: [attribute]) -> @item { ret @{ident: ident, attrs: attrs, id: p.get_id(), @@ -1799,16 +1799,16 @@ fn mk_item(p: parser, lo: uint, hi: uint, +ident: ast::ident, span: mk_sp(lo, hi)}; } -type item_info = (ast::ident, ast::item_, option<[ast::attribute]>); +type item_info = (ident, item_, option<[attribute]>); -fn parse_item_fn(p: parser, purity: ast::purity) -> item_info { +fn parse_item_fn(p: parser, purity: purity) -> item_info { let t = parse_fn_header(p); let (decl, _) = parse_fn_decl(p, purity, parse_arg); let (inner_attrs, body) = parse_inner_attrs_and_block(p, true); - (t.ident, ast::item_fn(decl, t.tps, body), some(inner_attrs)) + (t.ident, item_fn(decl, t.tps, body), some(inner_attrs)) } -fn parse_method_name(p: parser) -> ast::ident { +fn parse_method_name(p: parser) -> ident { alt p.token { token::BINOP(op) { p.bump(); token::binop_to_str(op) } token::NOT { p.bump(); "!" } @@ -1821,7 +1821,7 @@ fn parse_method_name(p: parser) -> ast::ident { } } -fn parse_method(p: parser, pr: ast::visibility) -> @ast::method { +fn parse_method(p: parser, pr: visibility) -> @method { let attrs = parse_outer_attributes(p); let lo = p.span.lo, pur = parse_fn_purity(p); let ident = parse_method_name(p); @@ -1839,7 +1839,7 @@ fn parse_item_iface(p: parser) -> item_info { let rp = parse_region_param(p); let tps = parse_ty_params(p); let meths = parse_ty_methods(p); - (ident, ast::item_iface(tps, rp, meths), none) + (ident, item_iface(tps, rp, meths), none) } // Parses three variants (with the region/type params always optional): @@ -1847,17 +1847,17 @@ fn parse_item_iface(p: parser) -> item_info { // impl name/& of to_str for [T] { ... } // impl name/& for [T] { ... } fn parse_item_impl(p: parser) -> item_info { - fn wrap_path(p: parser, pt: @ast::path) -> @ast::ty { - @{id: p.get_id(), node: ast::ty_path(pt, p.get_id()), span: pt.span} + fn wrap_path(p: parser, pt: @path) -> @ty { + @{id: p.get_id(), node: ty_path(pt, p.get_id()), span: pt.span} } let mut (ident, rp, tps) = { if p.token == token::LT { - (none, ast::rp_none, parse_ty_params(p)) + (none, rp_none, parse_ty_params(p)) } else if p.token == token::BINOP(token::SLASH) { (none, parse_region_param(p), parse_ty_params(p)) } else if is_keyword(p, "of") { - (none, ast::rp_none, []) + (none, rp_none, []) } else { let id = parse_ident(p); let rp = parse_region_param(p); @@ -1879,8 +1879,8 @@ fn parse_item_impl(p: parser) -> item_info { let ty = parse_ty(p, false); let mut meths = []; expect(p, token::LBRACE); - while !eat(p, token::RBRACE) { meths += [parse_method(p, ast::public)]; } - (ident, ast::item_impl(tps, rp, ifce, ty, meths), none) + while !eat(p, token::RBRACE) { meths += [parse_method(p, public)]; } + (ident, item_impl(tps, rp, ifce, ty, meths), none) } fn parse_item_res(p: parser) -> item_info { @@ -1894,47 +1894,47 @@ fn parse_item_res(p: parser) -> item_info { expect(p, token::RPAREN); let dtor = parse_block_no_value(p); let decl = { - inputs: [{mode: ast::expl(ast::by_ref), ty: t, + inputs: [{mode: expl(by_ref), ty: t, ident: arg_ident, id: p.get_id()}], - output: @{id: p.get_id(), node: ast::ty_nil, + output: @{id: p.get_id(), node: ty_nil, span: ast_util::dummy_sp()}, - purity: ast::impure_fn, - cf: ast::return_val, + purity: impure_fn, + cf: return_val, constraints: [] }; - (ident, ast::item_res(decl, ty_params, dtor, + (ident, item_res(decl, ty_params, dtor, p.get_id(), p.get_id(), rp), none) } // Instantiates ident with references to as arguments. Used to // create a path that refers to a class which will be defined as the return // type of the ctor function. -fn ident_to_path_tys(p: parser, i: ast::ident, - rp: ast::region_param, - typarams: [ast::ty_param]) -> @ast::path { +fn ident_to_path_tys(p: parser, i: ident, + rp: region_param, + typarams: [ty_param]) -> @path { let s = p.last_span; // Hack. But then, this whole function is in service of a hack. let a_r = alt rp { - ast::rp_none { none } - ast::rp_self { some(region_from_name(p, some("self"))) } + rp_none { none } + rp_self { some(region_from_name(p, some("self"))) } }; @{span: s, global: false, idents: [i], rp: a_r, types: vec::map(typarams, {|tp| @{id: p.get_id(), - node: ast::ty_path(ident_to_path(s, tp.ident), p.get_id()), + node: ty_path(ident_to_path(s, tp.ident), p.get_id()), span: s}}) } } -fn parse_iface_ref(p:parser) -> @ast::iface_ref { +fn parse_iface_ref(p:parser) -> @iface_ref { @{path: parse_path_with_tps(p, false), id: p.get_id()} } -fn parse_iface_ref_list(p:parser) -> [@ast::iface_ref] { +fn parse_iface_ref_list(p:parser) -> [@iface_ref] { parse_seq_to_before_end(token::LBRACE, seq_sep(token::COMMA), parse_iface_ref, p) } @@ -1944,13 +1944,13 @@ fn parse_item_class(p: parser) -> item_info { let rp = parse_region_param(p); let ty_params = parse_ty_params(p); let class_path = ident_to_path_tys(p, class_name, rp, ty_params); - let ifaces : [@ast::iface_ref] = if eat_keyword(p, "implements") + let ifaces : [@iface_ref] = if eat_keyword(p, "implements") { parse_iface_ref_list(p) } else { [] }; expect(p, token::LBRACE); - let mut ms: [@ast::class_member] = []; + let mut ms: [@class_member] = []; let ctor_id = p.get_id(); - let mut the_ctor : option<(ast::fn_decl, ast::blk, codemap::span)> = none; + let mut the_ctor : option<(fn_decl, blk, codemap::span)> = none; while p.token != token::RBRACE { alt parse_class_item(p, class_path) { ctor_decl(a_fn_decl, blk, s) { @@ -1963,7 +1963,7 @@ fn parse_item_class(p: parser) -> item_info { alt the_ctor { some((ct_d, ct_b, ct_s)) { (class_name, - ast::item_class(ty_params, ifaces, ms, { + item_class(ty_params, ifaces, ms, { node: {id: ctor_id, self_id: p.get_id(), dec: ct_d, @@ -1980,8 +1980,8 @@ fn parse_item_class(p: parser) -> item_info { } } -fn parse_single_class_item(p: parser, vis: ast::visibility) - -> @ast::class_member { +fn parse_single_class_item(p: parser, vis: visibility) + -> @class_member { if eat_keyword(p, "let") { let a_var = parse_instance_var(p, vis); expect(p, token::SEMI); @@ -1989,24 +1989,24 @@ fn parse_single_class_item(p: parser, vis: ast::visibility) } else { let m = parse_method(p, vis); - ret @{node: ast::class_method(m), span: m.span}; + ret @{node: class_method(m), span: m.span}; } } // lets us identify the constructor declaration at // parse time -enum class_contents { ctor_decl(ast::fn_decl, ast::blk, codemap::span), - members([@ast::class_member]) } +enum class_contents { ctor_decl(fn_decl, blk, codemap::span), + members([@class_member]) } -fn parse_class_item(p:parser, class_name_with_tps: @ast::path) +fn parse_class_item(p:parser, class_name_with_tps: @path) -> class_contents { if eat_keyword(p, "new") { let lo = p.last_span.lo; // Can ctors have attrs? // result type is always the type of the class - let (decl_, _) = parse_fn_decl(p, ast::impure_fn, parse_arg); + let (decl_, _) = parse_fn_decl(p, impure_fn, parse_arg); let decl = {output: @{id: p.get_id(), - node: ast::ty_path(class_name_with_tps, p.get_id()), + node: ty_path(class_name_with_tps, p.get_id()), span: decl_.output.span} with decl_}; let body = parse_block(p); @@ -2016,34 +2016,34 @@ fn parse_class_item(p:parser, class_name_with_tps: @ast::path) expect(p, token::LBRACE); let mut results = []; while p.token != token::RBRACE { - results += [parse_single_class_item(p, ast::private)]; + results += [parse_single_class_item(p, private)]; } p.bump(); ret members(results); } else { // Probably need to parse attrs - ret members([parse_single_class_item(p, ast::public)]); + ret members([parse_single_class_item(p, public)]); } } -fn parse_visibility(p: parser, def: ast::visibility) -> ast::visibility { - if eat_keyword(p, "pub") { ast::public } - else if eat_keyword(p, "priv") { ast::private } +fn parse_visibility(p: parser, def: visibility) -> visibility { + if eat_keyword(p, "pub") { public } + else if eat_keyword(p, "priv") { private } else { def } } fn parse_mod_items(p: parser, term: token::token, - +first_item_attrs: [ast::attribute]) -> ast::_mod { + +first_item_attrs: [attribute]) -> _mod { // Shouldn't be any view items since we've already parsed an item attr let view_items = maybe_parse_view(p, first_item_attrs); - let mut items: [@ast::item] = []; + let mut items: [@item] = []; let mut first = true; while p.token != term { let mut attrs = parse_outer_attributes(p); if first { attrs = first_item_attrs + attrs; first = false; } #debug["parse_mod_items: parse_item(attrs=%?)", attrs]; - let vis = parse_visibility(p, ast::private); + let vis = parse_visibility(p, private); alt parse_item(p, attrs, vis) { some(i) { items += [i]; } _ { @@ -2069,7 +2069,7 @@ fn parse_item_const(p: parser) -> item_info { expect(p, token::EQ); let e = parse_expr(p); expect(p, token::SEMI); - (id, ast::item_const(ty, e), none) + (id, item_const(ty, e), none) } fn parse_item_mod(p: parser) -> item_info { @@ -2078,11 +2078,11 @@ fn parse_item_mod(p: parser) -> item_info { let inner_attrs = parse_inner_attrs_and_next(p); let m = parse_mod_items(p, token::RBRACE, inner_attrs.next); expect(p, token::RBRACE); - (id, ast::item_mod(m), some(inner_attrs.inner)) + (id, item_mod(m), some(inner_attrs.inner)) } -fn parse_item_native_fn(p: parser, +attrs: [ast::attribute], - purity: ast::purity) -> @ast::native_item { +fn parse_item_native_fn(p: parser, +attrs: [attribute], + purity: purity) -> @native_item { let lo = p.last_span.lo; let t = parse_fn_header(p); let (decl, _) = parse_fn_decl(p, purity, parse_arg); @@ -2090,34 +2090,34 @@ fn parse_item_native_fn(p: parser, +attrs: [ast::attribute], expect(p, token::SEMI); ret @{ident: t.ident, attrs: attrs, - node: ast::native_item_fn(decl, t.tps), + node: native_item_fn(decl, t.tps), id: p.get_id(), span: mk_sp(lo, hi)}; } -fn parse_fn_purity(p: parser) -> ast::purity { - if eat_keyword(p, "fn") { ast::impure_fn } - else if eat_keyword(p, "pure") { expect_keyword(p, "fn"); ast::pure_fn } +fn parse_fn_purity(p: parser) -> purity { + if eat_keyword(p, "fn") { impure_fn } + else if eat_keyword(p, "pure") { expect_keyword(p, "fn"); pure_fn } else if eat_keyword(p, "unsafe") { expect_keyword(p, "fn"); - ast::unsafe_fn + unsafe_fn } else { unexpected(p); } } -fn parse_native_item(p: parser, +attrs: [ast::attribute]) -> - @ast::native_item { +fn parse_native_item(p: parser, +attrs: [attribute]) -> + @native_item { parse_item_native_fn(p, attrs, parse_fn_purity(p)) } -fn parse_native_mod_items(p: parser, +first_item_attrs: [ast::attribute]) -> - ast::native_mod { +fn parse_native_mod_items(p: parser, +first_item_attrs: [attribute]) -> + native_mod { // Shouldn't be any view items since we've already parsed an item attr let view_items = if vec::len(first_item_attrs) == 0u { parse_native_view(p) } else { [] }; - let mut items: [@ast::native_item] = []; + let mut items: [@native_item] = []; let mut initial_attrs = first_item_attrs; while p.token != token::RBRACE { let attrs = initial_attrs + parse_outer_attributes(p); @@ -2135,10 +2135,10 @@ fn parse_item_native_mod(p: parser) -> item_info { let more_attrs = parse_inner_attrs_and_next(p); let m = parse_native_mod_items(p, more_attrs.next); expect(p, token::RBRACE); - (id, ast::item_native_mod(m), some(more_attrs.inner)) + (id, item_native_mod(m), some(more_attrs.inner)) } -fn parse_type_decl(p: parser) -> {lo: uint, ident: ast::ident} { +fn parse_type_decl(p: parser) -> {lo: uint, ident: ident} { let lo = p.last_span.lo; let id = parse_ident(p); ret {lo: lo, ident: id}; @@ -2151,23 +2151,23 @@ fn parse_item_type(p: parser) -> item_info { expect(p, token::EQ); let ty = parse_ty(p, false); expect(p, token::SEMI); - (t.ident, ast::item_ty(ty, tps, rp), none) + (t.ident, item_ty(ty, tps, rp), none) } -fn parse_region_param(p: parser) -> ast::region_param { +fn parse_region_param(p: parser) -> region_param { if eat(p, token::BINOP(token::SLASH)) { expect(p, token::BINOP(token::AND)); - ast::rp_self + rp_self } else { - ast::rp_none + rp_none } } -fn parse_item_enum(p: parser, default_vis: ast::visibility) -> item_info { +fn parse_item_enum(p: parser, default_vis: visibility) -> item_info { let id = parse_ident(p); let rp = parse_region_param(p); let ty_params = parse_ty_params(p); - let mut variants: [ast::variant] = []; + let mut variants: [variant] = []; // Newtype syntax if p.token == token::EQ { check_restricted_keywords_(p, id); @@ -2181,8 +2181,8 @@ fn parse_item_enum(p: parser, default_vis: ast::visibility) -> item_info { args: [{ty: ty, id: p.get_id()}], id: p.get_id(), disr_expr: none, - vis: ast::public}); - ret (id, ast::item_enum([variant], ty_params, rp), none); + vis: public}); + ret (id, item_enum([variant], ty_params, rp), none); } expect(p, token::LBRACE); @@ -2218,25 +2218,25 @@ fn parse_item_enum(p: parser, default_vis: ast::visibility) -> item_info { if (have_disr && !all_nullary) { p.fatal("discriminator values can only be used with a c-like enum"); } - (id, ast::item_enum(variants, ty_params, rp), none) + (id, item_enum(variants, ty_params, rp), none) } -fn parse_fn_ty_proto(p: parser) -> ast::proto { +fn parse_fn_ty_proto(p: parser) -> proto { alt p.token { token::AT { p.bump(); - ast::proto_box + proto_box } token::TILDE { p.bump(); - ast::proto_uniq + proto_uniq } token::BINOP(token::AND) { p.bump(); - ast::proto_block + proto_block } _ { - ast::proto_any + proto_any } } } @@ -2252,24 +2252,24 @@ fn fn_expr_lookahead(tok: token::token) -> bool { } } -fn parse_item(p: parser, +attrs: [ast::attribute], vis: ast::visibility) - -> option<@ast::item> { +fn parse_item(p: parser, +attrs: [attribute], vis: visibility) + -> option<@item> { let lo = p.span.lo; let (ident, item_, extra_attrs) = if eat_keyword(p, "const") { parse_item_const(p) } else if is_keyword(p, "fn") && !fn_expr_lookahead(p.look_ahead(1u)) { p.bump(); - parse_item_fn(p, ast::impure_fn) + parse_item_fn(p, impure_fn) } else if eat_keyword(p, "pure") { expect_keyword(p, "fn"); - parse_item_fn(p, ast::pure_fn) + parse_item_fn(p, pure_fn) } else if is_keyword(p, "unsafe") && p.look_ahead(1u) != token::LBRACE { p.bump(); expect_keyword(p, "fn"); - parse_item_fn(p, ast::unsafe_fn) + parse_item_fn(p, unsafe_fn) } else if eat_keyword(p, "crust") { expect_keyword(p, "fn"); - parse_item_fn(p, ast::crust_fn) + parse_item_fn(p, crust_fn) } else if eat_keyword(p, "mod") { parse_item_mod(p) } else if eat_keyword(p, "native") { @@ -2294,13 +2294,13 @@ fn parse_item(p: parser, +attrs: [ast::attribute], vis: ast::visibility) })) } -fn parse_use(p: parser) -> ast::view_item_ { +fn parse_use(p: parser) -> view_item_ { let ident = parse_ident(p); let metadata = parse_optional_meta(p); - ret ast::view_item_use(ident, metadata, p.get_id()); + ret view_item_use(ident, metadata, p.get_id()); } -fn parse_view_path(p: parser) -> @ast::view_path { +fn parse_view_path(p: parser) -> @view_path { let lo = p.span.lo; let first_ident = parse_ident(p); let mut path = [first_ident]; @@ -2318,7 +2318,7 @@ fn parse_view_path(p: parser) -> @ast::view_path { let path = @{span: mk_sp(lo, p.span.hi), global: false, idents: path, rp: none, types: []}; ret @spanned(lo, p.span.hi, - ast::view_path_simple(first_ident, path, p.get_id())); + view_path_simple(first_ident, path, p.get_id())); } token::MOD_SEP { @@ -2343,7 +2343,7 @@ fn parse_view_path(p: parser) -> @ast::view_path { global: false, idents: path, rp: none, types: []}; ret @spanned(lo, p.span.hi, - ast::view_path_list(path, idents, p.get_id())); + view_path_list(path, idents, p.get_id())); } // foo::bar::* @@ -2353,7 +2353,7 @@ fn parse_view_path(p: parser) -> @ast::view_path { global: false, idents: path, rp: none, types: []}; ret @spanned(lo, p.span.hi, - ast::view_path_glob(path, p.get_id())); + view_path_glob(path, p.get_id())); } _ { break; } @@ -2366,10 +2366,10 @@ fn parse_view_path(p: parser) -> @ast::view_path { let path = @{span: mk_sp(lo, p.span.hi), global: false, idents: path, rp: none, types: []}; ret @spanned(lo, p.span.hi, - ast::view_path_simple(last, path, p.get_id())); + view_path_simple(last, path, p.get_id())); } -fn parse_view_paths(p: parser) -> [@ast::view_path] { +fn parse_view_paths(p: parser) -> [@view_path] { let mut vp = [parse_view_path(p)]; while p.token == token::COMMA { p.bump(); @@ -2378,15 +2378,15 @@ fn parse_view_paths(p: parser) -> [@ast::view_path] { ret vp; } -fn parse_view_item(p: parser) -> @ast::view_item { +fn parse_view_item(p: parser) -> @view_item { let lo = p.span.lo; let the_item = if eat_keyword(p, "use") { parse_use(p) } else if eat_keyword(p, "import") { - ast::view_item_import(parse_view_paths(p)) + view_item_import(parse_view_paths(p)) } else if eat_keyword(p, "export") { - ast::view_item_export(parse_view_paths(p)) + view_item_export(parse_view_paths(p)) } else { fail }; @@ -2401,22 +2401,22 @@ fn is_view_item(p: parser) -> bool { fn maybe_parse_view( p: parser, - first_item_attrs: [ast::attribute]) -> [@ast::view_item] { + first_item_attrs: [attribute]) -> [@view_item] { maybe_parse_view_while(p, first_item_attrs, is_view_item) } fn maybe_parse_view_import_only( p: parser, - first_item_attrs: [ast::attribute]) -> [@ast::view_item] { + first_item_attrs: [attribute]) -> [@view_item] { maybe_parse_view_while(p, first_item_attrs, bind is_keyword(_, "import")) } fn maybe_parse_view_while( p: parser, - first_item_attrs: [ast::attribute], - f: fn@(parser) -> bool) -> [@ast::view_item] { + first_item_attrs: [attribute], + f: fn@(parser) -> bool) -> [@view_item] { if vec::len(first_item_attrs) == 0u { let mut items = []; @@ -2428,12 +2428,12 @@ fn maybe_parse_view_while( } } -fn parse_native_view(p: parser) -> [@ast::view_item] { +fn parse_native_view(p: parser) -> [@view_item] { maybe_parse_view_while(p, [], is_view_item) } // Parses a source module as a crate -fn parse_crate_mod(p: parser, _cfg: ast::crate_cfg) -> @ast::crate { +fn parse_crate_mod(p: parser, _cfg: crate_cfg) -> @crate { let lo = p.span.lo; let crate_attrs = parse_inner_attrs_and_next(p); let first_item_outer_attrs = crate_attrs.next; @@ -2459,8 +2459,8 @@ fn parse_str(p: parser) -> str { // Each crate file is a sequence of directives. // // Each directive imperatively extends its environment with 0 or more items. -fn parse_crate_directive(p: parser, first_outer_attr: [ast::attribute]) -> - ast::crate_directive { +fn parse_crate_directive(p: parser, first_outer_attr: [attribute]) -> + crate_directive { // Collect the next attributes let outer_attrs = first_outer_attr + parse_outer_attributes(p); @@ -2476,7 +2476,7 @@ fn parse_crate_directive(p: parser, first_outer_attr: [ast::attribute]) -> token::SEMI { let mut hi = p.span.hi; p.bump(); - ret spanned(lo, hi, ast::cdir_src_mod(id, outer_attrs)); + ret spanned(lo, hi, cdir_src_mod(id, outer_attrs)); } // mod x = "foo_dir" { ...directives... } token::LBRACE { @@ -2489,19 +2489,19 @@ fn parse_crate_directive(p: parser, first_outer_attr: [ast::attribute]) -> let mut hi = p.span.hi; expect(p, token::RBRACE); ret spanned(lo, hi, - ast::cdir_dir_mod(id, cdirs, mod_attrs)); + cdir_dir_mod(id, cdirs, mod_attrs)); } _ { unexpected(p); } } } else if is_view_item(p) { let vi = parse_view_item(p); - ret spanned(lo, vi.span.hi, ast::cdir_view_item(vi)); + ret spanned(lo, vi.span.hi, cdir_view_item(vi)); } else { ret p.fatal("expected crate directive"); } } fn parse_crate_directives(p: parser, term: token::token, - first_outer_attr: [ast::attribute]) -> - [@ast::crate_directive] { + first_outer_attr: [attribute]) -> + [@crate_directive] { // This is pretty ugly. If we have an outer attribute then we can't accept // seeing the terminator next, so if we do see it then fail the same way @@ -2510,7 +2510,7 @@ fn parse_crate_directives(p: parser, term: token::token, expect_keyword(p, "mod"); } - let mut cdirs: [@ast::crate_directive] = []; + let mut cdirs: [@crate_directive] = []; let mut first_outer_attr = first_outer_attr; while p.token != term { let cdir = @parse_crate_directive(p, first_outer_attr);