Skip to content

Commit 41c892f

Browse files
committed
make MirMap a struct instead of a type alias for NodeMap
1 parent 6630a08 commit 41c892f

File tree

11 files changed

+50
-30
lines changed

11 files changed

+50
-30
lines changed

src/librustc/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ pub mod mir {
126126
pub mod repr;
127127
pub mod tcx;
128128
pub mod visit;
129+
pub mod mir_map;
129130
}
130131

131132
pub mod session;

src/librustc/middle/cstore.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ use middle::lang_items;
2929
use middle::ty::{self, Ty, VariantKind};
3030
use middle::def_id::{DefId, DefIndex};
3131
use mir::repr::Mir;
32+
use mir::mir_map::MirMap;
3233
use session::Session;
3334
use session::search_paths::PathKind;
3435
use util::nodemap::{FnvHashMap, NodeMap, NodeSet};
@@ -244,7 +245,7 @@ pub trait CrateStore<'tcx> : Any {
244245
item_symbols: &RefCell<NodeMap<String>>,
245246
link_meta: &LinkMeta,
246247
reachable: &NodeSet,
247-
mir_map: &NodeMap<Mir<'tcx>>,
248+
mir_map: &MirMap<'tcx>,
248249
krate: &hir::Crate) -> Vec<u8>;
249250
fn metadata_encoding_version(&self) -> &[u8];
250251
}
@@ -428,7 +429,7 @@ impl<'tcx> CrateStore<'tcx> for DummyCrateStore {
428429
item_symbols: &RefCell<NodeMap<String>>,
429430
link_meta: &LinkMeta,
430431
reachable: &NodeSet,
431-
mir_map: &NodeMap<Mir<'tcx>>,
432+
mir_map: &MirMap<'tcx>,
432433
krate: &hir::Crate) -> Vec<u8> { vec![] }
433434
fn metadata_encoding_version(&self) -> &[u8] { unimplemented!() }
434435
}

src/librustc/mir/mir_map.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
use util::nodemap::NodeMap;
12+
use mir::repr::Mir;
13+
14+
pub struct MirMap<'tcx> {
15+
pub map: NodeMap<Mir<'tcx>>,
16+
}
17+

src/librustc_driver/driver.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use rustc::dep_graph::DepGraph;
1212
use rustc::front;
1313
use rustc::front::map as hir_map;
1414
use rustc_mir as mir;
15-
use rustc_mir::mir_map::MirMap;
15+
use rustc::mir::mir_map::MirMap;
1616
use rustc::session::{Session, CompileResult, compile_result_from_err_count};
1717
use rustc::session::config::{self, Input, OutputFilenames, OutputType};
1818
use rustc::session::search_paths::PathKind;

src/librustc_metadata/csearch.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use middle::def_id::{DefId, DefIndex};
2323

2424
use rustc::front::map as hir_map;
2525
use rustc::mir::repr::Mir;
26+
use rustc::mir::mir_map::MirMap;
2627
use rustc::util::nodemap::{FnvHashMap, NodeMap, NodeSet};
2728

2829
use std::cell::RefCell;
@@ -502,7 +503,7 @@ impl<'tcx> CrateStore<'tcx> for cstore::CStore {
502503
item_symbols: &RefCell<NodeMap<String>>,
503504
link_meta: &LinkMeta,
504505
reachable: &NodeSet,
505-
mir_map: &NodeMap<Mir<'tcx>>,
506+
mir_map: &MirMap<'tcx>,
506507
krate: &hir::Crate) -> Vec<u8>
507508
{
508509
let encode_inlined_item: encoder::EncodeInlinedItem =

src/librustc_metadata/encoder.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use middle::ty::{self, Ty};
3030
use rustc::back::svh::Svh;
3131
use rustc::front::map::{LinkedPath, PathElem, PathElems};
3232
use rustc::front::map as ast_map;
33-
use rustc::mir::repr::Mir;
33+
use rustc::mir::mir_map::MirMap;
3434
use rustc::session::config;
3535
use rustc::util::nodemap::{FnvHashMap, NodeMap, NodeSet};
3636

@@ -66,7 +66,7 @@ pub struct EncodeParams<'a, 'tcx: 'a> {
6666
pub cstore: &'a cstore::CStore,
6767
pub encode_inlined_item: EncodeInlinedItem<'a>,
6868
pub reachable: &'a NodeSet,
69-
pub mir_map: &'a NodeMap<Mir<'tcx>>,
69+
pub mir_map: &'a MirMap<'tcx>,
7070
}
7171

7272
pub struct EncodeContext<'a, 'tcx: 'a> {
@@ -79,7 +79,7 @@ pub struct EncodeContext<'a, 'tcx: 'a> {
7979
pub encode_inlined_item: RefCell<EncodeInlinedItem<'a>>,
8080
pub type_abbrevs: tyencode::abbrev_map<'tcx>,
8181
pub reachable: &'a NodeSet,
82-
pub mir_map: &'a NodeMap<Mir<'tcx>>,
82+
pub mir_map: &'a MirMap<'tcx>,
8383
}
8484

