about summary refs log tree commit diff
path: root/src/comp/driver
diff options
context:
space:
mode:
authorMarijn Haverbeke <marijnh@gmail.com>2011-08-31 18:45:37 +0200
committerMarijn Haverbeke <marijnh@gmail.com>2011-09-01 16:32:38 +0200
commit2d1dec78e7fd2fa0a569f797d147d5940e81f3d0 (patch)
treefe35c14dcd9c29ed3bee30fe2c11453eacd0e36f /src/comp/driver
parent34ae491ca9f7ad7549fa0d767f7452055df875d8 (diff)
downloadrust-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.rs6
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; }