Skip to content

Commit

Permalink
rustc: Switch to the new resolution pass
Browse files Browse the repository at this point in the history
  • Loading branch information
pcwalton committed Jul 7, 2012
1 parent b5f5676 commit c4af6e9
Show file tree
Hide file tree
Showing 41 changed files with 430 additions and 328 deletions.
6 changes: 6 additions & 0 deletions src/libcore/task.rs
Expand Up @@ -63,6 +63,12 @@ export local_data_get;
export local_data_set;
export local_data_modify;

export single_threaded;
export thread_per_core;
export thread_per_task;
export manual_threads;
export osmain;

/* Data types */

/// A handle to a task
Expand Down
3 changes: 2 additions & 1 deletion src/libstd/net_ip.rs
Expand Up @@ -25,6 +25,7 @@ export ip_addr, parse_addr_err;
export format_addr;
export v4, v6;
export get_addr;
export ipv4, ipv6;

/// An IP address
enum ip_addr {
Expand Down Expand Up @@ -389,4 +390,4 @@ mod test {
let ga_result = get_addr(localhost_name, iotask);
assert result::is_err(ga_result);
}
}
}
6 changes: 2 additions & 4 deletions src/libsyntax/parse.rs
Expand Up @@ -16,10 +16,8 @@ export parse_from_source_str;
// unresolved import errors. Maybe resolve3 will fix it.
import common::*;
import parser::parser;
//import attr::parser_attr;
import attr::*; //resolve bug?
//import common::parser_common;
import common::*; //resolve bug?
import attr::parser_attr;
import common::parser_common;
import ast::node_id;
import util::interner;
// FIXME (#1935): resolve badness
Expand Down
1 change: 1 addition & 0 deletions src/libsyntax/parse/comments.rs
Expand Up @@ -9,6 +9,7 @@ export lit;
export cmnt_style;
export gather_comments_and_literals;
export is_doc_comment, doc_comment_style, strip_doc_comment_decoration;
export isolated, trailing, mixed, blank_line;

enum cmnt_style {
isolated, // No code on either side of each line of the comment
Expand Down
42 changes: 41 additions & 1 deletion src/libsyntax/parse/parser.rs
Expand Up @@ -12,7 +12,47 @@ import common::{seq_sep_trailing_disallowed, seq_sep_trailing_allowed,
seq_sep_none, token_to_str};
import dvec::{dvec, extensions};
import vec::{push};
import ast::*;
import ast::{_mod, add, alt_check, alt_exhaustive, arg, arm, attribute,
bitand, bitor, bitxor, blk, blk_check_mode, bound_const,
bound_copy, bound_send, bound_trait, box, by_copy, by_move,
by_mutbl_ref, by_ref, by_val, capture_clause, capture_item,
carg_base, carg_ident, cdir_dir_mod, cdir_src_mod,
cdir_view_item, checked_expr, claimed_expr, class_immutable,
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_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,
expr_rec, expr_ret, expr_swap, expr_tup, expr_unary, expr_vec,
expr_vstore, expr_while, extern_fn, field, fn_decl, foreign_item,
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,
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,
pat_box, pat_enum, pat_ident, pat_lit, pat_range, pat_rec,
pat_tup, pat_uniq, pat_wild, path, private, proto, proto_any,
proto_bare, proto_block, proto_box, proto_uniq, public, pure_fn,
purity, re_anon, re_named, region, region_param, rem, ret_style,
return_val, rp_none, rp_self, shl, shr, stmt, stmt_decl,
stmt_expr, stmt_semi, subtract, token_tree, trait_ref, tt_delim,
tt_dotdotdot, tt_flat, tt_interpolate, ty, ty_, ty_bot, ty_box,
ty_constr, ty_constr_, ty_constr_arg, ty_field, ty_fn, ty_infer,
ty_mac, ty_method, ty_nil, ty_param, ty_path, ty_ptr, ty_rec,
ty_rptr, ty_tup, ty_u32, ty_uniq, ty_vec, ty_vstore,
unchecked_blk, uniq, unsafe_blk, unsafe_fn, variant, view_item,
view_item_, view_item_export, view_item_import, view_item_use,
view_path, view_path_glob, view_path_list, view_path_simple,
visibility, vstore, vstore_box, vstore_fixed, vstore_slice,
vstore_uniq};

export file_type;
export parser;
Expand Down
23 changes: 3 additions & 20 deletions src/rustc/driver/driver.rs
Expand Up @@ -168,26 +168,9 @@ fn compile_upto(sess: session, cfg: ast::crate_cfg,
session::sess_os_to_meta_os(sess.targ_cfg.os),
sess.opts.static));

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 { 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 freevars = time(time_passes, "freevar finding", ||
freevars::annotate_freevars(def_map, crate));
Expand Down
1 change: 1 addition & 0 deletions src/rustc/metadata/loader.rs
Expand Up @@ -9,6 +9,7 @@ import filesearch::filesearch;
import io::writer_util;

export os;
export os_macos, os_win32, os_linux, os_freebsd;
export ctxt;
export load_library_crate;
export list_file_metadata;
Expand Down

0 comments on commit c4af6e9

Please sign in to comment.