From 4d8113725db67185f0a67003e41caa5d39db8409 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Mon, 9 Jul 2012 11:04:24 -0700 Subject: [PATCH] rustc: Add some changes I missed --- src/libsyntax/parse/parser.rs | 12 ++++++------ src/rustc/driver/driver.rs | 23 ++++++++++++++++++++--- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 6727ebe4c77..ba31a610f27 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -21,9 +21,9 @@ import ast::{_mod, add, alt_check, alt_exhaustive, arg, arm, attribute, class_member, class_method, class_mutable, constr, constr_arg, constr_general, crate, crate_cfg, crate_directive, decl, decl_item, decl_local, default_blk, deref, div, expl, expr, - expr_, expr_addr_of, expr_alt, expr_assert, expr_assign, - expr_assign_op, expr_binary, expr_block, expr_break, expr_call, - expr_cast, expr_check, expr_cont, expr_copy, expr_do_body, + expr_, expr_addr_of, expr_alt, expr_again, expr_assert, + expr_assign, expr_assign_op, expr_binary, expr_block, expr_break, + expr_call, expr_cast, expr_check, expr_copy, expr_do_body, expr_fail, expr_field, expr_fn, expr_fn_block, expr_if, expr_if_check, expr_index, expr_lit, expr_log, expr_loop, expr_loop_body, expr_mac, expr_move, expr_new, expr_path, @@ -32,9 +32,9 @@ import ast::{_mod, add, alt_check, alt_exhaustive, arg, arm, attribute, foreign_item_fn, foreign_mod, ident, impure_fn, infer, init_assign, init_move, initializer, instance_var, item, item_, item_class, item_const, item_enum, item_fn, item_foreign_mod, - item_impl, item_mod, item_trait, item_ty, lit, lit_, lit_bool, - lit_float, lit_int, lit_int_unsuffixed, lit_nil, lit_str, - lit_uint, local, m_const, m_imm, m_mutbl, mac_, mac_aq, + item_impl, item_mac, item_mod, item_trait, item_ty, lit, lit_, + lit_bool, lit_float, lit_int, lit_int_unsuffixed, lit_nil, + lit_str, lit_uint, local, m_const, m_imm, m_mutbl, mac_, mac_aq, mac_ellipsis, mac_embed_block, mac_embed_type, mac_invoc, mac_invoc_tt, mac_var, matcher, method, mode, mt, mtc_bb, mtc_rep, mtc_tok, mul, mutability, neg, noreturn, not, pat, diff --git a/src/rustc/driver/driver.rs b/src/rustc/driver/driver.rs index 6c6247fabe3..799f34377ed 100644 --- a/src/rustc/driver/driver.rs +++ b/src/rustc/driver/driver.rs @@ -168,9 +168,26 @@ fn compile_upto(sess: session, cfg: ast::crate_cfg, session::sess_os_to_meta_os(sess.targ_cfg.os), sess.opts.static)); - let { def_map: def_map, exp_map: exp_map, impl_map: impl_map } = - time(time_passes, "fast resolution", || - middle::resolve3::resolve_crate(sess, ast_map, crate)); + let mut def_map; + let mut impl_map; + let mut exp_map; + if sess.fast_resolve() { + let { def_map: fast_dm, exp_map: fast_em, impl_map: fast_im } = + time(time_passes, "fast resolution", || + middle::resolve3::resolve_crate(sess, ast_map, crate)); + + def_map = fast_dm; + impl_map = fast_im; + exp_map = fast_em; + } else { + let { def_map: normal_dm, exp_map: normal_em, impl_map: normal_im } = + time(time_passes, "resolution", || + resolve::resolve_crate(sess, ast_map, crate)); + + def_map = normal_dm; + impl_map = normal_im; + exp_map = normal_em; + } let freevars = time(time_passes, "freevar finding", || freevars::annotate_freevars(def_map, crate));