diff options
| author | Marijn Haverbeke <marijnh@gmail.com> | 2011-08-31 18:45:37 +0200 |
|---|---|---|
| committer | Marijn Haverbeke <marijnh@gmail.com> | 2011-09-01 16:32:38 +0200 |
| commit | 2d1dec78e7fd2fa0a569f797d147d5940e81f3d0 (patch) | |
| tree | fe35c14dcd9c29ed3bee30fe2c11453eacd0e36f /src/comp/driver | |
| parent | 34ae491ca9f7ad7549fa0d767f7452055df875d8 (diff) | |
| download | rust-2d1dec78e7fd2fa0a569f797d147d5940e81f3d0.tar.gz rust-2d1dec78e7fd2fa0a569f797d147d5940e81f3d0.zip | |
Move mutability checking into its own pass.
Having it in the alias pass was slightly more efficient (finding expression roots has to be done in both passes), but further muddled up the already complex alias checker. Also factors out some duplication in the mutability-checking code.
Diffstat (limited to 'src/comp/driver')
| -rw-r--r-- | src/comp/driver/rustc.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs index f3e80344f53..c281fc6a9b6 100644 --- a/src/comp/driver/rustc.rs +++ b/src/comp/driver/rustc.rs @@ -165,8 +165,10 @@ fn compile_input(sess: session::session, cfg: ast::crate_cfg, input: &istr, time(time_passes, ~"typestate checking", bind middle::tstate::ck::check_crate(ty_cx, crate)); } - let mut_map = time(time_passes, ~"alias checking", - bind middle::alias::check_crate(ty_cx, crate)); + let mut_map = time(time_passes, ~"mutability checking", + bind middle::mut::check_crate(ty_cx, crate)); + time(time_passes, ~"alias checking", + bind middle::alias::check_crate(ty_cx, crate)); time(time_passes, ~"kind checking", bind kind::check_crate(ty_cx, crate)); if sess.get_opts().no_trans { ret; } |
