Skip to content

Commit ead3edb

Browse files
committed
librustc: Update unused mut lint to properly track moved upvars.
1 parent 6559323 commit ead3edb

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

src/librustc/middle/borrowck/check_loans.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -764,18 +764,17 @@ impl<'a> CheckLoanCtxt<'a> {
764764
return;
765765

766766
fn mark_variable_as_used_mut(this: &CheckLoanCtxt,
767-
cmt: mc::cmt) {
767+
mut cmt: mc::cmt) {
768768
//! If the mutability of the `cmt` being written is inherited
769769
//! from a local variable, liveness will
770770
//! not have been able to detect that this variable's mutability
771771
//! is important, so we must add the variable to the
772772
//! `used_mut_nodes` table here.
773773
774-
let mut cmt = cmt;
775774
loop {
776-
debug!("mark_writes_through_upvars_as_used_mut(cmt={})",
777-
cmt.repr(this.tcx()));
775+
debug!("mark_variable_as_used_mut(cmt={})", cmt.repr(this.tcx()));
778776
match cmt.cat.clone() {
777+
mc::cat_copied_upvar(mc::CopiedUpvar { upvar_id: id, .. }) |
779778
mc::cat_local(id) | mc::cat_arg(id) => {
780779
this.tcx().used_mut_nodes.borrow_mut().insert(id);
781780
return;
@@ -792,7 +791,6 @@ impl<'a> CheckLoanCtxt<'a> {
792791

793792
mc::cat_rvalue(..) |
794793
mc::cat_static_item |
795-
mc::cat_copied_upvar(..) |
796794
mc::cat_deref(_, _, mc::UnsafePtr(..)) |
797795
mc::cat_deref(_, _, mc::BorrowedPtr(..)) |
798796
mc::cat_deref(_, _, mc::Implicit(..)) => {

0 commit comments

Comments
 (0)