parent
03f6060e80
commit
e98286b594
9 changed files with 114 additions and 83 deletions
|
|
@ -76,9 +76,8 @@ tag meta_item_ {
|
|||
|
||||
type blk = spanned<blk_>;
|
||||
|
||||
type blk_ =
|
||||
{stmts: [@stmt], expr: option::t<@expr>, id: node_id,
|
||||
rules: blk_check_mode};
|
||||
type blk_ = {view_items: [@view_item], stmts: [@stmt], expr: option::t<@expr>,
|
||||
id: node_id, rules: blk_check_mode};
|
||||
|
||||
type pat = {id: node_id, node: pat_, span: span};
|
||||
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ fn block_from_expr(e: @expr) -> blk {
|
|||
|
||||
fn default_block(stmts1: [@stmt], expr1: option::t<@expr>, id1: node_id) ->
|
||||
blk_ {
|
||||
ret {stmts: stmts1, expr: expr1, id: id1, rules: default_blk};
|
||||
{view_items: [], stmts: stmts1, expr: expr1, id: id1, rules: default_blk}
|
||||
}
|
||||
|
||||
fn obj_field_from_anon_obj_field(f: anon_obj_field) -> obj_field {
|
||||
|
|
|
|||
|
|
@ -247,7 +247,8 @@ fn noop_fold_method(m: method_, fld: ast_fold) -> method_ {
|
|||
|
||||
|
||||
fn noop_fold_block(b: blk_, fld: ast_fold) -> blk_ {
|
||||
ret {stmts: vec::map(fld.fold_stmt, b.stmts),
|
||||
ret {view_items: vec::map(fld.fold_view_item, b.view_items),
|
||||
stmts: vec::map(fld.fold_stmt, b.stmts),
|
||||
expr: option::map(fld.fold_expr, b.expr),
|
||||
id: b.id,
|
||||
rules: b.rules};
|
||||
|
|
|
|||
|
|
@ -1697,8 +1697,8 @@ fn parse_block_no_value(p: parser) -> ast::blk {
|
|||
// 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 {
|
||||
let stmts: [@ast::stmt] = [];
|
||||
let expr: option::t<@ast::expr> = none;
|
||||
let view_items = [], stmts = [], expr = none;
|
||||
while is_word(p, "import") { view_items += [parse_view_item(p)]; }
|
||||
while p.peek() != token::RBRACE {
|
||||
alt p.peek() {
|
||||
token::SEMI. {
|
||||
|
|
@ -1736,7 +1736,8 @@ fn parse_block_tail(p: parser, lo: uint, s: ast::blk_check_mode) -> ast::blk {
|
|||
}
|
||||
let hi = p.get_hi_pos();
|
||||
p.bump();
|
||||
let bloc = {stmts: stmts, expr: expr, id: p.get_id(), rules: s};
|
||||
let bloc = {view_items: view_items, stmts: stmts, expr: expr,
|
||||
id: p.get_id(), rules: s};
|
||||
ret spanned(lo, hi, bloc);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -200,7 +200,8 @@ fn visit_fn<E>(f: _fn, _tp: [ty_param], _sp: span, _i: fn_ident, _id: node_id,
|
|||
}
|
||||
|
||||
fn visit_block<E>(b: ast::blk, e: E, v: vt<E>) {
|
||||
for s: @stmt in b.node.stmts { v.visit_stmt(s, e, v); }
|
||||
for vi in b.node.view_items { v.visit_view_item(vi, e, v); }
|
||||
for s in b.node.stmts { v.visit_stmt(s, e, v); }
|
||||
visit_expr_opt(b.node.expr, e, v);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue