From 40db3aa6fbe2f0d8d7f9bb85a9fd47b8cca2938b Mon Sep 17 00:00:00 2001 From: Marijn Haverbeke Date: Mon, 20 Jun 2011 09:59:16 +0200 Subject: Add a separate AST mapping phase This will replace the various node_id-to-node mappings done in several other passes. This commit already uses the new map in resolve, dropping the ast_map that was built there before. --- src/comp/driver/rustc.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/comp/driver') diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs index f5f79fb0a2a..040b551a529 100644 --- a/src/comp/driver/rustc.rs +++ b/src/comp/driver/rustc.rs @@ -80,9 +80,11 @@ fn compile_input(session::session sess, eval::env env, str input, auto crate = time(time_passes, "parsing", bind parse_input(sess, p, input)); if (sess.get_opts().output_type == link::output_type_none) { ret; } + auto ast_map = time(time_passes, "ast indexing", + bind middle::ast_map::map_crate(*crate)); auto d = time(time_passes, "resolution", - bind resolve::resolve_crate(sess, crate)); + bind resolve::resolve_crate(sess, ast_map, crate)); auto ty_cx = ty::mk_ctxt(sess, d._0, d._1); time[()](time_passes, "typechecking", bind typeck::check_crate(ty_cx, crate)); @@ -107,7 +109,8 @@ fn pretty_print_input(session::session sess, eval::env env, str input, auto mode; alt (ppm) { case (ppm_typed) { - auto d = resolve::resolve_crate(sess, crate); + auto amap = middle::ast_map::map_crate(*crate); + auto d = resolve::resolve_crate(sess, amap, crate); auto ty_cx = ty::mk_ctxt(sess, d._0, d._1); typeck::check_crate(ty_cx, crate); mode = ppaux::mo_typed(ty_cx); -- cgit 1.4.1-3-g733a5