Skip to content

Commit 89b1686

Browse files
committed
auto merge of #12017 : FlaPer87/rust/replace-mod-crate, r=alexcrichton
The first setp for #9880 is to add a new `crate` keyword. This PR does exactly that. I took a chance to refactor `parse_item_foreign_mod` and I broke it down into 2 separate methods to isolate each feature. The next step will be to push a new stage0 snapshot and then get rid of all `extern mod` around the code.
2 parents 94d453e + 5deb3c9 commit 89b1686

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+611
-583
lines changed

src/librustc/driver/driver.rs

Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -178,18 +178,18 @@ pub fn phase_1_parse_input(sess: Session, cfg: ast::CrateConfig, input: &Input)
178178
/// standard library and prelude.
179179
pub fn phase_2_configure_and_expand(sess: Session,
180180
loader: &mut CrateLoader,
181-
mut crate: ast::Crate)
181+
mut krate: ast::Crate)
182182
-> (ast::Crate, syntax::ast_map::Map) {
183183
let time_passes = sess.time_passes();
184184

185-
sess.building_library.set(session::building_library(sess.opts, &crate));
186-
sess.crate_types.set(session::collect_crate_types(&sess, crate.attrs));
185+
sess.building_library.set(session::building_library(sess.opts, &krate));
186+
sess.crate_types.set(session::collect_crate_types(&sess, krate.attrs));
187187

188188
time(time_passes, "gated feature checking", (), |_|
189-
front::feature_gate::check_crate(sess, &crate));
189+
front::feature_gate::check_crate(sess, &krate));
190190

191-
crate = time(time_passes, "crate injection", crate, |crate|
192-
front::std_inject::maybe_inject_crates_ref(sess, crate));
191+
krate = time(time_passes, "crate injection", krate, |krate|
192+
front::std_inject::maybe_inject_crates_ref(sess, krate));
193193

194194
// strip before expansion to allow macros to depend on
195195
// configuration variables e.g/ in
@@ -199,29 +199,29 @@ pub fn phase_2_configure_and_expand(sess: Session,
199199
//
200200
// baz! should not use this definition unless foo is enabled.
201201

202-
crate = time(time_passes, "configuration 1", crate, |crate|
203-
front::config::strip_unconfigured_items(crate));
202+
krate = time(time_passes, "configuration 1", krate, |krate|
203+
front::config::strip_unconfigured_items(krate));
204204

205-
crate = time(time_passes, "expansion", crate, |crate| {
205+
krate = time(time_passes, "expansion", krate, |krate| {
206206
syntax::ext::expand::expand_crate(sess.parse_sess,
207207
loader,
208-
crate)
208+
krate)
209209
});
210210
// dump the syntax-time crates
211211
sess.cstore.reset();
212212

213213
// strip again, in case expansion added anything with a #[cfg].
214-
crate = time(time_passes, "configuration 2", crate, |crate|
215-
front::config::strip_unconfigured_items(crate));
214+
krate = time(time_passes, "configuration 2", krate, |krate|
215+
front::config::strip_unconfigured_items(krate));
216216

217-
crate = time(time_passes, "maybe building test harness", crate, |crate|
218-
front::test::modify_for_testing(sess, crate));
217+
krate = time(time_passes, "maybe building test harness", krate, |krate|
218+
front::test::modify_for_testing(sess, krate));
219219

220-
crate = time(time_passes, "prelude injection", crate, |crate|
221-
front::std_inject::maybe_inject_prelude(sess, crate));
220+
krate = time(time_passes, "prelude injection", krate, |krate|
221+
front::std_inject::maybe_inject_prelude(sess, krate));
222222

223-
time(time_passes, "assinging node ids and indexing ast", crate, |crate|
224-
front::assign_node_ids_and_map::assign_node_ids_and_map(sess, crate))
223+
time(time_passes, "assinging node ids and indexing ast", krate, |krate|
224+
front::assign_node_ids_and_map::assign_node_ids_and_map(sess, krate))
225225
}
226226

227227
pub struct CrateAnalysis {
@@ -237,18 +237,18 @@ pub struct CrateAnalysis {
237237
/// miscellaneous analysis passes on the crate. Return various
238238
/// structures carrying the results of the analysis.
239239
pub fn phase_3_run_analysis_passes(sess: Session,
240-
crate: &ast::Crate,
240+
krate: &ast::Crate,
241241
ast_map: syntax::ast_map::Map) -> CrateAnalysis {
242242

243243
let time_passes = sess.time_passes();
244244

245245
time(time_passes, "external crate/lib resolution", (), |_|
246-
creader::read_crates(sess, crate,
246+
creader::read_crates(sess, krate,
247247
session::sess_os_to_meta_os(sess.targ_cfg.os),
248248
token::get_ident_interner()));
249249

250250
let lang_items = time(time_passes, "language item collection", (), |_|
251-
middle::lang_items::collect_language_items(crate, sess));
251+
middle::lang_items::collect_language_items(krate, sess));
252252

253253
let middle::resolve::CrateMap {
254254
def_map: def_map,
@@ -258,72 +258,72 @@ pub fn phase_3_run_analysis_passes(sess: Session,
258258
last_private_map: last_private_map
259259
} =
260260
time(time_passes, "resolution", (), |_|
261-
middle::resolve::resolve_crate(sess, lang_items, crate));
261+
middle::resolve::resolve_crate(sess, lang_items, krate));
262262

263263
let named_region_map = time(time_passes, "lifetime resolution", (),
264-
|_| middle::resolve_lifetime::crate(sess, crate));
264+
|_| middle::resolve_lifetime::krate(sess, krate));
265265

266266
time(time_passes, "looking for entry point", (),
267-
|_| middle::entry::find_entry_point(sess, crate, ast_map));
267+
|_| middle::entry::find_entry_point(sess, krate, ast_map));
268268

269269
sess.macro_registrar_fn.with_mut(|r| *r =
270270
time(time_passes, "looking for macro registrar", (), |_|
271271
syntax::ext::registrar::find_macro_registrar(
272-
sess.span_diagnostic, crate)));
272+
sess.span_diagnostic, krate)));
273273

