diff options
| author | Michael Sullivan <sully@msully.net> | 2011-07-18 19:14:01 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-07-19 12:01:14 -0700 |
| commit | f8c6d282f8438fd2e3229d1d7a428df462f52076 (patch) | |
| tree | 66b333a31d8ce21b670b0f9d642bd258cffd441a /src/comp/driver | |
| parent | c4bcd0a44d64d43a5c1dfde73d4e3f94e2419da7 (diff) | |
| download | rust-f8c6d282f8438fd2e3229d1d7a428df462f52076.tar.gz rust-f8c6d282f8438fd2e3229d1d7a428df462f52076.zip | |
Add a pass that finds all of the free variables.
Diffstat (limited to 'src/comp/driver')
| -rw-r--r-- | src/comp/driver/rustc.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs index b810fbecc72..b24dedffdd0 100644 --- a/src/comp/driver/rustc.rs +++ b/src/comp/driver/rustc.rs @@ -10,6 +10,7 @@ import syntax::codemap; import front::attr; import middle::trans; import middle::resolve; +import middle::freevars; import middle::ty; import middle::typeck; import middle::tstate::ck; @@ -131,7 +132,10 @@ fn compile_input(session::session sess, ast::crate_cfg cfg, str input, auto d = time(time_passes, "resolution", bind resolve::resolve_crate(sess, ast_map, crate)); - auto ty_cx = ty::mk_ctxt(sess, d._0, d._1, ast_map); + auto freevars = + time(time_passes, "freevar finding", + bind freevars::annotate_freevars(sess, d._0, crate)); + auto ty_cx = ty::mk_ctxt(sess, d._0, d._1, ast_map, freevars); time[()](time_passes, "typechecking", bind typeck::check_crate(ty_cx, crate)); if (sess.get_opts().run_typestate) { @@ -196,7 +200,8 @@ fn pretty_print_input(session::session sess, ast::crate_cfg cfg, case (ppm_typed) { auto amap = middle::ast_map::map_crate(*crate); auto d = resolve::resolve_crate(sess, amap, crate); - auto ty_cx = ty::mk_ctxt(sess, d._0, d._1, amap); + auto freevars = freevars::annotate_freevars(sess, d._0, crate); + auto ty_cx = ty::mk_ctxt(sess, d._0, d._1, amap, freevars); typeck::check_crate(ty_cx, crate); ann = rec(pre=ann_paren_for_expr, post=bind ann_typed_post(ty_cx, _)); |
