From 1ac6efedd1f462d02de09a3cea0f94037fbd162d Mon Sep 17 00:00:00 2001 From: mcarton Date: Wed, 16 Mar 2016 16:57:11 +0100 Subject: [PATCH 1/3] Rustup to *1.9.0-nightly (c66d2380a 2016-03-15)* --- src/escape.rs | 3 ++- src/utils/mod.rs | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/escape.rs b/src/escape.rs index bcc1cb16870f..f81a05d43d51 100644 --- a/src/escape.rs +++ b/src/escape.rs @@ -3,6 +3,7 @@ use rustc::lint::*; use rustc::middle::expr_use_visitor::*; use rustc::middle::infer; use rustc::middle::mem_categorization::{cmt, Categorization}; +use rustc::middle::traits::ProjectionMode; use rustc::middle::ty::adjustment::AutoAdjustment; use rustc::middle::ty; use rustc::util::nodemap::NodeSet; @@ -54,7 +55,7 @@ impl LintPass for EscapePass { 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(), diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 86a5e24efc2e..cacc9f8e51b5 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -2,6 +2,7 @@ use reexport::*; use rustc::front::map::Node; use rustc::lint::{LintContext, LateContext, Level, Lint}; use rustc::middle::def_id::DefId; +use rustc::middle::traits::ProjectionMode; use rustc::middle::{cstore, def, infer, ty, traits}; use rustc::session::Session; use rustc_front::hir::*; @@ -269,7 +270,7 @@ pub fn implements_trait<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, ty: ty::Ty<'tcx>, -> bool { cx.tcx.populate_implementations_for_trait_if_necessary(trait_id); - let infcx = infer::new_infer_ctxt(cx.tcx, &cx.tcx.tables, None); + let infcx = infer::new_infer_ctxt(cx.tcx, &cx.tcx.tables, None, ProjectionMode::Any); let obligation = traits::predicate_for_trait_def(cx.tcx, traits::ObligationCause::dummy(), trait_id, @@ -753,6 +754,6 @@ pub fn return_ty(fun: ty::Ty) -> Option { // FIXME: this works correctly for lifetimes bounds (`for <'a> Foo<'a>` == `for <'b> Foo<'b>` but // not for type parameters. pub fn same_tys<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, a: ty::Ty<'tcx>, b: ty::Ty<'tcx>) -> bool { - let infcx = infer::new_infer_ctxt(cx.tcx, &cx.tcx.tables, None); + let infcx = infer::new_infer_ctxt(cx.tcx, &cx.tcx.tables, None, ProjectionMode::Any); infcx.can_equate(&cx.tcx.erase_regions(&a), &cx.tcx.erase_regions(&b)).is_ok() } From 976d17785e5d71929d072a60f5729f7aaadda715 Mon Sep 17 00:00:00 2001 From: mcarton Date: Wed, 16 Mar 2016 19:26:14 +0100 Subject: [PATCH 2/3] Temporary fix for rustc warning false-positive? --- tests/compile-fail/derive.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/compile-fail/derive.rs b/tests/compile-fail/derive.rs index 06f1388dc056..775669dcbd50 100755 --- a/tests/compile-fail/derive.rs +++ b/tests/compile-fail/derive.rs @@ -3,6 +3,7 @@ #![deny(warnings)] #![allow(dead_code)] +#![allow(unused_variables)] // Temporary fix for rustc false positive. To be removed. use std::hash::{Hash, Hasher}; From 0323d0b05b377af7e27d21f2cefcdf7dd1ead611 Mon Sep 17 00:00:00 2001 From: mcarton Date: Wed, 16 Mar 2016 16:57:38 +0100 Subject: [PATCH 3/3] Bump to 0.0.54 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 3f890f2116fb..dd675981fae5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clippy" -version = "0.0.53" +version = "0.0.54" authors = [ "Manish Goregaokar ", "Andre Bogus ",