Skip to content

Commit b9af043

Browse files
committed
Address nits from @pnkfelix
1 parent 4b80ff9 commit b9af043

File tree

1 file changed

+41
-42
lines changed

1 file changed

+41
-42
lines changed

src/librustc/middle/expr_use_visitor.rs

+41-42
Original file line numberDiff line numberDiff line change
@@ -26,32 +26,9 @@ use util::ppaux::Repr;
2626

2727
///////////////////////////////////////////////////////////////////////////
2828
// The Delegate trait
29-
//
30-
// This trait defines the callbacks you can expect to receiver when
31-
// employing the ExprUseVisitor.
32-
33-
#[deriving(Eq)]
34-
pub enum LoanCause {
35-
ClosureCapture(Span),
36-
AddrOf,
37-
AutoRef,
38-
RefBinding,
39-
OverloadedOperator,
40-
ClosureInvocation
41-
}
42-
43-
#[deriving(Eq,Show)]
44-
pub enum ConsumeMode {
45-
Copy, // reference to x where x has a type that copies
46-
Move, // reference to x where x has a type that moves
47-
}
48-
49-
#[deriving(Eq,Show)]
50-
pub enum MutateMode {
51-
JustWrite, // x = y
52-
WriteAndRead, // x += y
53-
}
5429

30+
/// This trait defines the callbacks you can expect to receive when
31+
/// employing the ExprUseVisitor.
5532
pub trait Delegate {
5633
// The value found at `cmt` is either copied or moved, depending
5734
// on mode.
@@ -91,6 +68,28 @@ pub trait Delegate {
9168
mode: MutateMode);
9269
}
9370

