rust/src/librustc/middle
bors 098106870e auto merge of #8077 : graydon/rust/reorganize-driver, r=pcwalton
The purpose here is to get rid of compile_upto, which pretty much always requires the user to read the source to figure out what it does. It's replaced by a sequence of obviously-named functions:

  - phase_1_parse_input(sess, cfg, input);
  - phase_2_configure_and_expand(sess, cfg, crate);
  - phase_3_run_analysis_passes(sess, expanded_crate);
  - phase_4_translate_to_llvm(sess, expanded_crate, &analysis, outputs);
  - phase_5_run_llvm_passes(sess, &trans, outputs);
  - phase_6_link_output(sess, &trans, outputs); 

Each of which takes what it takes and returns what it returns, with as little variation as possible in behaviour: no "pairs of options" and "pairs of control flags". You can tell if you missed a phase because you will be missing a `phase_N` call to some `N` between 1 and 6.

It does mean that people invoking librustc from outside need to write more function calls. The benefit is that they can _figure out what they're doing_ much more easily, and stop at any point, rather than further overloading the tangled logic of `compile_upto`.
2013-07-27 14:49:28 -07:00
..
borrowck Disallow non-comma-delimited arguments to fmt! and bytes! 2013-07-24 09:45:20 -04:00
cfg De-spanned<T> and renamed ast::field (now ast::Field) 2013-07-22 15:35:29 +02:00
trans auto merge of #8077 : graydon/rust/reorganize-driver, r=pcwalton 2013-07-27 14:49:28 -07:00
typeck Eliminate unused variable warnings. 2013-07-26 16:42:03 -07:00
astencode.rs Major rework of how calls to self and super methods work. 2013-07-23 17:06:33 -07:00
check_const.rs Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg. 2013-07-22 15:35:28 +02:00
check_loop.rs Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg. 2013-07-22 15:35:28 +02:00
check_match.rs NaN patterns: indicate that is_NaN is a method 2013-07-25 16:40:59 +02:00
const_eval.rs De-spanned<T> and renamed ast::field (now ast::Field) 2013-07-22 15:35:29 +02:00
dataflow.rs De-spanned<T> and renamed ast::field (now ast::Field) 2013-07-22 15:35:29 +02:00
effect.rs Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg. 2013-07-22 15:35:28 +02:00
entry.rs Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg. 2013-07-22 15:35:28 +02:00
freevars.rs Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg. 2013-07-22 15:35:28 +02:00
graph.rs Silence various warnings 2013-07-11 15:21:29 -04:00
kind.rs Generalize the ty::substs struct so that it can represent 2013-07-24 16:52:57 -04:00
lang_items.rs Allow linking against crates with #[no_std] 2013-07-25 19:23:17 -07:00
lint.rs Improve the camel case warning a bit. 2013-07-26 16:42:03 -07:00
liveness.rs De-spanned<T> and renamed ast::field (now ast::Field) 2013-07-22 15:35:29 +02:00
mem_categorization.rs librustc: Remove copy expressions from the language. 2013-07-17 14:57:52 -07:00
moves.rs De-spanned<T> and renamed ast::field (now ast::Field) 2013-07-22 15:35:29 +02:00
pat_util.rs De-managed ast::Path 2013-07-07 22:51:09 +12:00
privacy.rs Major rework of how calls to self and super methods work. 2013-07-23 17:06:33 -07:00
reachable.rs Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg. 2013-07-22 15:35:28 +02:00
region.rs Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg. 2013-07-22 15:35:28 +02:00
resolve.rs Ast spanned<T> refactoring, renaming: crate, local, blk, crate_num, crate_cfg. 2013-07-22 15:35:28 +02:00
subst.rs Generalize the ty::substs struct so that it can represent 2013-07-24 16:52:57 -04:00
ty.rs auto merge of #8027 : nikomatsakis/rust/issue-4846-multiple-lifetime-parameters-1, r=pcwalton 2013-07-25 07:37:45 -07:00