From: Alex Crichton Date: Mon, 27 Oct 2014 16:07:56 +0000 (-0700) Subject: rollup merge of #18337 : bkoropoff/unboxed-imm-upvar-fixes X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=1cc938a69adddc4b8b529c12aec62909c35dd704;p=rust.git rollup merge of #18337 : bkoropoff/unboxed-imm-upvar-fixes --- 1cc938a69adddc4b8b529c12aec62909c35dd704 diff --cc src/librustc/middle/borrowck/check_loans.rs index f5e849f4196,bdcf01b21ab..de61f4f2b40 --- a/src/librustc/middle/borrowck/check_loans.rs +++ b/src/librustc/middle/borrowck/check_loans.rs @@@ -831,6 -845,16 +845,15 @@@ impl<'a, 'tcx> CheckLoanCtxt<'a, 'tcx> return; } + mc::cat_deref(_, _, mc::BorrowedPtr(..)) => { + assert_eq!(cmt.mutbl, mc::McDeclared); + // We need to drill down to upvar if applicable + match cmt.upvar() { + Some(b) => cmt = b, + None => return + } + } + - mc::cat_discr(b, _) | mc::cat_deref(b, _, mc::OwnedPtr) => { assert_eq!(cmt.mutbl, mc::McInherited); cmt = b;