Skip to content

Commit 07be575

Browse files
committed
---
yaml --- r: 278207 b: refs/heads/auto c: 8428447 h: refs/heads/master i: 278205: a6b55a0 278203: 03ebabd 278199: e5234da 278191: a9c3d73 278175: fab8afa 278143: b2afe6c
1 parent ae3f9ac commit 07be575

File tree

9 files changed

+399
-322
lines changed

9 files changed

+399
-322
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
88
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
99
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1010
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
11-
refs/heads/auto: 16c8f2cca89d071738443a2143880e0079553632
11+
refs/heads/auto: 84284472533b1e48e6365f6c37b644d0fe00647a
1212
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1313
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336
1414
refs/tags/0.2: 1754d02027f2924bed83b0160ee340c7f41d5ea1

branches/auto/src/librustc/hir/lowering.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1438,7 +1438,8 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
14381438
let loop_expr = hir::ExprLoop(loop_block,
14391439
opt_ident.map(|ident| lower_ident(lctx, ident)));
14401440
// add attributes to the outer returned expr node
1441-
return expr(lctx, e.span, loop_expr, e.attrs.clone());
1441+
let attrs = e.attrs.clone();
1442+
return P(hir::Expr { id: e.id, node: loop_expr, span: e.span, attrs: attrs });
14421443
}
14431444

14441445
// Desugar ExprForLoop
@@ -1515,7 +1516,8 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
15151516
let loop_block = block_expr(lctx, match_expr);
15161517
let loop_expr = hir::ExprLoop(loop_block,
15171518
opt_ident.map(|ident| lower_ident(lctx, ident)));
1518-
let loop_expr = expr(lctx, e.span, loop_expr, None);
1519+
let loop_expr =
1520+
P(hir::Expr { id: e.id, node: loop_expr, span: e.span, attrs: None });
15191521

15201522
// `mut iter => { ... }`
15211523
let iter_arm = {

branches/auto/src/librustc/hir/map/definitions.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@ impl Definitions {
195195
self.opt_def_index(node).map(DefId::local)
196196
}
197197

198+
pub fn local_def_id(&self, node: ast::NodeId) -> DefId {
199+
self.opt_local_def_id(node).unwrap()
200+
}
201+
198202
pub fn as_local_node_id(&self, def_id: DefId) -> Option<ast::NodeId> {
199203
if def_id.krate == LOCAL_CRATE {
200204
assert!(def_id.index.as_usize() < self.data.len());

branches/auto/src/librustc_driver/driver.rs

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010

1111
use rustc::dep_graph::DepGraph;
1212
use rustc::hir;
13-
use rustc::hir::map as hir_map;
13+
use rustc::hir::{map as hir_map, FreevarMap, TraitMap};
14+
use rustc::hir::def::DefMap;
1415
use rustc_mir as mir;
1516
use rustc::mir::mir_map::MirMap;
1617
use rustc::session::{Session, CompileResult, compile_result_from_err_count};
@@ -139,9 +140,32 @@ pub fn compile_input(sess: &Session,
139140

140141
time(sess.time_passes(),
141142
"external crate/lib resolution",
142-
|| LocalCrateReader::new(sess, &cstore, &defs, &expanded_crate, &id)
143+
|| LocalCrateReader::new(sess, &cstore, defs, &expanded_crate, &id)
143144
.read_crates(&dep_graph));
144145

146+
time(sess.time_passes(),
147+
"early lint checks",
148+
|| lint::check_ast_crate(sess, &expanded_crate));
149+
150+
let resolve::CrateMap {
151+
def_map,
152+
freevars,
153+
maybe_unused_trait_imports,
154+
export_map,
155+
trait_map,
156+
glob_map,
157+
} = time(sess.time_passes(), "name resolution", || {
158+
resolve::resolve_crate(sess, &expanded_crate, &defs.borrow(), control.make_glob_map)
159+
});
160+
161+
let analysis = ty::CrateAnalysis {
162+
export_map: export_map,
163+
access_levels: AccessLevels::default(),
164+
reachable: NodeSet(),
165+
name: &id,
166+
glob_map: glob_map,
167+
};
168+
145169
// Lower ast -> hir.
146170
let lcx = LoweringContext::new(sess, Some(&expanded_crate), defs);
147171
let hir_forest = &mut time(sess.time_passes(),
@@ -185,10 +209,6 @@ pub fn compile_input(sess: &Session,
185209
hir::check_attr::check_crate(sess, &expanded_crate);
186210
});
187211

188-
time(sess.time_passes(),
189-
"early lint checks",
190-
|| lint::check_ast_crate(sess, &expanded_crate));
191-
192212
let opt_crate = if keep_ast(sess) {
193213
Some(&expanded_crate)
194214
} else {
@@ -200,7 +220,11 @@ pub fn compile_input(sess: &Session,
200220
hir_map,
201221
&arenas,
202222
&id,
203-
control.make_glob_map,
223+
analysis,
224+
def_map,
225+
freevars,
226+
trait_map,
227+
maybe_unused_trait_imports,
204228
|tcx, mir_map, analysis, result| {
205229
{
206230
// Eventually, we will want to track plugins.
@@ -763,7 +787,11 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
763787
hir_map: hir_map::Map<'tcx>,
764788
arenas: &'tcx ty::CtxtArenas<'tcx>,
765789
name: &str,
766-
make_glob_map: resolve::MakeGlobMap,
790+
mut analysis: ty::CrateAnalysis,
791+
def_map: RefCell<DefMap>,
792+
freevars: FreevarMap,
793+
trait_map: TraitMap,
794+
maybe_unused_trait_imports: NodeSet,
767795
f: F)
768796
-> Result<R, usize>
769797
where F: FnOnce(&TyCtxt<'tcx>, Option<MirMap<'tcx>>, ty::CrateAnalysis, CompileResult) -> R
@@ -788,25 +816,6 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
788816
})
789817
})?;
790818

791-
let resolve::CrateMap {
792-
def_map,
793-
freevars,
794-
maybe_unused_trait_imports,
795-
export_map,
796-
trait_map,
797-
glob_map,
798-
} = time(sess.time_passes(),
799-
"name resolution",
800-
|| resolve::resolve_crate(sess, &hir_map, make_glob_map));
801-
802-
let mut analysis = ty::CrateAnalysis {
803-
export_map: export_map,
804-
access_levels: AccessLevels::default(),
805-
reachable: NodeSet(),
806-
name: name,
807-
glob_map: glob_map,
808-
};
809-
810819
let named_region_map = time(time_passes,
811820
"lifetime resolution",
812821
|| middle::resolve_lifetime::krate(sess,

0 commit comments

Comments
 (0)