274274
let freevars = time(time_passes, "freevar finding", (), |_|
275-
freevars::annotate_freevars(def_map, crate));
275+
freevars::annotate_freevars(def_map, krate));
276276

277277
let region_map = time(time_passes, "region resolution", (), |_|
278-
middle::region::resolve_crate(sess, crate));
278+
middle::region::resolve_crate(sess, krate));
279279

280280
let ty_cx = ty::mk_ctxt(sess, def_map, named_region_map, ast_map, freevars,
281281
region_map, lang_items);
282282

283283
// passes are timed inside typeck
284-
let (method_map, vtable_map) = typeck::check_crate(ty_cx, trait_map, crate);
284+
let (method_map, vtable_map) = typeck::check_crate(ty_cx, trait_map, krate);
285285

286286
// These next two const passes can probably be merged
287287
time(time_passes, "const marking", (), |_|
288-
middle::const_eval::process_crate(crate, ty_cx));
288+
middle::const_eval::process_crate(krate, ty_cx));
289289

290290
time(time_passes, "const checking", (), |_|
291-
middle::check_const::check_crate(sess, crate, ast_map, def_map,
291+
middle::check_const::check_crate(sess, krate, ast_map, def_map,
292292
method_map, ty_cx));
293293

294294
let maps = (external_exports, last_private_map);
295295
let (exported_items, public_items) =
296296
time(time_passes, "privacy checking", maps, |(a, b)|
297297
middle::privacy::check_crate(ty_cx, &method_map, &exp_map2,
298-
a, b, crate));
298+
a, b, krate));
299299

300300
time(time_passes, "effect checking", (), |_|
301-
middle::effect::check_crate(ty_cx, method_map, crate));
301+
middle::effect::check_crate(ty_cx, method_map, krate));
302302

303303
time(time_passes, "loop checking", (), |_|
304-
middle::check_loop::check_crate(ty_cx, crate));
304+
middle::check_loop::check_crate(ty_cx, krate));
305305

306306
let middle::moves::MoveMaps {moves_map, moved_variables_set,
307307
capture_map} =
308308
time(time_passes, "compute moves", (), |_|
309-
middle::moves::compute_moves(ty_cx, method_map, crate));
309+
middle::moves::compute_moves(ty_cx, method_map, krate));
310310

311311
time(time_passes, "match checking", (), |_|
312312
middle::check_match::check_crate(ty_cx, method_map,
313-
moves_map, crate));
313+
moves_map, krate));
314314

315315
time(time_passes, "liveness checking", (), |_|
316316
middle::liveness::check_crate(ty_cx, method_map,
317-
capture_map, crate));
317+
capture_map, krate));
318318

319319
let root_map =
320320
time(time_passes, "borrow checking", (), |_|
321321
middle::borrowck::check_crate(ty_cx, method_map,
322322
moves_map, moved_variables_set,
323-
capture_map, crate));
323+
capture_map, krate));
324324

325325
time(time_passes, "kind checking", (), |_|
326-
kind::check_crate(ty_cx, method_map, crate));
326+
kind::check_crate(ty_cx, method_map, krate));
327327