8585
impl<'a, 'tcx> EncodeContext<'a,'tcx> {
@@ -824,7 +824,7 @@ fn encode_inlined_item(ecx: &EncodeContext,
824824
}
825825

826826
fn encode_mir(ecx: &EncodeContext, rbml_w: &mut Encoder, node_id: NodeId) {
827-
if let Some(mir) = ecx.mir_map.get(&node_id) {
827+
if let Some(mir) = ecx.mir_map.map.get(&node_id) {
828828
rbml_w.start_tag(tag_mir as usize);
829829
rbml_w.emit_opaque(|opaque_encoder| {
830830
tls::enter_encoding_context(ecx, opaque_encoder, |_, opaque_encoder| {
@@ -1447,7 +1447,7 @@ fn my_visit_expr(expr: &hir::Expr,
14471447

14481448
ecx.tcx.map.with_path(expr.id, |path| encode_path(rbml_w, path));
14491449

1450-
assert!(ecx.mir_map.contains_key(&expr.id));
1450+
assert!(ecx.mir_map.map.contains_key(&expr.id));
14511451
encode_mir(ecx, rbml_w, expr.id);
14521452

14531453
rbml_w.end_tag();

src/librustc_mir/mir_map.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
//! - `#[rustc_mir(pretty="file.mir")]`
1818
1919
extern crate syntax;
20-
extern crate rustc;
2120
extern crate rustc_front;
2221

2322
use build;
@@ -29,21 +28,22 @@ use rustc::mir::repr::Mir;
2928
use hair::cx::Cx;
3029
use std::fs::File;
3130

32-
use self::rustc::middle::infer;
33-
use self::rustc::middle::region::CodeExtentData;
34-
use self::rustc::middle::ty::{self, Ty};
35-
use self::rustc::util::common::ErrorReported;
36-
use self::rustc::util::nodemap::NodeMap;
37-
use self::rustc_front::hir;
38-
use self::rustc_front::intravisit::{self, Visitor};
39-
use self::syntax::ast;
40-
use self::syntax::attr::AttrMetaMethods;
41-
use self::syntax::codemap::Span;
42-
43-
pub type MirMap<'tcx> = NodeMap<Mir<'tcx>>;
31+
use rustc::mir::mir_map::MirMap;
32+
use rustc::middle::infer;
33+
use rustc::middle::region::CodeExtentData;
34+
use rustc::middle::ty::{self, Ty};
35+
use rustc::util::common::ErrorReported;
36+
use rustc::util::nodemap::NodeMap;
37+
use rustc_front::hir;
38+
use rustc_front::intravisit::{self, Visitor};
39+
use syntax::ast;
40+
use syntax::attr::AttrMetaMethods;
41+
use syntax::codemap::Span;
4442

4543
pub fn build_mir_for_crate<'tcx>(tcx: &ty::ctxt<'tcx>) -> MirMap<'tcx> {
46-
let mut map = NodeMap();
44+
let mut map = MirMap {
45+
map: NodeMap(),
46+
};
4747
{
4848
let mut dump = OuterDump {
4949
tcx: tcx,
@@ -182,7 +182,7 @@ impl<'a, 'm, 'tcx> Visitor<'tcx> for InnerDump<'a,'m,'tcx> {
182182
}
183183
}
184184

185-
let previous = self.map.insert(id, mir);
185+
let previous = self.map.map.insert(id, mir);
186186
assert!(previous.is_none());
187187
}
188188
Err(ErrorReported) => {}

src/librustc_mir/transform/erase_regions.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
use rustc::middle::ty;
1616
use rustc::mir::repr::*;
1717
use rustc::mir::visit::MutVisitor;
18-
use mir_map::MirMap;
1918
use transform::MirPass;
19+
use rustc::mir::mir_map::MirMap;
2020

2121
pub fn erase_regions<'tcx>(tcx: &ty::ctxt<'tcx>, mir_map: &mut MirMap<'tcx>) {
2222
let mut eraser = EraseRegions::new(tcx);
2323

24-
for mir in mir_map.iter_mut().map(|(_, v)| v) {
2524
eraser.run_on_mir(mir);
25+
for (_, mir) in &mut mir_map.map {
2626
}
2727
}
2828

src/librustc_trans/trans/base.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ use middle::ty::adjustment::CustomCoerceUnsized;
4848
use rustc::dep_graph::DepNode;
4949
use rustc::front::map as hir_map;
5050
use rustc::util::common::time;
51-
use rustc_mir::mir_map::MirMap;
51+
use rustc::mir::mir_map::MirMap;
5252
use session::config::{self, NoDebugInfo, FullDebugInfo};
5353
use session::Session;
5454
use trans::_match;
@@ -1596,7 +1596,7 @@ pub fn new_fn_ctxt<'a, 'tcx>(ccx: &'a CrateContext<'a, 'tcx>,
15961596
false
15971597
};
15981598

1599-
let mir = ccx.mir_map().get(&id);
1599+
let mir = ccx.mir_map().map.get(&id);
16001600

16011601
let mut fcx = FunctionContext {
16021602
mir: mir,

src/librustc_trans/trans/collector.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ fn load_mir<'a, 'tcx: 'a>(ccx: &CrateContext<'a, 'tcx>,
400400

401401
if def_id.is_local() {
402402
let node_id = ccx.tcx().map.as_local_node_id(def_id).unwrap();
403-
let mir_opt = ccx.mir_map().get(&node_id);
403+
let mir_opt = ccx.mir_map().map.get(&node_id);
404404
let mir = errors::expect(ccx.sess().diagnostic(),
405405
mir_opt,
406406
mir_not_found_error_message);

src/librustc_trans/trans/context.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use middle::cstore::LinkMeta;
1515
use middle::def::ExportMap;
1616
use middle::def_id::DefId;
1717
use middle::traits;
18-
use rustc_mir::mir_map::MirMap;
18+
use rustc::mir::mir_map::MirMap;
1919
use trans::adt;
2020
use trans::base;
2121
use trans::builder::Builder;

0 commit comments

Comments
 (0)