Skip to content

Commit 805666a

Browse files
committed
Fix fallout in librustdoc and in tests
1 parent abec20b commit 805666a

File tree

6 files changed

+33
-23
lines changed

6 files changed

+33
-23
lines changed

src/librustc_driver/test.rs

+12-11
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
use driver;
1414
use rustc::dep_graph::DepGraph;
1515
use rustc_lint;
16-
use rustc_resolve as resolve;
16+
use rustc_resolve::MakeGlobMap;
1717
use rustc::middle::lang_items;
1818
use rustc::middle::free_region::FreeRegionMap;
1919
use rustc::middle::region::{self, CodeExtent};
@@ -40,7 +40,6 @@ use syntax::errors::{Level, RenderSpan};
4040
use syntax::parse::token;
4141
use syntax::feature_gate::UnstableFeatures;
4242

43-
use rustc::hir::lowering::{lower_crate, LoweringContext};
4443
use rustc::hir;
4544

4645
struct Env<'a, 'tcx: 'a> {
@@ -123,26 +122,28 @@ fn test_env<F>(source_string: &str,
123122
let krate = driver::assign_node_ids(&sess, krate);
124123
let defs = &RefCell::new(hir_map::collect_definitions(&krate));
125124
LocalCrateReader::new(&sess, &cstore, defs, &krate, "test_crate").read_crates(&dep_graph);
126-
let lcx = LoweringContext::new(&sess, Some(&krate), defs);
127125
let _ignore = dep_graph.in_ignore();
128-
let mut hir_forest = &mut hir_map::Forest::new(lower_crate(&lcx, &krate), dep_graph.clone());
126+
127+
let (_, resolutions, mut hir_forest) = {
128+
let (defs, dep_graph) = (&mut *defs.borrow_mut(), dep_graph.clone());
129+
driver::lower_and_resolve(&sess, "test-crate", defs, &krate, dep_graph, MakeGlobMap::No)
130+
};
131+
129132
let arenas = ty::CtxtArenas::new();
130-
let ast_map = hir_map::map_crate(hir_forest, defs);
133+
let ast_map = hir_map::map_crate(&mut hir_forest, defs);
131134

132135
// run just enough stuff to build a tcx:
133136
let lang_items = lang_items::collect_language_items(&sess, &ast_map);
134-
let resolve::CrateMap { def_map, freevars, maybe_unused_trait_imports, .. } =
135-
resolve::resolve_crate(&sess, &ast_map, resolve::MakeGlobMap::No);
136-
let named_region_map = resolve_lifetime::krate(&sess, &ast_map, &def_map.borrow());
137+
let named_region_map = resolve_lifetime::krate(&sess, &ast_map, &resolutions.def_map.borrow());
137138
let region_map = region::resolve_crate(&sess, &ast_map);
138139
let index = stability::Index::new(&ast_map);
139140
TyCtxt::create_and_enter(&sess,
140141
&arenas,
141-
def_map,
142+
resolutions.def_map,
142143
named_region_map.unwrap(),
143144
ast_map,
144-
freevars,
145-
maybe_unused_trait_imports,
145+
resolutions.freevars,
146+
resolutions.maybe_unused_trait_imports,
146147
region_map,
147148
lang_items,
148149
index,

src/librustdoc/core.rs

+8-5
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ use rustc::hir::map as hir_map;
2020
use rustc::lint;
2121
use rustc_trans::back::link;
2222
use rustc_resolve as resolve;
23-
use rustc::hir::lowering::{lower_crate, LoweringContext};
2423
use rustc_metadata::cstore::CStore;
2524
use rustc_metadata::creader::LocalCrateReader;
2625

@@ -156,18 +155,22 @@ pub fn run_core(search_paths: SearchPaths,
156155

157156
let defs = &RefCell::new(hir_map::collect_definitions(&krate));
158157
LocalCrateReader::new(&sess, &cstore, &defs, &krate, &name).read_crates(&dep_graph);
159-
let lcx = LoweringContext::new(&sess, Some(&krate), defs);
160158

161-
// Lower ast -> hir.
162-
let mut hir_forest = hir_map::Forest::new(lower_crate(&lcx, &krate), dep_graph);
159+
// Lower ast -> hir and resolve.
160+
let (analysis, resolutions, mut hir_forest) = {
161+
let defs = &mut *defs.borrow_mut();
162+
driver::lower_and_resolve(&sess, &name, defs, &krate, dep_graph, resolve::MakeGlobMap::No)
163+
};
164+
163165
let arenas = ty::CtxtArenas::new();
164166
let hir_map = hir_map::map_crate(&mut hir_forest, defs);
165167

166168
abort_on_err(driver::phase_3_run_analysis_passes(&sess,
167169
hir_map,
170+
analysis,
171+
resolutions,
168172
&arenas,
169173
&name,
170-
resolve::MakeGlobMap::No,
171174
|tcx, _, analysis, result| {
172175
// Return if the driver hit an err (in `result`)
173176
if let Err(_) = result {

src/librustdoc/test.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use rustc::hir::map as hir_map;
2828
use rustc::session::{self, config};
2929
use rustc::session::config::{get_unstable_features_setting, OutputType};
3030
use rustc::session::search_paths::{SearchPaths, PathKind};
31-
use rustc::hir::lowering::{lower_crate, LoweringContext};
31+
use rustc::hir::lowering::{lower_crate, LoweringContext, DummyResolver};
3232
use rustc_back::dynamic_lib::DynamicLibrary;
3333
use rustc_back::tempdir::TempDir;
3434
use rustc_driver::{driver, Compilation};
@@ -97,7 +97,8 @@ pub fn run(input: &str,
9797
let dep_graph = DepGraph::new(false);
9898
let defs = &RefCell::new(hir_map::collect_definitions(&krate));
9999

100-
let lcx = LoweringContext::new(&sess, Some(&krate), defs);
100+
let mut dummy_resolver = DummyResolver;
101+
let lcx = LoweringContext::new(&sess, Some(&krate), &mut dummy_resolver);
101102
let krate = lower_crate(&lcx, &krate);
102103

103104
let opts = scrape_test_config(&krate);

src/test/run-make/execution-engine/test.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ use rustc::ty;
3434
use rustc::session::config::{self, basic_options, build_configuration, Input, Options};
3535
use rustc::session::build_session;
3636
use rustc_driver::{driver, abort_on_err};
37-
use rustc::hir::lowering::{lower_crate, LoweringContext};
3837
use rustc_resolve::MakeGlobMap;
3938
use rustc_metadata::creader::LocalCrateReader;
4039
use rustc_metadata::cstore::CStore;
@@ -243,14 +242,16 @@ fn compile_program(input: &str, sysroot: PathBuf)
243242
let krate = driver::assign_node_ids(&sess, krate);
244243
let defs = RefCell::new(ast_map::collect_definitions(&krate));
245244
LocalCrateReader::new(&sess, &cstore, &defs, &krate, &id).read_crates(&dep_graph);
246-
let lcx = LoweringContext::new(&sess, Some(&krate), &defs);
247-
let mut hir_forest = ast_map::Forest::new(lower_crate(&lcx, &krate), dep_graph);
245+
let (analysis, resolutions, mut hir_forest) = {
246+
let defs = &mut *defs.borrow_mut();
247+
driver::lower_and_resolve(&sess, &id, defs, &krate, dep_graph, MakeGlobMap::No)
248+
};
248249
let arenas = ty::CtxtArenas::new();
249250
let ast_map = ast_map::map_crate(&mut hir_forest, &defs);
250251

251252
abort_on_err(driver::phase_3_run_analysis_passes(
252-
&sess, ast_map, &arenas, &id,
253-
MakeGlobMap::No, |tcx, mir_map, analysis, _| {
253+
&sess, ast_map, analysis, resolutions, &arenas, &id,
254+
|tcx, mir_map, analysis, _| {
254255

255256
let trans = driver::phase_4_translate_to_llvm(tcx, mir_map.unwrap(), analysis);
256257

src/test/run-make/pretty-expanded-hygiene/input.pp.rs

+2
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@
1414

1515

1616
fn bar /* 62#0 */() { let x /* 59#2 */ = 1; y /* 61#4 */ + x /* 59#5 */ }
17+
18+
fn y /* 61#0 */() { }

src/test/run-make/pretty-expanded-hygiene/input.rs

+2
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ fn bar() {
2020
let x = 1;
2121
foo!(x)
2222
}
23+
24+
fn y() {}

0 commit comments

Comments
 (0)