use rustc::session::config::{PpMode, PpSourceMode};
use rustc::session::search_paths::PathKind;
use rustc::session::Session;
-use rustc::traits;
use rustc::ty::steal::Steal;
use rustc::ty::{self, GlobalCtxt, ResolverOutputs, TyCtxt};
use rustc::util::common::ErrorReported;
use rustc_errors::PResult;
use rustc_expand::base::ExtCtxt;
use rustc_hir::def_id::{CrateNum, LOCAL_CRATE};
+use rustc_hir::Crate;
+use rustc_infer::traits;
use rustc_lint::LintStore;
use rustc_mir as mir;
use rustc_mir_build as mir_build;
dep_graph: &'res DepGraph,
krate: &'res ast::Crate,
arena: &'tcx Arena<'tcx>,
-) -> Result<map::Forest<'tcx>> {
+) -> Crate<'tcx> {
// Lower AST to HIR.
let hir_crate = rustc_ast_lowering::lower_crate(
sess,
hir_stats::print_hir_stats(&hir_crate);
}
- let hir_forest = map::Forest::new(hir_crate, &dep_graph);
-
sess.time("early_lint_checks", || {
rustc_lint::check_ast_crate(
sess,
rustc_span::hygiene::clear_syntax_context_map();
}
- Ok(hir_forest)
+ hir_crate
}
// Returns all the paths that correspond to generated files.
ty::tls::enter_global(self.0, |tcx| f(tcx))
}
- pub fn print_stats(&self) {
- self.0.queries.print_stats()
+ pub fn print_stats(&mut self) {
+ self.enter(|tcx| ty::query::print_stats(tcx))
}
}
pub fn create_global_ctxt<'tcx>(
compiler: &'tcx Compiler,
lint_store: Lrc<LintStore>,
- hir_forest: &'tcx map::Forest<'tcx>,
+ krate: &'tcx Crate<'tcx>,
+ dep_graph: DepGraph,
mut resolver_outputs: ResolverOutputs,
outputs: OutputFilenames,
crate_name: &str,
let defs = mem::take(&mut resolver_outputs.definitions);
// Construct the HIR map.
- let hir_map = map::map_crate(sess, &*resolver_outputs.cstore, &hir_forest, defs);
+ let hir_map = map::map_crate(sess, &*resolver_outputs.cstore, krate, dep_graph, defs);
let query_result_on_disk_cache = rustc_incremental::load_query_result_cache(sess);