Skip to content

Commit a8d0594

Browse files
committed
---
yaml --- r: 277821 b: refs/heads/try c: abec20b h: refs/heads/master i: 277819: d678534
1 parent 3cdcbc2 commit a8d0594

File tree

2 files changed

+35
-25
lines changed

2 files changed

+35
-25
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 6dbb0e86aec11050480beb76eade6fb805010ba7
33
refs/heads/snap-stage3: 235d77457d80b549dad3ac36d94f235208a1eafb
4-
refs/heads/try: 6710eef6b2165abef065c72c5fb57389b8e49441
4+
refs/heads/try: abec20b177e7db5509b1045ece4d2de7e07be446
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
77
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try/src/librustc_driver/driver.rs

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -157,30 +157,7 @@ pub fn compile_input(sess: &Session,
157157

158158
let (analysis, resolutions, mut hir_forest) = {
159159
let defs = &mut *defs.borrow_mut();
160-
resolve::with_resolver(sess, defs, control.make_glob_map, |mut resolver| {
161-
time(sess.time_passes(), "name resolution", || {
162-
resolve::resolve_crate(&mut resolver, &expanded_crate);
163-
});
164-
165-
// Lower ast -> hir.
166-
let hir_forest = time(sess.time_passes(), "lowering ast -> hir", || {
167-
let lcx = LoweringContext::new(sess, Some(&expanded_crate), &mut resolver);
168-
hir_map::Forest::new(lower_crate(&lcx, &expanded_crate), dep_graph)
169-
});
170-
171-
(ty::CrateAnalysis {
172-
export_map: resolver.export_map,
173-
access_levels: AccessLevels::default(),
174-
reachable: NodeSet(),
175-
name: &id,
176-
glob_map: if resolver.make_glob_map { Some(resolver.glob_map) } else { None },
177-
}, Resolutions {
178-
def_map: RefCell::new(resolver.def_map),
179-
freevars: resolver.freevars,
180-
trait_map: resolver.trait_map,
181-
maybe_unused_trait_imports: resolver.maybe_unused_trait_imports,
182-
}, hir_forest)
183-
})
160+
lower_and_resolve(sess, &id, defs, &expanded_crate, dep_graph, control.make_glob_map)
184161
};
185162

186163
// Discard MTWT tables that aren't required past lowering to HIR.
@@ -796,6 +773,39 @@ pub fn assign_node_ids(sess: &Session, krate: ast::Crate) -> ast::Crate {
796773
krate
797774
}
798775

776+
pub fn lower_and_resolve<'a>(sess: &Session,
777+
id: &'a str,
778+
defs: &mut hir_map::Definitions,
779+
krate: &ast::Crate,
780+
dep_graph: DepGraph,
781+
make_glob_map: resolve::MakeGlobMap)
782+
-> (ty::CrateAnalysis<'a>, Resolutions, hir_map::Forest) {
783+
resolve::with_resolver(sess, defs, make_glob_map, |mut resolver| {
784+
time(sess.time_passes(), "name resolution", || {
785+
resolve::resolve_crate(&mut resolver, krate);
786+
});
787+
788+
// Lower ast -> hir.
789+
let hir_forest = time(sess.time_passes(), "lowering ast -> hir", || {
790+
let lcx = LoweringContext::new(sess, Some(krate), &mut resolver);
791+
hir_map::Forest::new(lower_crate(&lcx, krate), dep_graph)
792+
});
793+
794+
(ty::CrateAnalysis {
795+
export_map: resolver.export_map,
796+
access_levels: AccessLevels::default(),
797+
reachable: NodeSet(),
798+
name: &id,
799+
glob_map: if resolver.make_glob_map { Some(resolver.glob_map) } else { None },
800+
}, Resolutions {
801+
def_map: RefCell::new(resolver.def_map),
802+
freevars: resolver.freevars,
803+
trait_map: resolver.trait_map,
804+
maybe_unused_trait_imports: resolver.maybe_unused_trait_imports,
805+
}, hir_forest)
806+
})
807+
}
808+
799809
/// Run the resolution, typechecking, region checking and other
800810
/// miscellaneous analysis passes on the crate. Return various
801811
/// structures carrying the results of the analysis.

0 commit comments

Comments
 (0)