Skip to content

Commit f3ca50c

Browse files
committed
Encode/decode AST into metadata, re-instantiate inlined items
1 parent be99146 commit f3ca50c

33 files changed

+10674
-942
lines changed

src/comp/driver/driver.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import syntax::parse::{parser};
66
import syntax::{ast, codemap};
77
import front::attr;
88
import middle::{trans, resolve, freevars, kind, ty, typeck, fn_usage,
9-
last_use, lint};
9+
last_use, lint, inline};
1010
import syntax::print::{pp, pprust};
1111
import util::{ppaux, filesearch};
1212
import back::link;
@@ -157,7 +157,7 @@ fn compile_upto(sess: session, cfg: ast::crate_cfg,
157157
bind middle::check_alt::check_crate(ty_cx, crate));
158158
time(time_passes, "typestate checking",
159159
bind middle::tstate::ck::check_crate(ty_cx, crate));
160-
let mut_map =
160+
let mutbl_map =
161161
time(time_passes, "mutability checking",
162162
bind middle::mutbl::check_crate(ty_cx, crate));
163163
let (copy_map, ref_map) =
@@ -173,12 +173,19 @@ fn compile_upto(sess: session, cfg: ast::crate_cfg,
173173
if upto == cu_no_trans { ret {crate: crate, tcx: some(ty_cx)}; }
174174
let outputs = option::get(outputs);
175175

176+
let maps = {mutbl_map: mutbl_map, copy_map: copy_map,
177+
last_uses: last_uses, impl_map: impl_map,
178+
method_map: method_map, dict_map: dict_map};
179+
180+
let inline_map =
181+
time(time_passes, "inline",
182+
bind inline::instantiate_inlines(ty_cx, maps, crate));
183+
176184
let (llmod, link_meta) =
177185
time(time_passes, "translation",
178186
bind trans::base::trans_crate(
179-
sess, crate, ty_cx, outputs.obj_filename, exp_map, ast_map,
180-
mut_map, copy_map, last_uses, impl_map, method_map,
181-
dict_map));
187+
sess, crate, ty_cx, outputs.obj_filename,
188+
exp_map, maps, inline_map));
182189
time(time_passes, "LLVM passes",
183190
bind link::write::run_passes(sess, llmod, outputs.obj_filename));
184191

0 commit comments

Comments
 (0)