diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-06-01 15:31:56 -0700 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-06-01 15:31:56 -0700 |
| commit | 23808efd11be2a9f964373bd8d684d98565e58d0 (patch) | |
| tree | 07254eee07e980804e288f37af88415730a4675f /src/libsyntax | |
| parent | 871684376f504dc58b53f5d5cd55ccb7d7f4b2ea (diff) | |
| download | rust-23808efd11be2a9f964373bd8d684d98565e58d0.tar.gz rust-23808efd11be2a9f964373bd8d684d98565e58d0.zip | |
syntax: move callee_id into the expr_ variants
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 26 | ||||
| -rw-r--r-- | src/libsyntax/ast_map.rs | 14 | ||||
| -rw-r--r-- | src/libsyntax/ast_util.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/ext/asm.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/build.rs | 9 | ||||
| -rw-r--r-- | src/libsyntax/ext/concat_idents.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/ext/log_syntax.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/fold.rs | 38 | ||||
| -rw-r--r-- | src/libsyntax/parse/classify.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/parse/mod.rs | 17 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 77 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 10 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 10 |
13 files changed, 127 insertions, 88 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index ac9734ebaa3..dcb41629958 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -436,13 +436,23 @@ pub enum blk_check_mode { default_blk, unsafe_blk, } #[deriving(Eq, Encodable, Decodable)] pub struct expr { id: node_id, - // Extra node ID is only used for index, assign_op, unary, binary, method - // call - callee_id: node_id, node: expr_, span: span, } +pub impl expr { + fn get_callee_id(&self) -> Option<node_id> { + match self.node { + expr_method_call(callee_id, _, _, _, _, _) | + expr_index(callee_id, _, _) | + expr_binary(callee_id, _, _, _) | + expr_assign_op(callee_id, _, _, _) | + expr_unary(callee_id, _, _) => Some(callee_id), + _ => None, + } + } +} + #[deriving(Eq, Encodable, Decodable)] pub enum CallSugar { NoSugar, @@ -455,10 +465,10 @@ pub enum expr_ { expr_vstore(@expr, expr_vstore), expr_vec(~[@expr], mutability), expr_call(@expr, ~[@expr], CallSugar), - expr_method_call(@expr, ident, ~[@Ty], ~[@expr], CallSugar), + expr_method_call(node_id, @expr, ident, ~[@Ty], ~[@expr], CallSugar), expr_tup(~[@expr]), - expr_binary(binop, @expr, @expr), - expr_unary(unop, @expr), + expr_binary(node_id, binop, @expr, @expr), + expr_unary(node_id, unop, @expr), expr_lit(@lit), expr_cast(@expr, @Ty), expr_if(@expr, blk, Option<@expr>), @@ -479,9 +489,9 @@ pub enum expr_ { expr_copy(@expr), expr_assign(@expr, @expr), - expr_assign_op(binop, @expr, @expr), + expr_assign_op(node_id, binop, @expr, @expr), expr_field(@expr, ident, ~[@Ty]), - expr_index(@expr, @expr), + expr_index(node_id, @expr, @expr), expr_path(@Path), /// The special identifier `self`. diff --git a/src/libsyntax/ast_map.rs b/src/libsyntax/ast_map.rs index 48c2df5a894..58769ede961 100644 --- a/src/libsyntax/ast_map.rs +++ b/src/libsyntax/ast_map.rs @@ -317,17 +317,9 @@ pub fn map_struct_def( pub fn map_expr(ex: @expr, cx: @mut Ctx, v: visit::vt<@mut Ctx>) { cx.map.insert(ex.id, node_expr(ex)); - match ex.node { - // Expressions which are or might be calls: - ast::expr_call(*) | - ast::expr_method_call(*) | - ast::expr_index(*) | - ast::expr_binary(*) | - ast::expr_assign_op(*) | - ast::expr_unary(*) => { - cx.map.insert(ex.callee_id, node_callee_scope(ex)); - } - _ => {} + // Expressions which are or might be calls: + for ex.get_callee_id().each |callee_id| { + cx.map.insert(*callee_id, node_callee_scope(ex)); } visit::visit_expr(ex, cx, v); } diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 4da2d500dd8..eab8c0a12d3 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -193,7 +193,7 @@ pub fn float_ty_to_str(t: float_ty) -> ~str { } pub fn is_call_expr(e: @expr) -> bool { - match e.node { expr_call(_, _, _) => true, _ => false } + match e.node { expr_call(*) => true, _ => false } } // This makes def_id hashable @@ -460,7 +460,9 @@ pub fn id_visitor<T: Copy>(vfn: @fn(node_id, T)) -> visit::vt<T> { }, visit_expr: |e, t, vt| { - vfn(e.callee_id, t); + for e.get_callee_id().each |callee_id| { + vfn(*callee_id, t); + } vfn(e.id, t); visit::visit_expr(e, t, vt); }, diff --git a/src/libsyntax/ext/asm.rs b/src/libsyntax/ext/asm.rs index 874c10fae5f..7f8f2be6f6e 100644 --- a/src/libsyntax/ext/asm.rs +++ b/src/libsyntax/ext/asm.rs @@ -82,7 +82,6 @@ pub fn expand_asm(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree]) let out = @ast::expr { id: cx.next_id(), - callee_id: cx.next_id(), span: out.span, node: ast::expr_addr_of(ast::m_mutbl, out) }; @@ -179,7 +178,6 @@ pub fn expand_asm(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree]) MRExpr(@ast::expr { id: cx.next_id(), - callee_id: cx.next_id(), node: ast::expr_inline_asm(ast::inline_asm { asm: @asm, clobbers: @cons, diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 85bebebf0f6..c2fa888995a 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -414,7 +414,6 @@ impl AstBuilder for @ExtCtxt { fn expr(&self, span: span, node: ast::expr_) -> @ast::expr { @ast::expr { id: self.next_id(), - callee_id: self.next_id(), node: node, span: span, } @@ -433,8 +432,7 @@ impl AstBuilder for @ExtCtxt { fn expr_binary(&self, sp: span, op: ast::binop, lhs: @ast::expr, rhs: @ast::expr) -> @ast::expr { - self.next_id(); // see ast_util::op_expr_callee_id - self.expr(sp, ast::expr_binary(op, lhs, rhs)) + self.expr(sp, ast::expr_binary(self.next_id(), op, lhs, rhs)) } fn expr_deref(&self, sp: span, e: @ast::expr) -> @ast::expr { @@ -442,8 +440,7 @@ impl AstBuilder for @ExtCtxt { } fn expr_unary(&self, sp: span, op: ast::unop, e: @ast::expr) -> @ast::expr { - self.next_id(); // see ast_util::op_expr_callee_id - self.expr(sp, ast::expr_unary(op, e)) + self.expr(sp, ast::expr_unary(self.next_id(), op, e)) } fn expr_copy(&self, sp: span, e: @ast::expr) -> @ast::expr { @@ -480,7 +477,7 @@ impl AstBuilder for @ExtCtxt { ident: ast::ident, args: ~[@ast::expr]) -> @ast::expr { self.expr(span, - ast::expr_method_call(expr, ident, ~[], args, ast::NoSugar)) + ast::expr_method_call(self.next_id(), expr, ident, ~[], args, ast::NoSugar)) } fn expr_blk(&self, b: ast::blk) -> @ast::expr { self.expr(b.span, ast::expr_block(b)) diff --git a/src/libsyntax/ext/concat_idents.rs b/src/libsyntax/ext/concat_idents.rs index 788f047773a..358f4041dd0 100644 --- a/src/libsyntax/ext/concat_idents.rs +++ b/src/libsyntax/ext/concat_idents.rs @@ -37,7 +37,6 @@ pub fn expand_syntax_ext(cx: @ExtCtxt, sp: span, tts: &[ast::token_tree]) let e = @ast::expr { id: cx.next_id(), - callee_id: cx.next_id(), node: ast::expr_path( @ast::Path { span: sp, diff --git a/src/libsyntax/ext/log_syntax.rs b/src/libsyntax/ext/log_syntax.rs index 95cf4a18ab4..598537c97e8 100644 --- a/src/libsyntax/ext/log_syntax.rs +++ b/src/libsyntax/ext/log_syntax.rs @@ -33,7 +33,6 @@ pub fn expand_syntax_ext(cx: @ExtCtxt, //trivial expression MRExpr(@ast::expr { id: cx.next_id(), - callee_id: cx.next_id(), node: ast::expr_lit(@codemap::spanned { node: ast::lit_nil, span: sp diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 27a10c36ead..5800254eaa4 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -463,8 +463,9 @@ pub fn noop_fold_expr(e: &expr_, fld: @ast_fold) -> expr_ { blk ) } - expr_method_call(f, i, ref tps, ref args, blk) => { + expr_method_call(callee_id, f, i, ref tps, ref args, blk) => { expr_method_call( + fld.new_id(callee_id), fld.fold_expr(f), fld.fold_ident(i), tps.map(|x| fld.fold_ty(*x)), @@ -472,10 +473,21 @@ pub fn noop_fold_expr(e: &expr_, fld: @ast_fold) -> expr_ { blk ) } - expr_binary(binop, lhs, rhs) => { - expr_binary(binop, fld.fold_expr(lhs), fld.fold_expr(rhs)) + expr_binary(callee_id, binop, lhs, rhs) => { + expr_binary( + fld.new_id(callee_id), + binop, + fld.fold_expr(lhs), + fld.fold_expr(rhs) + ) + } + expr_unary(callee_id, binop, ohs) => { + expr_unary( + fld.new_id(callee_id), + binop, + fld.fold_expr(ohs) + ) } - expr_unary(binop, ohs) => expr_unary(binop, fld.fold_expr(ohs)), expr_loop_body(f) => expr_loop_body(fld.fold_expr(f)), expr_do_body(f) => expr_do_body(fld.fold_expr(f)), expr_lit(_) => copy *e, @@ -514,8 +526,13 @@ pub fn noop_fold_expr(e: &expr_, fld: @ast_fold) -> expr_ { expr_assign(el, er) => { expr_assign(fld.fold_expr(el), fld.fold_expr(er)) } - expr_assign_op(op, el, er) => { - expr_assign_op(op, fld.fold_expr(el), fld.fold_expr(er)) + expr_assign_op(callee_id, op, el, er) => { + expr_assign_op( + fld.new_id(callee_id), + op, + fld.fold_expr(el), + fld.fold_expr(er) + ) } expr_field(el, id, ref tys) => { expr_field( @@ -523,8 +540,12 @@ pub fn noop_fold_expr(e: &expr_, fld: @ast_fold) -> expr_ { tys.map(|x| fld.fold_ty(*x)) ) } - expr_index(el, er) => { - expr_index(fld.fold_expr(el), fld.fold_expr(er)) + expr_index(callee_id, el, er) => { + expr_index( + fld.new_id(callee_id), + fld.fold_expr(el), + fld.fold_expr(er) + ) } expr_path(pth) => expr_path(fld.fold_path(pth)), expr_self => expr_self, @@ -801,7 +822,6 @@ impl ast_fold for AstFoldFns { let (n, s) = (self.fold_expr)(&x.node, x.span, self as @ast_fold); @expr { id: (self.new_id)(x.id), - callee_id: (self.new_id)(x.callee_id), node: n, span: (self.new_span)(s), } diff --git a/src/libsyntax/parse/classify.rs b/src/libsyntax/parse/classify.rs index e04914c0f1e..62b36b12f26 100644 --- a/src/libsyntax/parse/classify.rs +++ b/src/libsyntax/parse/classify.rs @@ -31,8 +31,8 @@ pub fn expr_requires_semi_to_be_stmt(e: @ast::expr) -> bool { | ast::expr_loop(*) | ast::expr_call(_, _, ast::DoSugar) | ast::expr_call(_, _, ast::ForSugar) - | ast::expr_method_call(_, _, _, _, ast::DoSugar) - | ast::expr_method_call(_, _, _, _, ast::ForSugar) => false, + | ast::expr_method_call(_, _, _, _, _, ast::DoSugar) + | ast::expr_method_call(_, _, _, _, _, ast::ForSugar) => false, _ => true } } diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 9d5cb131fec..9c716f5631f 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -385,7 +385,6 @@ mod test { #[test] fn path_exprs_1 () { assert_eq!(string_to_expr(@~"a"), @ast::expr{id:1, - callee_id:2, node:ast::expr_path(@ast::Path {span:sp(0,1), global:false, idents:~[intern("a")], @@ -397,7 +396,6 @@ mod test { #[test] fn path_exprs_2 () { assert_eq!(string_to_expr(@~"::a::b"), @ast::expr{id:1, - callee_id:2, node:ast::expr_path( @ast::Path {span:sp(0,6), global:true, @@ -445,10 +443,9 @@ mod test { #[test] fn ret_expr() { assert_eq!(string_to_expr(@~"return d"), - @ast::expr{id:3, - callee_id:4, + @ast::expr{id:2, node:ast::expr_ret( - Some(@ast::expr{id:1,callee_id:2, + Some(@ast::expr{id:1, node:ast::expr_path( @ast::Path{span:sp(7,8), global:false, @@ -465,7 +462,6 @@ mod test { @spanned{ node: ast::stmt_expr(@ast::expr{ id: 1, - callee_id: 2, node: ast::expr_path( @ast::Path{ span:sp(0,1), @@ -474,7 +470,7 @@ mod test { rp:None, types: ~[]}), span: sp(0,1)}, - 3), // fixme + 2), // fixme span: sp(0,1)}) } @@ -538,7 +534,7 @@ mod test { Some( @ast::item{ident:intern("a"), attrs:~[], - id: 10, // fixme + id: 9, // fixme node: ast::item_fn(ast::fn_decl{ inputs: ~[ast::arg{ is_mutbl: false, @@ -583,7 +579,6 @@ mod test { stmts: ~[@spanned{ node: ast::stmt_semi(@ast::expr{ id: 6, - callee_id: 7, node: ast::expr_path( @ast::Path{ span:sp(17,18), @@ -592,10 +587,10 @@ mod test { rp:None, types: ~[]}), span: sp(17,18)}, - 8), // fixme + 7), // fixme span: sp(17,18)}], expr: None, - id: 9, // fixme + id: 8, // fixme rules: ast::default_blk // no idea }}), vis: ast::inherited, diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 00ad12ce402..f013dfaceba 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -926,7 +926,7 @@ impl Parser { if minus_present { let minus_hi = self.span.hi; - self.mk_expr(minus_lo, minus_hi, expr_unary(neg, expr)) + self.mk_expr(minus_lo, minus_hi, self.mk_unary(neg, expr)) } else { expr } @@ -1168,16 +1168,47 @@ impl Parser { pub fn mk_expr(&self, lo: BytePos, hi: BytePos, node: expr_) -> @expr { @expr { id: self.get_id(), - callee_id: self.get_id(), node: node, span: mk_sp(lo, hi), } } + pub fn mk_unary(&self, unop: ast::unop, expr: @expr) -> ast::expr_ { + expr_unary(self.get_id(), unop, expr) + } + + pub fn mk_binary(&self, binop: ast::binop, lhs: @expr, rhs: @expr) -> ast::expr_ { + expr_binary(self.get_id(), binop, lhs, rhs) + } + + pub fn mk_call(&self, f: @expr, args: ~[@expr], sugar: CallSugar) -> ast::expr_ { + expr_call(f, args, sugar) + } + + pub fn mk_method_call(&self, + rcvr: @expr, + ident: ident, + tps: ~[@Ty], + args: ~[@expr], + sugar: CallSugar) -> ast::expr_ { + expr_method_call(self.get_id(), rcvr, ident, tps, args, sugar) + } + + pub fn mk_index(&self, expr: @expr, idx: @expr) -> ast::expr_ { + expr_index(self.get_id(), expr, idx) + } + + pub fn mk_field(&self, expr: @expr, ident: ident, tys: ~[@Ty]) -> ast::expr_ { + expr_field(expr, ident, tys) + } + + pub fn mk_assign_op(&self, binop: ast::binop, lhs: @expr, rhs: @expr) -> ast::expr_ { + expr_assign_op(self.get_id(), binop, lhs, rhs) + } + pub fn mk_mac_expr(&self, lo: BytePos, hi: BytePos, m: mac_) -> @expr { @expr { id: self.get_id(), - callee_id: self.get_id(), node: expr_mac(codemap::spanned {node: m, span: mk_sp(lo, hi)}), span: mk_sp(lo, hi), } @@ -1192,7 +1223,6 @@ impl Parser { @expr { id: self.get_id(), - callee_id: self.get_id(), node: expr_lit(lv_lit), span: *span, } @@ -1454,11 +1484,11 @@ impl Parser { ); hi = self.span.hi; - let nd = expr_method_call(e, i, tys, es, NoSugar); + let nd = self.mk_method_call(e, i, tys, es, NoSugar); e = self.mk_expr(lo, hi, nd); } _ => { - e = self.mk_expr(lo, hi, expr_field(e, i, tys)); + e = self.mk_expr(lo, hi, self.mk_field(e, i, tys)); } } } @@ -1478,7 +1508,7 @@ impl Parser { ); hi = self.span.hi; - let nd = expr_call(e, es, NoSugar); + let nd = self.mk_call(e, es, NoSugar); e = self.mk_expr(lo, hi, nd); } @@ -1488,7 +1518,7 @@ impl Parser { let ix = self.parse_expr(); hi = ix.span.hi; self.expect(&token::RBRACKET); - e = self.mk_expr(lo, hi, expr_index(e, ix)); + e = self.mk_expr(lo, hi, self.mk_index(e, ix)); } _ => return e @@ -1703,7 +1733,7 @@ impl Parser { self.bump(); let e = self.parse_prefix_expr(); hi = e.span.hi; - ex = expr_unary(not, e); + ex = self.mk_unary(not, e); } token::BINOP(b) => { match b { @@ -1711,13 +1741,13 @@ impl Parser { self.bump(); let e = self.parse_prefix_expr(); hi = e.span.hi; - ex = expr_unary(neg, e); + ex = self.mk_unary(neg, e); } token::STAR => { self.bump(); let e = self.parse_prefix_expr(); hi = e.span.hi; - ex = expr_unary(deref, e); + ex = self.mk_unary(deref, e); } token::AND => { self.bump(); @@ -1758,7 +1788,7 @@ impl Parser { expr_vec(*) | expr_lit(@codemap::spanned { node: lit_str(_), span: _}) | expr_repeat(*) if m == m_imm => expr_vstore(e, expr_vstore_box), - _ => expr_unary(box(m), e) + _ => self.mk_unary(box(m), e) }; } token::TILDE => { @@ -1776,7 +1806,7 @@ impl Parser { expr_lit(@codemap::spanned { node: lit_str(_), span: _}) | expr_repeat(*) if m == m_imm => expr_vstore(e, expr_vstore_uniq), - _ => expr_unary(uniq(m), e) + _ => self.mk_unary(uniq(m), e) }; } _ => return self.parse_dot_or_call_expr() @@ -1810,7 +1840,7 @@ impl Parser { let expr = self.parse_prefix_expr(); let rhs = self.parse_more_binops(expr, cur_prec); let bin = self.mk_expr(lhs.span.lo, rhs.span.hi, - expr_binary(cur_op, lhs, rhs)); + self.mk_binary(cur_op, lhs, rhs)); self.parse_more_binops(bin, min_prec) } else { lhs @@ -1860,7 +1890,7 @@ impl Parser { token::SHR => aop = shr } self.mk_expr(lo, rhs.span.hi, - expr_assign_op(aop, lhs, rhs)) + self.mk_assign_op(aop, lhs, rhs)) } token::LARROW => { self.obsolete(*self.span, ObsoleteBinaryMove); @@ -1992,30 +2022,30 @@ impl Parser { let args = vec::append(copy *args, [last_arg]); self.mk_expr(lo.lo, block.span.hi, expr_call(f, args, sugar)) } - expr_method_call(f, i, ref tps, ref args, NoSugar) => { + expr_method_call(_, f, i, ref tps, ref args, NoSugar) => { let block = self.parse_lambda_block_expr(); let last_arg = self.mk_expr(block.span.lo, block.span.hi, ctor(block)); let args = vec::append(copy *args, [last_arg]); self.mk_expr(lo.lo, block.span.hi, - expr_method_call(f, i, copy *tps, - args, sugar)) + self.mk_method_call(f, i, copy *tps, args, sugar)) } expr_field(f, i, ref tps) => { let block = self.parse_lambda_block_expr(); let last_arg = self.mk_expr(block.span.lo, block.span.hi, ctor(block)); self.mk_expr(lo.lo, block.span.hi, - expr_method_call(f, i, - copy *tps, ~[last_arg], sugar)) + self.mk_method_call(f, i, copy *tps, ~[last_arg], sugar)) } expr_path(*) | expr_call(*) | expr_method_call(*) | expr_paren(*) => { let block = self.parse_lambda_block_expr(); let last_arg = self.mk_expr(block.span.lo, block.span.hi, ctor(block)); - self.mk_expr(lo.lo, last_arg.span.hi, - expr_call(e, ~[last_arg], sugar)) + self.mk_expr( + lo.lo, + last_arg.span.hi, + self.mk_call(e, ~[last_arg], sugar)) } _ => { // There may be other types of expressions that can @@ -2274,7 +2304,6 @@ impl Parser { }) => { let vst = @expr { id: self.get_id(), - callee_id: self.get_id(), node: expr_vstore(e, expr_vstore_box), span: mk_sp(lo, hi), }; @@ -2297,7 +2326,6 @@ impl Parser { }) => { let vst = @expr { id: self.get_id(), - callee_id: self.get_id(), node: expr_vstore(e, expr_vstore_uniq), span: mk_sp(lo, hi), }; @@ -2320,7 +2348,6 @@ impl Parser { }) => { let vst = @expr { id: self.get_id(), - callee_id: self.get_id(), node: expr_vstore(e, expr_vstore_slice), span: mk_sp(lo, hi) }; diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index f29876b8708..7ab38a6ba5f 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1164,7 +1164,7 @@ pub fn print_expr(s: @ps, expr: @ast::expr) { print_expr(s, func); print_call_post(s, sugar, &blk, &mut base_args); } - ast::expr_method_call(func, ident, ref tys, ref args, sugar) => { + ast::expr_method_call(_, func, ident, ref tys, ref args, sugar) => { let mut base_args = copy *args; let blk = print_call_pre(s, sugar, &mut base_args); print_expr(s, func); @@ -1177,13 +1177,13 @@ pub fn print_expr(s: @ps, expr: @ast::expr) { } print_call_post(s, sugar, &blk, &mut base_args); } - ast::expr_binary(op, lhs, rhs) => { + ast::expr_binary(_, op, lhs, rhs) => { print_expr(s, lhs); space(s.s); word_space(s, ast_util::binop_to_str(op)); print_expr(s, rhs); } - ast::expr_unary(op, expr) => { + ast::expr_unary(_, op, expr) => { word(s.s, ast_util::unop_to_str(op)); print_expr(s, expr); } @@ -1335,7 +1335,7 @@ pub fn print_expr(s: @ps, expr: @ast::expr) { word_space(s, "="); print_expr(s, rhs); } - ast::expr_assign_op(op, lhs, rhs) => { + ast::expr_assign_op(_, op, lhs, rhs) => { print_expr(s, lhs); space(s.s); word(s.s, ast_util::binop_to_str(op)); @@ -1352,7 +1352,7 @@ pub fn print_expr(s: @ps, expr: @ast::expr) { word(s.s, ">"); } } - ast::expr_index(expr, index) => { + ast::expr_index(_, expr, index) => { print_expr(s, expr); word(s.s, "["); print_expr(s, index); diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index a2b89243cfd..0cb22737a53 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -471,16 +471,16 @@ pub fn visit_expr<E: Copy>(ex: @expr, e: E, v: vt<E>) { visit_exprs(*args, e, v); (v.visit_expr)(callee, e, v); } - expr_method_call(callee, _, ref tys, ref args, _) => { + expr_method_call(_, callee, _, ref tys, ref args, _) => { visit_exprs(*args, e, v); for tys.each |tp| { (v.visit_ty)(*tp, e, v); } (v.visit_expr)(callee, e, v); } - expr_binary(_, a, b) => { + expr_binary(_, _, a, b) => { (v.visit_expr)(a, e, v); (v.visit_expr)(b, e, v); } - expr_addr_of(_, x) | expr_unary(_, x) | + expr_addr_of(_, x) | expr_unary(_, _, x) | expr_loop_body(x) | expr_do_body(x) => (v.visit_expr)(x, e, v), expr_lit(_) => (), expr_cast(x, t) => { @@ -518,7 +518,7 @@ pub fn visit_expr<E: Copy>(ex: @expr, e: E, v: vt<E>) { (v.visit_expr)(a, e, v); } expr_copy(a) => (v.visit_expr)(a, e, v), - expr_assign_op(_, a, b) => { + expr_assign_op(_, _, a, b) => { (v.visit_expr)(b, e, v); (v.visit_expr)(a, e, v); } @@ -526,7 +526,7 @@ pub fn visit_expr<E: Copy>(ex: @expr, e: E, v: vt<E>) { (v.visit_expr)(x, e, v); for tys.each |tp| { (v.visit_ty)(*tp, e, v); } } - expr_index(a, b) => { + expr_index(_, a, b) => { (v.visit_expr)(a, e, v); (v.visit_expr)(b, e, v); } |
