diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2017-05-02 06:07:54 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2017-05-02 16:21:57 -0400 |
| commit | c7023d1c2fbb9e136084b0d35164aff5eb2071ae (patch) | |
| tree | fac5811feaa51f242da3fda09b95eae92476dd4b /src/librustc_mir | |
| parent | 74b2783877d5f6906a2e532828203f155054d8f9 (diff) | |
| download | rust-c7023d1c2fbb9e136084b0d35164aff5eb2071ae.tar.gz rust-c7023d1c2fbb9e136084b0d35164aff5eb2071ae.zip | |
run MIR borrowck on the validated, not optimized, MIR
Diffstat (limited to 'src/librustc_mir')
| -rw-r--r-- | src/librustc_mir/queries.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/librustc_mir/queries.rs b/src/librustc_mir/queries.rs index b9d6e527e55..947b6df4bf0 100644 --- a/src/librustc_mir/queries.rs +++ b/src/librustc_mir/queries.rs @@ -110,6 +110,10 @@ fn mir_validated<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> &'tcx } fn optimized_mir<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> &'tcx Mir<'tcx> { + // Borrowck uses `mir_validated`, so we have to force it to + // execute before we can steal. + ty::queries::borrowck::force(tcx, DUMMY_SP, def_id); + let mut mir = tcx.mir_validated(def_id).steal(); let source = MirSource::from_local_def_id(tcx, def_id); transform::run_suite(tcx, source, MIR_OPTIMIZED, &mut mir); |