328328
let reachable_map =
329329
time(time_passes, "reachability checking", (), |_|
@@ -336,12 +336,12 @@ pub fn phase_3_run_analysis_passes(sess: Session,
336336
method_map,
337337
&exported_items,
338338
reachable_map.get(),
339-
crate)
339+
krate)
340340
});
341341
}
342342

343343
time(time_passes, "lint checking", (), |_|
344-
lint::check_crate(ty_cx, method_map, &exported_items, crate));
344+
lint::check_crate(ty_cx, method_map, &exported_items, krate));
345345

346346
CrateAnalysis {
347347
exp_map2: exp_map2,
@@ -370,11 +370,11 @@ pub struct CrateTranslation {
370370
/// Run the translation phase to LLVM, after which the AST and analysis can
371371
/// be discarded.
372372
pub fn phase_4_translate_to_llvm(sess: Session,
373-
crate: ast::Crate,
373+
krate: ast::Crate,
374374
analysis: &CrateAnalysis,
375375
outputs: &OutputFilenames) -> CrateTranslation {
376-
time(sess.time_passes(), "translation", crate, |crate|
377-
trans::base::trans_crate(sess, crate, analysis, outputs))
376+
time(sess.time_passes(), "translation", krate, |krate|
377+
trans::base::trans_crate(sess, krate, analysis, outputs))
378378
}
379379

380380
/// Run LLVM itself, producing a bitcode file, assembly file or object file
@@ -450,8 +450,8 @@ pub fn stop_after_phase_5(sess: Session) -> bool {
450450
fn write_out_deps(sess: Session,
451451
input: &Input,
452452
outputs: &OutputFilenames,
453-
crate: &ast::Crate) -> io::IoResult<()> {
454-
let lm = link::build_link_meta(crate.attrs, outputs,
453+
krate: &ast::Crate) -> io::IoResult<()> {
454+
let lm = link::build_link_meta(krate.attrs, outputs,
455455
&mut ::util::sha2::Sha256::new());
456456

457457
let mut out_filenames = ~[];
@@ -517,14 +517,14 @@ pub fn compile_input(sess: Session, cfg: ast::CrateConfig, input: &Input,
517517
// possible to keep the peak memory usage low
518518
let (outputs, trans) = {
519519
let (expanded_crate, ast_map) = {
520-
let crate = phase_1_parse_input(sess, cfg, input);
520+
let krate = phase_1_parse_input(sess, cfg, input);
521521
if sess.show_span() {
522-
front::show_span::run(sess, &crate);
522+
front::show_span::run(sess, &krate);
523523
return;
524524
}
525525
if stop_after_phase_1(sess) { return; }
526526
let loader = &mut Loader::new(sess);
527-
phase_2_configure_and_expand(sess, loader, crate)
527+
phase_2_configure_and_expand(sess, loader, krate)
528528
};
529529
let outputs = build_output_filenames(input, outdir, output,
530530
expanded_crate.attrs, sess);
@@ -609,15 +609,15 @@ pub fn pretty_print_input(sess: Session,
609609
cfg: ast::CrateConfig,
610610
input: &Input,
611611
ppm: PpMode) {
612-
let crate = phase_1_parse_input(sess, cfg, input);
612+
let krate = phase_1_parse_input(sess, cfg, input);
613613
614-
let (crate, ast_map, is_expanded) = match ppm {
614+
let (krate, ast_map, is_expanded) = match ppm {
615615
PpmExpanded | PpmExpandedIdentified | PpmTyped => {
616616
let loader = &mut Loader::new(sess);
617-
let (crate, ast_map) = phase_2_configure_and_expand(sess, loader, crate);
618-
(crate, Some(ast_map), true)
617+
let (krate, ast_map) = phase_2_configure_and_expand(sess, loader, krate);
618+
(krate, Some(ast_map), true)
619619
}
620-
_ => (crate, None, false)
620+
_ => (krate, None, false)
621621
};
622622
623623
let annotation = match ppm {
@@ -626,7 +626,7 @@ pub fn pretty_print_input(sess: Session,
626626
}
627627
PpmTyped => {
628628
let ast_map = ast_map.expect("--pretty=typed missing ast_map");
629-
let analysis = phase_3_run_analysis_passes(sess, &crate, ast_map);
629+
let analysis = phase_3_run_analysis_passes(sess, &krate, ast_map);
630630
~TypedAnnotation {
631631
analysis: analysis
632632
} as ~pprust::PpAnn:
@@ -640,7 +640,7 @@ pub fn pretty_print_input(sess: Session,
640640
pprust::print_crate(sess.codemap,
641641
token::get_ident_interner(),
642642
sess.span_diagnostic,
643-
&crate,
643+
&krate,
644644
source_name(input),
645645
&mut rdr,
646646
~stdout as ~io::Writer,

src/librustc/driver/session.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,15 +456,15 @@ pub fn expect<T:Clone>(sess: Session, opt: Option<T>, msg: || -> ~str) -> T {
456456
diagnostic::expect(sess.diagnostic(), opt, msg)
457457
}
458458
459-
pub fn building_library(options: &Options, crate: &ast::Crate) -> bool {
459+
pub fn building_library(options: &Options, krate: &ast::Crate) -> bool {
460460
if options.test { return false }
461461
for output in options.crate_types.iter() {
462462
match *output {
463463
CrateTypeExecutable => {}
464464
CrateTypeStaticlib | CrateTypeDylib | CrateTypeRlib => return true
465465
}
466466
}
467-
match syntax::attr::first_attr_value_str_by_name(crate.attrs, "crate_type") {
467+
match syntax::attr::first_attr_value_str_by_name(krate.attrs, "crate_type") {
468468
Some(s) => {
469469
s.equiv(&("lib")) ||
470470
s.equiv(&("rlib")) ||

src/librustc/front/assign_node_ids_and_map.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ impl ast_map::FoldOps for NodeIdAssigner {
2424
}
2525
}
2626

27-
pub fn assign_node_ids_and_map(sess: Session, crate: ast::Crate) -> (ast::Crate, ast_map::Map) {
28-
ast_map::map_crate(sess.diagnostic(), crate, NodeIdAssigner { sess: sess })
27+
pub fn assign_node_ids_and_map(sess: Session, krate: ast::Crate) -> (ast::Crate, ast_map::Map) {
28+
ast_map::map_crate(sess.diagnostic(), krate, NodeIdAssigner { sess: sess })
2929
}

src/librustc/front/config.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ struct Context<'a> {
1919

2020
// Support conditional compilation by transforming the AST, stripping out
2121
// any items that do not belong in the current configuration
22-
pub fn strip_unconfigured_items(crate: ast::Crate) -> ast::Crate {
23-
let config = crate.config.clone();
24-
strip_items(crate, |attrs| in_cfg(config, attrs))
22+
pub fn strip_unconfigured_items(krate: ast::Crate) -> ast::Crate {
23+
let config = krate.config.clone();
24+
strip_items(krate, |attrs| in_cfg(config, attrs))
2525
}
2626

2727
impl<'a> fold::Folder for Context<'a> {
@@ -39,13 +39,13 @@ impl<'a> fold::Folder for Context<'a> {
3939
}
4040
}
4141

42-
pub fn strip_items(crate: ast::Crate,
42+
pub fn strip_items(krate: ast::Crate,
4343
in_cfg: |attrs: &[ast::Attribute]| -> bool)
4444
-> ast::Crate {
4545
let mut ctxt = Context {
4646
in_cfg: in_cfg,
4747
};
48-
ctxt.fold_crate(crate)
48+
ctxt.fold_crate(krate)
4949
}
5050

5151
fn filter_view_item<'r>(cx: &Context, view_item: &'r ast::ViewItem)

src/librustc/front/feature_gate.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,13 +266,13 @@ impl Visitor<()> for Context {
266266
}
267267
}
268268

269-
pub fn check_crate(sess: Session, crate: &ast::Crate) {
269+
pub fn check_crate(sess: Session, krate: &ast::Crate) {
270270
let mut cx = Context {
271271
features: ~[],
272272
sess: sess,
273273
};
274274

275-
for attr in crate.attrs.iter() {
275+
for attr in krate.attrs.iter() {
276276
if !attr.name().equiv(&("feature")) {
277277
continue
278278
}
@@ -315,7 +315,7 @@ pub fn check_crate(sess: Session, crate: &ast::Crate) {
315315
}
316316
}
317317

318-
visit::walk_crate(&mut cx, crate, ());
318+
visit::walk_crate(&mut cx, krate, ());
319319

320320
sess.abort_if_errors();
321321
}

src/librustc/front/show_span.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ impl Visitor<()> for ShowSpanVisitor {
3030
}
3131
}
3232

33-
pub fn run(sess: Session, crate: &ast::Crate) {
33+
pub fn run(sess: Session, krate: &ast::Crate) {
3434
let mut v = ShowSpanVisitor { sess: sess };
35-
visit::walk_crate(&mut v, crate, ());
35+
visit::walk_crate(&mut v, krate, ());
3636
}

0 commit comments

Comments
 (0)