diff options
| author | Eduard Burtescu <edy.burt@gmail.com> | 2016-05-11 04:14:41 +0300 |
|---|---|---|
| committer | Eduard Burtescu <edy.burt@gmail.com> | 2016-05-11 04:14:58 +0300 |
| commit | a1c170fc355947f54129a97aedcb8dea3d555f71 (patch) | |
| tree | c9a14d32948bcde76d6872b17c491cbbcebf2fd8 /src/librustc_const_eval | |
| parent | 31a07b0ce662e95119a76cce8dcfc29d2055f738 (diff) | |
| download | rust-a1c170fc355947f54129a97aedcb8dea3d555f71.tar.gz rust-a1c170fc355947f54129a97aedcb8dea3d555f71.zip | |
rustc: Split local type contexts interners from the global one.
Diffstat (limited to 'src/librustc_const_eval')
| -rw-r--r-- | src/librustc_const_eval/check_match.rs | 15 | ||||
| -rw-r--r-- | src/librustc_const_eval/eval.rs | 3 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/librustc_const_eval/check_match.rs b/src/librustc_const_eval/check_match.rs index d7c1c877c8b..61d2408d5bf 100644 --- a/src/librustc_const_eval/check_match.rs +++ b/src/librustc_const_eval/check_match.rs @@ -22,7 +22,6 @@ use rustc::hir::def_id::{DefId}; use rustc::middle::expr_use_visitor::{ConsumeMode, Delegate, ExprUseVisitor}; use rustc::middle::expr_use_visitor::{LoanCause, MutateMode}; use rustc::middle::expr_use_visitor as euv; -use rustc::infer::InferCtxt; use rustc::middle::mem_categorization::{cmt}; use rustc::hir::pat_util::*; use rustc::traits::ProjectionMode; @@ -1123,8 +1122,8 @@ fn check_legality_of_move_bindings(cx: &MatchCheckCtxt, PatKind::Ident(hir::BindByValue(_), _, ref sub) => { let pat_ty = tcx.node_id_to_type(p.id); //FIXME: (@jroesch) this code should be floated up as well - InferCtxt::enter(cx.tcx, None, Some(cx.param_env.clone()), - ProjectionMode::AnyFinal, |infcx| { + cx.tcx.infer_ctxt(None, Some(cx.param_env.clone()), + ProjectionMode::AnyFinal).enter(|infcx| { if infcx.type_moves_by_default(pat_ty, pat.span) { check_move(p, sub.as_ref().map(|p| &**p)); } @@ -1150,8 +1149,8 @@ fn check_legality_of_move_bindings(cx: &MatchCheckCtxt, /// assign. fn check_for_mutation_in_guard<'a, 'tcx>(cx: &'a MatchCheckCtxt<'a, 'tcx>, guard: &hir::Expr) { - InferCtxt::enter(cx.tcx, None, Some(cx.param_env.clone()), - ProjectionMode::AnyFinal, |infcx| { + cx.tcx.infer_ctxt(None, Some(cx.param_env.clone()), + ProjectionMode::AnyFinal).enter(|infcx| { let mut checker = MutationChecker { cx: cx, }; @@ -1160,11 +1159,11 @@ fn check_for_mutation_in_guard<'a, 'tcx>(cx: &'a MatchCheckCtxt<'a, 'tcx>, }); } -struct MutationChecker<'a, 'tcx: 'a> { - cx: &'a MatchCheckCtxt<'a, 'tcx>, +struct MutationChecker<'a, 'gcx: 'a> { + cx: &'a MatchCheckCtxt<'a, 'gcx>, } -impl<'a, 'tcx> Delegate<'tcx> for MutationChecker<'a, 'tcx> { +impl<'a, 'gcx, 'tcx> Delegate<'tcx> for MutationChecker<'a, 'gcx> { fn matched_pat(&mut self, _: &Pat, _: cmt, _: euv::MatchMode) {} fn consume(&mut self, _: NodeId, _: Span, _: cmt, _: ConsumeMode) {} fn consume_pat(&mut self, _: &Pat, _: cmt, _: ConsumeMode) {} diff --git a/src/librustc_const_eval/eval.rs b/src/librustc_const_eval/eval.rs index 22ffebc081b..9db24fa4770 100644 --- a/src/librustc_const_eval/eval.rs +++ b/src/librustc_const_eval/eval.rs @@ -19,7 +19,6 @@ use rustc::hir::map as ast_map; use rustc::hir::map::blocks::FnLikeNode; use rustc::middle::cstore::{self, InlinedItem}; use rustc::traits; -use rustc::infer::InferCtxt; use rustc::hir::def::Def; use rustc::hir::def_id::DefId; use rustc::hir::pat_util::def_to_path; @@ -1014,7 +1013,7 @@ fn resolve_trait_associated_const<'a, 'tcx: 'a>(tcx: TyCtxt<'a, 'tcx, 'tcx>, trait_ref); tcx.populate_implementations_for_trait_if_necessary(trait_ref.def_id()); - InferCtxt::enter(tcx, None, None, ProjectionMode::AnyFinal, |infcx| { + tcx.infer_ctxt(None, None, ProjectionMode::AnyFinal).enter(|infcx| { let mut selcx = traits::SelectionContext::new(&infcx); let obligation = traits::Obligation::new(traits::ObligationCause::dummy(), trait_ref.to_poly_trait_predicate()); |
