diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2017-05-17 08:01:04 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2017-06-01 12:56:30 -0400 |
| commit | 6c4b961effdbec1bb2fc5aaed5aeb219eb7f3b19 (patch) | |
| tree | 233aa1400d06b283de46fb2c624461c29045e386 /src/librustc_mir | |
| parent | 4ed2edaafe82fb8d44e81e00ca3e4f7659855ba2 (diff) | |
| download | rust-6c4b961effdbec1bb2fc5aaed5aeb219eb7f3b19.tar.gz rust-6c4b961effdbec1bb2fc5aaed5aeb219eb7f3b19.zip | |
move projection mode into parameter environment
Diffstat (limited to 'src/librustc_mir')
| -rw-r--r-- | src/librustc_mir/build/mod.rs | 5 | ||||
| -rw-r--r-- | src/librustc_mir/transform/inline.rs | 6 | ||||
| -rw-r--r-- | src/librustc_mir/transform/qualify_consts.rs | 2 | ||||
| -rw-r--r-- | src/librustc_mir/transform/type_check.rs | 4 |
4 files changed, 8 insertions, 9 deletions
diff --git a/src/librustc_mir/build/mod.rs b/src/librustc_mir/build/mod.rs index 407b08d2831..e9cf3115dda 100644 --- a/src/librustc_mir/build/mod.rs +++ b/src/librustc_mir/build/mod.rs @@ -18,7 +18,6 @@ use rustc::middle::region::CodeExtent; use rustc::mir::*; use rustc::mir::transform::MirSource; use rustc::mir::visit::MutVisitor; -use rustc::traits::Reveal; use rustc::ty::{self, Ty, TyCtxt}; use rustc::ty::subst::Substs; use rustc::util::nodemap::NodeMap; @@ -84,7 +83,7 @@ pub fn mir_build<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Mir<'t }; let src = MirSource::from_node(tcx, id); - tcx.infer_ctxt(body_id, Reveal::UserFacing).enter(|infcx| { + tcx.infer_ctxt(body_id).enter(|infcx| { let cx = Cx::new(&infcx, src); let mut mir = if cx.tables().tainted_by_errors { build::construct_error(cx, body_id) @@ -173,7 +172,7 @@ fn create_constructor_shim<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, let span = tcx.hir.span(ctor_id); if let hir::VariantData::Tuple(ref fields, ctor_id) = *v { let pe = tcx.param_env(tcx.hir.local_def_id(ctor_id)); - tcx.infer_ctxt(pe, Reveal::UserFacing).enter(|infcx| { + tcx.infer_ctxt(pe).enter(|infcx| { let (mut mir, src) = shim::build_adt_ctor(&infcx, ctor_id, fields, span); diff --git a/src/librustc_mir/transform/inline.rs b/src/librustc_mir/transform/inline.rs index edb2f44d18e..8842d30b65c 100644 --- a/src/librustc_mir/transform/inline.rs +++ b/src/librustc_mir/transform/inline.rs @@ -18,7 +18,6 @@ use rustc_data_structures::indexed_vec::{Idx, IndexVec}; use rustc::mir::*; use rustc::mir::transform::{MirPass, MirSource}; use rustc::mir::visit::*; -use rustc::traits; use rustc::ty::{self, Ty, TyCtxt}; use rustc::ty::subst::{Subst,Substs}; @@ -545,9 +544,10 @@ impl<'a, 'tcx> Inliner<'a, 'tcx> { } } -fn type_size_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, param_env: ty::ParamEnv<'tcx>, +fn type_size_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, + param_env: ty::ParamEnv<'tcx>, ty: Ty<'tcx>) -> Option<u64> { - tcx.infer_ctxt(param_env, traits::Reveal::All).enter(|infcx| { + tcx.infer_ctxt(param_env.reveal_all()).enter(|infcx| { ty.layout(&infcx).ok().map(|layout| { layout.size(&tcx.data_layout).bytes() }) diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs index 3b1c54f68e4..7c49a11ca1f 100644 --- a/src/librustc_mir/transform/qualify_consts.rs +++ b/src/librustc_mir/transform/qualify_consts.rs @@ -998,7 +998,7 @@ impl MirPass for QualifyAndPromoteConstants { // Statics must be Sync. if mode == Mode::Static { let ty = mir.return_ty; - tcx.infer_ctxt((), Reveal::UserFacing).enter(|infcx| { + tcx.infer_ctxt(Reveal::UserFacing).enter(|infcx| { let cause = traits::ObligationCause::new(mir.span, id, traits::SharedStatic); let mut fulfillment_cx = traits::FulfillmentContext::new(); fulfillment_cx.register_bound(&infcx, ty, diff --git a/src/librustc_mir/transform/type_check.rs b/src/librustc_mir/transform/type_check.rs index 8258627748f..f7055f90f0f 100644 --- a/src/librustc_mir/transform/type_check.rs +++ b/src/librustc_mir/transform/type_check.rs @@ -12,7 +12,7 @@ #![allow(unreachable_code)] use rustc::infer::{self, InferCtxt, InferOk}; -use rustc::traits::{self, Reveal}; +use rustc::traits; use rustc::ty::fold::TypeFoldable; use rustc::ty::{self, Ty, TyCtxt, TypeVariants}; use rustc::middle::const_val::ConstVal; @@ -752,7 +752,7 @@ impl MirPass for TypeckMir { return; } let param_env = tcx.param_env(def_id); - tcx.infer_ctxt(param_env, Reveal::UserFacing).enter(|infcx| { + tcx.infer_ctxt(param_env).enter(|infcx| { let mut checker = TypeChecker::new(&infcx, item_id); { let mut verifier = TypeVerifier::new(&mut checker, mir); |