71+
#[deriving(Eq)]
72+
pub enum LoanCause {
73+
ClosureCapture(Span),
74+
AddrOf,
75+
AutoRef,
76+
RefBinding,
77+
OverloadedOperator,
78+
ClosureInvocation
79+
}
80+
81+
#[deriving(Eq,Show)]
82+
pub enum ConsumeMode {
83+
Copy, // reference to x where x has a type that copies
84+
Move, // reference to x where x has a type that moves
85+
}
86+
87+
#[deriving(Eq,Show)]
88+
pub enum MutateMode {
89+
JustWrite, // x = y
90+
WriteAndRead, // x += y
91+
}
92+
9493
///////////////////////////////////////////////////////////////////////////
9594
// The ExprUseVisitor type
9695
//
@@ -112,7 +111,7 @@ pub struct ExprUseVisitor<'d,'t,TYPER> {
112111
//
113112
// Note that this macro appears similar to try!(), but, unlike try!(),
114113
// it does not propagate the error.
115-
macro_rules! ignore_err(
114+
macro_rules! return_if_err(
116115
($inp: expr) => (
117116
match $inp {
118117
Ok(v) => v,
@@ -174,7 +173,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
174173
fn consume_expr(&mut self, expr: &ast::Expr) {
175174
debug!("consume_expr(expr={})", expr.repr(self.tcx()));
176175

177-
let cmt = ignore_err!(self.mc.cat_expr(expr));
176+
let cmt = return_if_err!(self.mc.cat_expr(expr));
178177
self.delegate_consume(expr.id, expr.span, cmt);
179178

180179
match expr.node {
@@ -200,7 +199,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
200199
assignment_expr: &ast::Expr,
201200
expr: &ast::Expr,
202201
mode: MutateMode) {
203-
let cmt = ignore_err!(self.mc.cat_expr(expr));
202+
let cmt = return_if_err!(self.mc.cat_expr(expr));
204203
self.delegate.mutate(assignment_expr.id, assignment_expr.span, cmt, mode);
205204
self.walk_expr(expr);
206205
}
@@ -213,7 +212,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
213212
debug!("borrow_expr(expr={}, r={}, bk={})",
214213
expr.repr(self.tcx()), r.repr(self.tcx()), bk.repr(self.tcx()));
215214

216-
let cmt = ignore_err!(self.mc.cat_expr(expr));
215+
let cmt = return_if_err!(self.mc.cat_expr(expr));
217216
self.delegate.borrow(expr.id, expr.span, cmt, r, bk, cause);
218217

219218
// Note: Unlike consume, we can ignore ExprParen. cat_expr
@@ -284,7 +283,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
284283
// treatment of the discriminant is handled while
285284
// walking the arms:
286285
self.walk_expr(discr);
287-
let discr_cmt = ignore_err!(self.mc.cat_expr(discr));
286+
let discr_cmt = return_if_err!(self.mc.cat_expr(discr));
288287
for arm in arms.iter() {
289288
self.walk_arm(discr_cmt.clone(), arm);
290289
}
@@ -471,7 +470,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
471470
// "assigns", which is handled by
472471
// `walk_pat`:
473472
self.walk_expr(expr);
474-
let init_cmt = ignore_err!(self.mc.cat_expr(expr));
473+
let init_cmt = return_if_err!(self.mc.cat_expr(expr));
475474
self.walk_pat(init_cmt, local.pat);
476475
}
477476
}
@@ -508,7 +507,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
508507
None => { return; }
509508
};
510509

511-
let with_cmt = ignore_err!(self.mc.cat_expr(with_expr));
510+
let with_cmt = return_if_err!(self.mc.cat_expr(with_expr));
512511

513512
// Select just those fields of the `with`
514513
// expression that will actually be used
@@ -558,7 +557,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
558557
// input and stores it into the resulting rvalue.
559558
debug!("walk_adjustment(AutoAddEnv|AutoObject)");
560559
let cmt_unadjusted =
561-
ignore_err!(self.mc.cat_expr_unadjusted(expr));
560+
return_if_err!(self.mc.cat_expr_unadjusted(expr));
562561
self.delegate_consume(expr.id, expr.span, cmt_unadjusted);
563562
}
564563
ty::AutoDerefRef(ty::AutoDerefRef {
@@ -596,7 +595,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
596595
match self.typer.node_method_ty(deref_id) {
597596
None => {}
598597
Some(method_ty) => {
599-
let cmt = ignore_err!(self.mc.cat_expr_autoderefd(expr, i));
598+
let cmt = return_if_err!(self.mc.cat_expr_autoderefd(expr, i));
600599
let self_ty = *ty::ty_fn_args(method_ty).get(0);
601600
let (m, r) = match ty::get(self_ty).sty {
602601
ty::ty_rptr(r, ref m) => (m.mutbl, r),
@@ -618,7 +617,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
618617
autoderefs: uint) {
619618
debug!("walk_autoref expr={} autoderefs={}", expr.repr(self.tcx()), autoderefs);
620619

621-
let cmt_derefd = ignore_err!(
620+
let cmt_derefd = return_if_err!(
622621
self.mc.cat_expr_autoderefd(expr, autoderefs));
623622

624623
debug!("walk_autoref: cmt_derefd={}", cmt_derefd.repr(self.tcx()));
@@ -699,7 +698,7 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
699698
let tcx = typer.tcx();
700699
let def_map = &self.typer.tcx().def_map;
701700
let delegate = &mut self.delegate;
702-
ignore_err!(mc.cat_pattern(cmt_discr, pat, |mc, cmt_pat, pat| {
701+
return_if_err!(mc.cat_pattern(cmt_discr, pat, |mc, cmt_pat, pat| {
703702
if pat_util::pat_is_binding(def_map, pat) {
704703
let tcx = typer.tcx();
705704

@@ -810,9 +809,9 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
810809
freevars: &[freevars::freevar_entry]) {
811810
for freevar in freevars.iter() {
812811
let id_var = ast_util::def_id_of_def(freevar.def).node;
813-
let cmt_var = ignore_err!(self.cat_captured_var(closure_expr.id,
814-
closure_expr.span,
815-
freevar.def));
812+
let cmt_var = return_if_err!(self.cat_captured_var(closure_expr.id,
813+
closure_expr.span,
814+
freevar.def));
816815

817816
// Lookup the kind of borrow the callee requires, as
818817
// inferred by regionbk
@@ -834,9 +833,9 @@ impl<'d,'t,TYPER:mc::Typer> ExprUseVisitor<'d,'t,TYPER> {
834833
closure_expr: &ast::Expr,
835834
freevars: &[freevars::freevar_entry]) {
836835
for freevar in freevars.iter() {
837-
let cmt_var = ignore_err!(self.cat_captured_var(closure_expr.id,
838-
closure_expr.span,
839-
freevar.def));
836+
let cmt_var = return_if_err!(self.cat_captured_var(closure_expr.id,
837+
closure_expr.span,
838+
freevar.def));
840839
self.delegate_consume(closure_expr.id, freevar.span, cmt_var);
841840
}
842841
}

0 commit comments

Comments
 (0)