13
13
use driver;
14
14
use rustc:: dep_graph:: DepGraph ;
15
15
use rustc_lint;
16
- use rustc_resolve as resolve ;
16
+ use rustc_resolve:: MakeGlobMap ;
17
17
use rustc:: middle:: lang_items;
18
18
use rustc:: middle:: free_region:: FreeRegionMap ;
19
19
use rustc:: middle:: region:: { self , CodeExtent } ;
@@ -40,7 +40,6 @@ use syntax::errors::{Level, RenderSpan};
40
40
use syntax:: parse:: token;
41
41
use syntax:: feature_gate:: UnstableFeatures ;
42
42
43
- use rustc:: hir:: lowering:: { lower_crate, LoweringContext } ;
44
43
use rustc:: hir;
45
44
46
45
struct Env < ' a , ' tcx : ' a > {
@@ -123,26 +122,28 @@ fn test_env<F>(source_string: &str,
123
122
let krate = driver:: assign_node_ids ( & sess, krate) ;
124
123
let defs = & RefCell :: new ( hir_map:: collect_definitions ( & krate) ) ;
125
124
LocalCrateReader :: new ( & sess, & cstore, defs, & krate, "test_crate" ) . read_crates ( & dep_graph) ;
126
- let lcx = LoweringContext :: new ( & sess, Some ( & krate) , defs) ;
127
125
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
+
129
132
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) ;
131
134
132
135
// run just enough stuff to build a tcx:
133
136
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 ( ) ) ;
137
138
let region_map = region:: resolve_crate ( & sess, & ast_map) ;
138
139
let index = stability:: Index :: new ( & ast_map) ;
139
140
TyCtxt :: create_and_enter ( & sess,
140
141
& arenas,
141
- def_map,
142
+ resolutions . def_map ,
142
143
named_region_map. unwrap ( ) ,
143
144
ast_map,
144
- freevars,
145
- maybe_unused_trait_imports,
145
+ resolutions . freevars ,
146
+ resolutions . maybe_unused_trait_imports ,
146
147
region_map,
147
148
lang_items,
148
149
index,
0 commit comments