From 7134ad4d6402e4a1d84a7ebfa417170c107642cb Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 13 Feb 2015 17:31:44 -0500 Subject: [PATCH] Move `tcx` from `Typer` into `ClosureTyper` --- src/librustc/middle/mem_categorization.rs | 1 - src/librustc/middle/traits/fulfill.rs | 1 - src/librustc/middle/traits/select.rs | 1 - src/librustc/middle/ty.rs | 8 ++++---- src/librustc_trans/trans/common.rs | 4 ---- src/librustc_typeck/check/mod.rs | 3 --- 6 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index 6ce5fd073419..4be7bb9c365a 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -281,7 +281,6 @@ pub type McResult = Result; /// know that no errors have occurred, so we simply consult the tcx and we /// can be sure that only `Ok` results will occur. pub trait Typer<'tcx> : ty::ClosureTyper<'tcx> { - fn tcx<'a>(&'a self) -> &'a ty::ctxt<'tcx>; fn node_ty(&self, id: ast::NodeId) -> McResult>; fn expr_ty_adjusted(&self, expr: &ast::Expr) -> McResult>; fn type_moves_by_default(&self, span: Span, ty: Ty<'tcx>) -> bool; diff --git a/src/librustc/middle/traits/fulfill.rs b/src/librustc/middle/traits/fulfill.rs index 07c7453783d9..a9cac4be3e36 100644 --- a/src/librustc/middle/traits/fulfill.rs +++ b/src/librustc/middle/traits/fulfill.rs @@ -9,7 +9,6 @@ // except according to those terms. use middle::infer::{InferCtxt}; -use middle::mem_categorization::Typer; use middle::ty::{self, RegionEscape, Ty}; use std::collections::HashSet; use std::collections::hash_map::Entry::{Occupied, Vacant}; diff --git a/src/librustc/middle/traits/select.rs b/src/librustc/middle/traits/select.rs index 061557eb7dcc..0df59c917ede 100644 --- a/src/librustc/middle/traits/select.rs +++ b/src/librustc/middle/traits/select.rs @@ -32,7 +32,6 @@ use super::object_safety; use super::{util}; use middle::fast_reject; -use middle::mem_categorization::Typer; use middle::subst::{Subst, Substs, TypeSpace, VecPerParamSpace}; use middle::ty::{self, RegionEscape, ToPolyTraitRef, Ty}; use middle::infer; diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index db8a6eef6707..e3eda02b0a84 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -2337,6 +2337,10 @@ impl ClosureKind { } pub trait ClosureTyper<'tcx> { + fn tcx(&self) -> &ty::ctxt<'tcx> { + self.param_env().tcx + } + fn param_env<'a>(&'a self) -> &'a ty::ParameterEnvironment<'a, 'tcx>; /// Is this a `Fn`, `FnMut` or `FnOnce` closure? During typeck, @@ -6463,10 +6467,6 @@ impl<'tcx> ctxt<'tcx> { } impl<'a,'tcx> mc::Typer<'tcx> for ParameterEnvironment<'a,'tcx> { - fn tcx(&self) -> &ty::ctxt<'tcx> { - self.tcx - } - fn node_ty(&self, id: ast::NodeId) -> mc::McResult> { Ok(ty::node_id_to_type(self.tcx, id)) } diff --git a/src/librustc_trans/trans/common.rs b/src/librustc_trans/trans/common.rs index d658003702dc..3709490d8dad 100644 --- a/src/librustc_trans/trans/common.rs +++ b/src/librustc_trans/trans/common.rs @@ -637,10 +637,6 @@ impl<'blk, 'tcx> BlockS<'blk, 'tcx> { } impl<'blk, 'tcx> mc::Typer<'tcx> for BlockS<'blk, 'tcx> { - fn tcx<'a>(&'a self) -> &'a ty::ctxt<'tcx> { - self.tcx() - } - fn node_ty(&self, id: ast::NodeId) -> mc::McResult> { Ok(node_id_type(self, id)) } diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index ee8bf8b76276..7bb2af606f5a 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -309,9 +309,6 @@ pub struct FnCtxt<'a, 'tcx: 'a> { } impl<'a, 'tcx> mc::Typer<'tcx> for FnCtxt<'a, 'tcx> { - fn tcx(&self) -> &ty::ctxt<'tcx> { - self.ccx.tcx - } fn node_ty(&self, id: ast::NodeId) -> McResult> { let ty = self.node_ty(id); self.resolve_type_vars_or_error(&ty)