]> git.lizzy.rs Git - rust.git/blobdiff - src/escape.rs
Rustup to 1.9.0-nightly (5ab11d72c 2016-04-02)
[rust.git] / src / escape.rs
index bcc1cb16870fd9ccf4fbc107f34422c0915753f1..98500bf62f016ba78178409d95c69eeada040c18 100644 (file)
@@ -1,10 +1,11 @@
 use rustc::front::map::Node::{NodeExpr, NodeStmt};
 use rustc::lint::*;
 use rustc::middle::expr_use_visitor::*;
-use rustc::middle::infer;
+use rustc::infer;
 use rustc::middle::mem_categorization::{cmt, Categorization};
-use rustc::middle::ty::adjustment::AutoAdjustment;
-use rustc::middle::ty;
+use rustc::traits::ProjectionMode;
+use rustc::ty::adjustment::AutoAdjustment;
+use rustc::ty;
 use rustc::util::nodemap::NodeSet;
 use rustc_front::hir::*;
 use rustc_front::intravisit as visit;
@@ -54,7 +55,7 @@ fn get_lints(&self) -> LintArray {
 impl LateLintPass for EscapePass {
     fn check_fn(&mut self, cx: &LateContext, _: visit::FnKind, decl: &FnDecl, body: &Block, _: Span, id: NodeId) {
         let param_env = ty::ParameterEnvironment::for_item(cx.tcx, id);
-        let infcx = infer::new_infer_ctxt(cx.tcx, &cx.tcx.tables, Some(param_env));
+        let infcx = infer::new_infer_ctxt(cx.tcx, &cx.tcx.tables, Some(param_env), ProjectionMode::Any);
         let mut v = EscapeDelegate {
             cx: cx,
             set: NodeSet(),
@@ -143,7 +144,7 @@ fn borrow(&mut self, borrow_id: NodeId, _: Span, cmt: cmt<'tcx>, _: ty::Region,
                             self.set.remove(&lid); // Used without autodereffing (i.e. x.clone())
                         }
                     } else {
-                        self.cx.sess().span_bug(cmt.span, "Unknown adjusted AutoRef");
+                        span_bug!(cmt.span, "Unknown adjusted AutoRef");
                     }
                 } else if LoanCause::AddrOf == loan_cause {
                     // &x