diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index 8439b439d7649..dbf8ce3db3b66 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -18,9 +18,8 @@ use middle::const_eval::{const_expr_to_pat, lookup_const_by_id}; use middle::const_eval::EvalHint::ExprTypeChecked; use middle::def::*; use middle::def_id::{DefId}; -use middle::expr_use_visitor::{ConsumeMode, Delegate, ExprUseVisitor, Init}; -use middle::expr_use_visitor::{JustWrite, LoanCause, MutateMode}; -use middle::expr_use_visitor::WriteAndRead; +use middle::expr_use_visitor::{ConsumeMode, Delegate, ExprUseVisitor}; +use middle::expr_use_visitor::{LoanCause, MutateMode}; use middle::expr_use_visitor as euv; use middle::infer; use middle::mem_categorization::{cmt}; @@ -1160,10 +1159,10 @@ impl<'a, 'tcx> Delegate<'tcx> for MutationChecker<'a, 'tcx> { fn decl_without_init(&mut self, _: NodeId, _: Span) {} fn mutate(&mut self, _: NodeId, span: Span, _: cmt, mode: MutateMode) { match mode { - JustWrite | WriteAndRead => { + MutateMode::JustWrite | MutateMode::WriteAndRead => { span_err!(self.cx.tcx.sess, span, E0302, "cannot assign in a pattern guard") } - Init => {} + MutateMode::Init => {} } } } diff --git a/src/librustc/middle/expr_use_visitor.rs b/src/librustc/middle/expr_use_visitor.rs index 0273d1a76e9a8..9584d118bc3e5 100644 --- a/src/librustc/middle/expr_use_visitor.rs +++ b/src/librustc/middle/expr_use_visitor.rs @@ -12,7 +12,6 @@ //! normal visitor, which just walks the entire body in one shot, the //! `ExprUseVisitor` determines how expressions are being used. -pub use self::MutateMode::*; pub use self::LoanCause::*; pub use self::ConsumeMode::*; pub use self::MoveReason::*; @@ -465,7 +464,11 @@ impl<'d,'t,'a,'tcx> ExprUseVisitor<'d,'t,'a,'tcx> { self.consume_expr(&*output.expr); } else { self.mutate_expr(expr, &*output.expr, - if output.is_rw { WriteAndRead } else { JustWrite }); + if output.is_rw { + MutateMode::WriteAndRead + } else { + MutateMode::JustWrite + }); } } } @@ -519,7 +522,7 @@ impl<'d,'t,'a,'tcx> ExprUseVisitor<'d,'t,'a,'tcx> { } hir::ExprAssign(ref lhs, ref rhs) => { - self.mutate_expr(expr, &**lhs, JustWrite); + self.mutate_expr(expr, &**lhs, MutateMode::JustWrite); self.consume_expr(&**rhs); } @@ -532,7 +535,7 @@ impl<'d,'t,'a,'tcx> ExprUseVisitor<'d,'t,'a,'tcx> { assert!(::rustc_front::util::is_by_value_binop(op.node)); if !self.walk_overloaded_operator(expr, lhs, vec![rhs], PassArgs::ByValue) { - self.mutate_expr(expr, &**lhs, WriteAndRead); + self.mutate_expr(expr, &**lhs, MutateMode::WriteAndRead); self.consume_expr(&**rhs); } } @@ -991,7 +994,7 @@ impl<'d,'t,'a,'tcx> ExprUseVisitor<'d,'t,'a,'tcx> { let def = def_map.borrow().get(&pat.id).unwrap().full_def(); match mc.cat_def(pat.id, pat.span, pat_ty, def) { Ok(binding_cmt) => { - delegate.mutate(pat.id, pat.span, binding_cmt, Init); + delegate.mutate(pat.id, pat.span, binding_cmt, MutateMode::Init); } Err(_) => { } } diff --git a/src/librustc_borrowck/borrowck/check_loans.rs b/src/librustc_borrowck/borrowck/check_loans.rs index df181aec4ea4c..2d30b827750ac 100644 --- a/src/librustc_borrowck/borrowck/check_loans.rs +++ b/src/librustc_borrowck/borrowck/check_loans.rs @@ -21,6 +21,7 @@ use self::UseError::*; use borrowck::*; use borrowck::InteriorKind::{InteriorElement, InteriorField}; use rustc::middle::expr_use_visitor as euv; +use rustc::middle::expr_use_visitor::MutateMode; use rustc::middle::infer; use rustc::middle::mem_categorization as mc; use rustc::middle::mem_categorization::Categorization; @@ -161,7 +162,7 @@ impl<'a, 'tcx> euv::Delegate<'tcx> for CheckLoanCtxt<'a, 'tcx> { match opt_loan_path(&assignee_cmt) { Some(lp) => { match mode { - euv::Init | euv::JustWrite => { + MutateMode::Init | MutateMode::JustWrite => { // In a case like `path = 1`, then path does not // have to be *FULLY* initialized, but we still // must be careful lest it contains derefs of @@ -171,7 +172,7 @@ impl<'a, 'tcx> euv::Delegate<'tcx> for CheckLoanCtxt<'a, 'tcx> { MovedInUse, &lp); } - euv::WriteAndRead => { + MutateMode::WriteAndRead => { // In a case like `path += 1`, then path must be // fully initialized, since we will read it before // we write it. diff --git a/src/librustc_borrowck/borrowck/move_data.rs b/src/librustc_borrowck/borrowck/move_data.rs index 62404a73ad3be..735e618cc732b 100644 --- a/src/librustc_borrowck/borrowck/move_data.rs +++ b/src/librustc_borrowck/borrowck/move_data.rs @@ -20,6 +20,7 @@ use rustc::middle::dataflow::BitwiseOperator; use rustc::middle::dataflow::DataFlowOperator; use rustc::middle::dataflow::KillFrom; use rustc::middle::expr_use_visitor as euv; +use rustc::middle::expr_use_visitor::MutateMode; use rustc::middle::ty; use rustc::util::nodemap::{FnvHashMap, NodeSet}; @@ -406,10 +407,10 @@ impl<'tcx> MoveData<'tcx> { self.fragments.borrow_mut().add_assignment(path_index); match mode { - euv::Init | euv::JustWrite => { + MutateMode::Init | MutateMode::JustWrite => { self.assignee_ids.borrow_mut().insert(assignee_id); } - euv::WriteAndRead => { } + MutateMode::WriteAndRead => { } } let assignment = Assignment {