Skip to content

Commit 33978b0

Browse files
committed
Refactor hir::lowering API
1 parent 3927ff4 commit 33978b0

File tree

4 files changed

+24
-22
lines changed

4 files changed

+24
-22
lines changed

src/librustc/hir/lowering.rs

+19-16
Original file line numberDiff line numberDiff line change
@@ -91,30 +91,33 @@ impl Resolver for DummyResolver {
9191
}
9292
}
9393

94-
impl<'a> LoweringContext<'a> {
95-
pub fn new(id_assigner: &'a NodeIdAssigner,
96-
c: Option<&Crate>,
97-
resolver: &'a mut Resolver)
98-
-> LoweringContext<'a> {
99-
let crate_root = c.and_then(|c| {
100-
if std_inject::no_core(c) {
101-
None
102-
} else if std_inject::no_std(c) {
103-
Some("core")
104-
} else {
105-
Some("std")
106-
}
107-
});
94+
pub fn lower_crate(krate: &Crate, id_assigner: &NodeIdAssigner, resolver: &mut Resolver)
95+
-> hir::Crate {
96+
LoweringContext {
97+
crate_root: if std_inject::no_core(krate) {
98+
None
99+
} else if std_inject::no_std(krate) {
100+
Some("core")
101+
} else {
102+
Some("std")
103+
},
104+
id_assigner: id_assigner,
105+
parent_def: None,
106+
resolver: resolver,
107+
}.lower_crate(krate)
108+
}
108109

110+
impl<'a> LoweringContext<'a> {
111+
pub fn testing_context(id_assigner: &'a NodeIdAssigner, resolver: &'a mut Resolver) -> Self {
109112
LoweringContext {
110-
crate_root: crate_root,
113+
crate_root: None,
111114
id_assigner: id_assigner,
112115
parent_def: None,
113116
resolver: resolver,
114117
}
115118
}
116119

117-
pub fn lower_crate(&mut self, c: &Crate) -> hir::Crate {
120+
fn lower_crate(&mut self, c: &Crate) -> hir::Crate {
118121
struct ItemLowerer<'lcx, 'interner: 'lcx> {
119122
items: BTreeMap<NodeId, hir::Item>,
120123
lctx: &'lcx mut LoweringContext<'interner>,

src/librustc_driver/driver.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use rustc_typeck as typeck;
3737
use rustc_privacy;
3838
use rustc_plugin::registry::Registry;
3939
use rustc_plugin as plugin;
40-
use rustc::hir::lowering::LoweringContext;
40+
use rustc::hir::lowering::lower_crate;
4141
use rustc_passes::{no_asm, loops, consts, rvalues, static_recursion};
4242
use rustc_const_eval::check_match;
4343
use super::Compilation;
@@ -787,8 +787,7 @@ pub fn lower_and_resolve<'a>(sess: &Session,
787787

788788
// Lower ast -> hir.
789789
let hir_forest = time(sess.time_passes(), "lowering ast -> hir", || {
790-
let krate = LoweringContext::new(sess, Some(krate), &mut resolver).lower_crate(krate);
791-
hir_map::Forest::new(krate, dep_graph)
790+
hir_map::Forest::new(lower_crate(krate, sess, &mut resolver), dep_graph)
792791
});
793792

794793
(ty::CrateAnalysis {

src/librustc_metadata/astencode.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1329,7 +1329,7 @@ fn mk_ctxt() -> parse::ParseSess {
13291329
fn with_testing_context<T, F: FnOnce(&mut LoweringContext) -> T>(f: F) -> T {
13301330
let assigner = FakeNodeIdAssigner;
13311331
let mut resolver = DummyResolver;
1332-
let mut lcx = LoweringContext::new(&assigner, None, &mut resolver);
1332+
let mut lcx = LoweringContext::testing_context(&assigner, &mut resolver);
13331333
f(&mut lcx)
13341334
}
13351335

src/librustdoc/test.rs

+2-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::{LoweringContext, DummyResolver};
31+
use rustc::hir::lowering::{lower_crate, DummyResolver};
3232
use rustc_back::dynamic_lib::DynamicLibrary;
3333
use rustc_back::tempdir::TempDir;
3434
use rustc_driver::{driver, Compilation};
@@ -98,7 +98,7 @@ pub fn run(input: &str,
9898
let defs = &RefCell::new(hir_map::collect_definitions(&krate));
9999

100100
let mut dummy_resolver = DummyResolver;
101-
let krate = LoweringContext::new(&sess, Some(&krate), &mut dummy_resolver).lower_crate(&krate);
101+
let krate = lower_crate(&krate, &sess, &mut dummy_resolver);
102102

103103
let opts = scrape_test_config(&krate);
104104

0 commit comments

Comments
 (0)