Address comments
This commit is contained in:
parent
811b874716
commit
27d91d73f9
4 changed files with 8 additions and 4 deletions
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
use self::thread::{DepGraphThreadData, DepMessage};
|
||||
use middle::def_id::DefId;
|
||||
use syntax::ast::NodeId;
|
||||
use middle::ty::TyCtxt;
|
||||
use rustc_front::hir;
|
||||
use rustc_front::intravisit::Visitor;
|
||||
|
|
@ -70,7 +71,7 @@ pub enum DepNode {
|
|||
IntrinsicCheck(DefId),
|
||||
MatchCheck(DefId),
|
||||
MirMapConstruction(DefId),
|
||||
MirPasses,
|
||||
MirTypeck(NodeId),
|
||||
BorrowCheck(DefId),
|
||||
RvalueCheck(DefId),
|
||||
Reachability,
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use dep_graph::DepNode;
|
||||
use mir::mir_map::MirMap;
|
||||
use mir::repr::Mir;
|
||||
use middle::ty::TyCtxt;
|
||||
|
|
@ -23,8 +24,9 @@ pub trait MirMapPass<'tcx>: Pass {
|
|||
fn run_pass(&mut self, cx: &TyCtxt<'tcx>, map: &mut MirMap<'tcx>);
|
||||
}
|
||||
|
||||
/// A pass which inspects Mir of functions in isolation.
|
||||
pub trait MirPass<'tcx>: Pass {
|
||||
fn run_pass(&mut self, cx: &TyCtxt<'tcx>, map: &mut Mir<'tcx>);
|
||||
fn run_pass(&mut self, cx: &TyCtxt<'tcx>, mir: &mut Mir<'tcx>);
|
||||
}
|
||||
|
||||
impl<'tcx, T: MirPass<'tcx>> MirMapPass<'tcx> for T {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
use rustc::dep_graph::{DepGraph, DepNode};
|
||||
use rustc::dep_graph::DepGraph;
|
||||
use rustc::front;
|
||||
use rustc::front::map as hir_map;
|
||||
use rustc_mir as mir;
|
||||
|
|
@ -862,7 +862,6 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
|
|||
|| mir::mir_map::build_mir_for_crate(tcx));
|
||||
|
||||
time(time_passes, "MIR passes", || {
|
||||
let _task = tcx.dep_graph.in_task(DepNode::MirPasses);
|
||||
let mut passes = sess.mir_passes.borrow_mut();
|
||||
// Push all the built-in passes.
|
||||
passes.push_pass(box mir::transform::remove_dead_blocks::RemoveDeadBlocks);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
//! This pass type-checks the MIR to ensure it is not broken.
|
||||
#![allow(unreachable_code)]
|
||||
|
||||
use rustc::dep_graph::DepNode;
|
||||
use rustc::middle::infer::{self, InferCtxt};
|
||||
use rustc::middle::traits;
|
||||
use rustc::middle::ty::{self, Ty, TyCtxt};
|
||||
|
|
@ -581,6 +582,7 @@ impl<'tcx> MirMapPass<'tcx> for TypeckMir {
|
|||
return;
|
||||
}
|
||||
for (&id, mir) in &mut map.map {
|
||||
let _task = tcx.dep_graph.in_task(DepNode::MirTypeck(id));
|
||||
let param_env = ty::ParameterEnvironment::for_item(tcx, id);
|
||||
let infcx = infer::new_infer_ctxt(tcx, &tcx.tables, Some(param_env));
|
||||
let mut checker = TypeChecker::new(&infcx);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue