diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2017-05-10 10:28:06 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2017-05-22 14:55:03 -0400 |
| commit | 1b7acb6f34bb255d709fa153a49c77a570e6bbec (patch) | |
| tree | 06f2cb27c7e96a7feb1b931f726cd248354442c0 /src/librustc_const_eval | |
| parent | 81734e0e06d24cf580dd5352c64d10110e4d3b7b (diff) | |
centralize the caching for is-copy, is-sized, and is-freeze
Use the trait-environment+type as the key. Note that these are only invoked on types that live for the entire compilation (no inference artifacts). We no longer need the various special-case bits and caches that were in place before.
Diffstat (limited to 'src/librustc_const_eval')
| -rw-r--r-- | src/librustc_const_eval/check_match.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/librustc_const_eval/check_match.rs b/src/librustc_const_eval/check_match.rs index a18f91a9ee3..6e2a13a9a0d 100644 --- a/src/librustc_const_eval/check_match.rs +++ b/src/librustc_const_eval/check_match.rs @@ -52,7 +52,7 @@ impl<'a, 'tcx> Visitor<'tcx> for OuterVisitor<'a, 'tcx> { tcx: self.tcx, tables: self.tcx.body_tables(b), region_maps: &self.tcx.region_maps(def_id), - param_env: &self.tcx.parameter_environment(def_id) + param_env: self.tcx.parameter_environment(def_id) }.visit_body(self.tcx.hir.body(b)); } } @@ -69,7 +69,7 @@ fn create_e0004<'a>(sess: &'a Session, sp: Span, error_message: String) -> Diagn struct MatchVisitor<'a, 'tcx: 'a> { tcx: TyCtxt<'a, 'tcx, 'tcx>, tables: &'a ty::TypeckTables<'tcx>, - param_env: &'a ty::ParameterEnvironment<'tcx>, + param_env: ty::ParameterEnvironment<'tcx>, region_maps: &'a RegionMaps, } @@ -518,7 +518,7 @@ fn check_legality_of_move_bindings(cx: &MatchVisitor, /// /// FIXME: this should be done by borrowck. fn check_for_mutation_in_guard(cx: &MatchVisitor, guard: &hir::Expr) { - cx.tcx.infer_ctxt((cx.tables, cx.param_env.clone()), Reveal::UserFacing).enter(|infcx| { + cx.tcx.infer_ctxt((cx.tables, cx.param_env), Reveal::UserFacing).enter(|infcx| { let mut checker = MutationChecker { cx: cx, }; |
