about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>2016-02-05 09:32:33 +0100
committerOliver 'ker' Schneider <git-spam-no-reply9815368754983@oli-obk.de>2016-02-09 16:53:42 +0100
commit41c892f5e141a4bd34252ec46f3b9debc3cdafdd (patch)
tree1f8d0222b74e1600e89cbb0da35b7b119d75ae0c
parent6630a0819553898c3fc0d060cc72a94d62ae1330 (diff)
downloadrust-41c892f5e141a4bd34252ec46f3b9debc3cdafdd.tar.gz
rust-41c892f5e141a4bd34252ec46f3b9debc3cdafdd.zip
make `MirMap` a struct instead of a type alias for `NodeMap`
-rw-r--r--src/librustc/lib.rs1
-rw-r--r--src/librustc/middle/cstore.rs5
-rw-r--r--src/librustc/mir/mir_map.rs17
-rw-r--r--src/librustc_driver/driver.rs2
-rw-r--r--src/librustc_metadata/csearch.rs3
-rw-r--r--src/librustc_metadata/encoder.rs10
-rw-r--r--src/librustc_mir/mir_map.rs30
-rw-r--r--src/librustc_mir/transform/erase_regions.rs4
-rw-r--r--src/librustc_trans/trans/base.rs4
-rw-r--r--src/librustc_trans/trans/collector.rs2
-rw-r--r--src/librustc_trans/trans/context.rs2
11 files changed, 50 insertions, 30 deletions
diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs
index f88034d142a..92cebb48b69 100644
--- a/src/librustc/lib.rs
+++ b/src/librustc/lib.rs
@@ -126,6 +126,7 @@ pub mod mir {
     pub mod repr;
     pub mod tcx;
     pub mod visit;
+    pub mod mir_map;
 }
 
 pub mod session;
diff --git a/src/librustc/middle/cstore.rs b/src/librustc/middle/cstore.rs
index 8355154ad21..1e21d6aabe9 100644
--- a/src/librustc/middle/cstore.rs
+++ b/src/librustc/middle/cstore.rs
@@ -29,6 +29,7 @@ use middle::lang_items;
 use middle::ty::{self, Ty, VariantKind};
 use middle::def_id::{DefId, DefIndex};
 use mir::repr::Mir;
+use mir::mir_map::MirMap;
 use session::Session;
 use session::search_paths::PathKind;
 use util::nodemap::{FnvHashMap, NodeMap, NodeSet};
@@ -244,7 +245,7 @@ pub trait CrateStore<'tcx> : Any {
                        item_symbols: &RefCell<NodeMap<String>>,
                        link_meta: &LinkMeta,
                        reachable: &NodeSet,
-                       mir_map: &NodeMap<Mir<'tcx>>,
+                       mir_map: &MirMap<'tcx>,
                        krate: &hir::Crate) -> Vec<u8>;
     fn metadata_encoding_version(&self) -> &[u8];
 }
@@ -428,7 +429,7 @@ impl<'tcx> CrateStore<'tcx> for DummyCrateStore {
                        item_symbols: &RefCell<NodeMap<String>>,
                        link_meta: &LinkMeta,
                        reachable: &NodeSet,
-                       mir_map: &NodeMap<Mir<'tcx>>,
+                       mir_map: &MirMap<'tcx>,
                        krate: &hir::Crate) -> Vec<u8> { vec![] }
     fn metadata_encoding_version(&self) -> &[u8] { unimplemented!() }
 }
diff --git a/src/librustc/mir/mir_map.rs b/src/librustc/mir/mir_map.rs
new file mode 100644
index 00000000000..4fc59676ee4
--- /dev/null
+++ b/src/librustc/mir/mir_map.rs
@@ -0,0 +1,17 @@
+// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+use util::nodemap::NodeMap;
+use mir::repr::Mir;
+
+pub struct MirMap<'tcx> {
+    pub map: NodeMap<Mir<'tcx>>,
+}
+
diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs
index e5066399323..42a52e17e8a 100644
--- a/src/librustc_driver/driver.rs
+++ b/src/librustc_driver/driver.rs
@@ -12,7 +12,7 @@ use rustc::dep_graph::DepGraph;
 use rustc::front;
 use rustc::front::map as hir_map;
 use rustc_mir as mir;
-use rustc_mir::mir_map::MirMap;
+use rustc::mir::mir_map::MirMap;
 use rustc::session::{Session, CompileResult, compile_result_from_err_count};
 use rustc::session::config::{self, Input, OutputFilenames, OutputType};
 use rustc::session::search_paths::PathKind;
diff --git a/src/librustc_metadata/csearch.rs b/src/librustc_metadata/csearch.rs
index bc52921e1b8..06a2727ea28 100644
--- a/src/librustc_metadata/csearch.rs
+++ b/src/librustc_metadata/csearch.rs
@@ -23,6 +23,7 @@ use middle::def_id::{DefId, DefIndex};
 
 use rustc::front::map as hir_map;
 use rustc::mir::repr::Mir;
+use rustc::mir::mir_map::MirMap;
 use rustc::util::nodemap::{FnvHashMap, NodeMap, NodeSet};
 
 use std::cell::RefCell;
@@ -502,7 +503,7 @@ impl<'tcx> CrateStore<'tcx> for cstore::CStore {
                        item_symbols: &RefCell<NodeMap<String>>,
                        link_meta: &LinkMeta,
                        reachable: &NodeSet,
-                       mir_map: &NodeMap<Mir<'tcx>>,
+                       mir_map: &MirMap<'tcx>,
                        krate: &hir::Crate) -> Vec<u8>
     {
         let encode_inlined_item: encoder::EncodeInlinedItem =
diff --git a/src/librustc_metadata/encoder.rs b/src/librustc_metadata/encoder.rs
index 8df72016078..50030ced0ab 100644
--- a/src/librustc_metadata/encoder.rs
+++ b/src/librustc_metadata/encoder.rs
@@ -30,7 +30,7 @@ use middle::ty::{self, Ty};
 use rustc::back::svh::Svh;
 use rustc::front::map::{LinkedPath, PathElem, PathElems};
 use rustc::front::map as ast_map;
-use rustc::mir::repr::Mir;
+use rustc::mir::mir_map::MirMap;
 use rustc::session::config;
 use rustc::util::nodemap::{FnvHashMap, NodeMap, NodeSet};
 
@@ -66,7 +66,7 @@ pub struct EncodeParams<'a, 'tcx: 'a> {
     pub cstore: &'a cstore::CStore,
     pub encode_inlined_item: EncodeInlinedItem<'a>,
     pub reachable: &'a NodeSet,
-    pub mir_map: &'a NodeMap<Mir<'tcx>>,
+    pub mir_map: &'a MirMap<'tcx>,
 }
 
 pub struct EncodeContext<'a, 'tcx: 'a> {
@@ -79,7 +79,7 @@ pub struct EncodeContext<'a, 'tcx: 'a> {
     pub encode_inlined_item: RefCell<EncodeInlinedItem<'a>>,
     pub type_abbrevs: tyencode::abbrev_map<'tcx>,
     pub reachable: &'a NodeSet,
-    pub mir_map: &'a NodeMap<Mir<'tcx>>,
+    pub mir_map: &'a MirMap<'tcx>,
 }
 
 impl<'a, 'tcx> EncodeContext<'a,'tcx> {
@@ -824,7 +824,7 @@ fn encode_inlined_item(ecx: &EncodeContext,
 }
 
 fn encode_mir(ecx: &EncodeContext, rbml_w: &mut Encoder, node_id: NodeId) {
-    if let Some(mir) = ecx.mir_map.get(&node_id) {
+    if let Some(mir) = ecx.mir_map.map.get(&node_id) {
         rbml_w.start_tag(tag_mir as usize);
         rbml_w.emit_opaque(|opaque_encoder| {
             tls::enter_encoding_context(ecx, opaque_encoder, |_, opaque_encoder| {
@@ -1447,7 +1447,7 @@ fn my_visit_expr(expr: &hir::Expr,
 
             ecx.tcx.map.with_path(expr.id, |path| encode_path(rbml_w, path));
 
-            assert!(ecx.mir_map.contains_key(&expr.id));
+            assert!(ecx.mir_map.map.contains_key(&expr.id));
             encode_mir(ecx, rbml_w, expr.id);
 
             rbml_w.end_tag();
diff --git a/src/librustc_mir/mir_map.rs b/src/librustc_mir/mir_map.rs
index 7d4b0288a03..f7a0642fd97 100644
--- a/src/librustc_mir/mir_map.rs
+++ b/src/librustc_mir/mir_map.rs
@@ -17,7 +17,6 @@
 //! - `#[rustc_mir(pretty="file.mir")]`
 
 extern crate syntax;
-extern crate rustc;
 extern crate rustc_front;
 
 use build;
@@ -29,21 +28,22 @@ use rustc::mir::repr::Mir;
 use hair::cx::Cx;
 use std::fs::File;
 
-use self::rustc::middle::infer;
-use self::rustc::middle::region::CodeExtentData;
-use self::rustc::middle::ty::{self, Ty};
-use self::rustc::util::common::ErrorReported;
-use self::rustc::util::nodemap::NodeMap;
-use self::rustc_front::hir;
-use self::rustc_front::intravisit::{self, Visitor};
-use self::syntax::ast;
-use self::syntax::attr::AttrMetaMethods;
-use self::syntax::codemap::Span;
-
-pub type MirMap<'tcx> = NodeMap<Mir<'tcx>>;
+use rustc::mir::mir_map::MirMap;
+use rustc::middle::infer;
+use rustc::middle::region::CodeExtentData;
+use rustc::middle::ty::{self, Ty};
+use rustc::util::common::ErrorReported;
+use rustc::util::nodemap::NodeMap;
+use rustc_front::hir;
+use rustc_front::intravisit::{self, Visitor};
+use syntax::ast;
+use syntax::attr::AttrMetaMethods;
+use syntax::codemap::Span;
 
 pub fn build_mir_for_crate<'tcx>(tcx: &ty::ctxt<'tcx>) -> MirMap<'tcx> {
-    let mut map = NodeMap();
+    let mut map = MirMap {
+        map: NodeMap(),
+    };
     {
         let mut dump = OuterDump {
             tcx: tcx,
@@ -182,7 +182,7 @@ impl<'a, 'm, 'tcx> Visitor<'tcx> for InnerDump<'a,'m,'tcx> {
                     }
                 }
 
-                let previous = self.map.insert(id, mir);
+                let previous = self.map.map.insert(id, mir);
                 assert!(previous.is_none());
             }
             Err(ErrorReported) => {}
diff --git a/src/librustc_mir/transform/erase_regions.rs b/src/librustc_mir/transform/erase_regions.rs
index d851daffe89..0f0317b6b19 100644
--- a/src/librustc_mir/transform/erase_regions.rs
+++ b/src/librustc_mir/transform/erase_regions.rs
@@ -15,14 +15,14 @@
 use rustc::middle::ty;
 use rustc::mir::repr::*;
 use rustc::mir::visit::MutVisitor;
-use mir_map::MirMap;
 use transform::MirPass;
+use rustc::mir::mir_map::MirMap;
 
 pub fn erase_regions<'tcx>(tcx: &ty::ctxt<'tcx>, mir_map: &mut MirMap<'tcx>) {
     let mut eraser = EraseRegions::new(tcx);
 
-    for mir in mir_map.iter_mut().map(|(_, v)| v) {
         eraser.run_on_mir(mir);
+    for (_, mir) in &mut mir_map.map {
     }
 }
 
diff --git a/src/librustc_trans/trans/base.rs b/src/librustc_trans/trans/base.rs
index 57e69a0efa9..720ec3f1689 100644
--- a/src/librustc_trans/trans/base.rs
+++ b/src/librustc_trans/trans/base.rs
@@ -48,7 +48,7 @@ use middle::ty::adjustment::CustomCoerceUnsized;
 use rustc::dep_graph::DepNode;
 use rustc::front::map as hir_map;
 use rustc::util::common::time;
-use rustc_mir::mir_map::MirMap;
+use rustc::mir::mir_map::MirMap;
 use session::config::{self, NoDebugInfo, FullDebugInfo};
 use session::Session;
 use trans::_match;
@@ -1596,7 +1596,7 @@ pub fn new_fn_ctxt<'a, 'tcx>(ccx: &'a CrateContext<'a, 'tcx>,
         false
     };
 
-    let mir = ccx.mir_map().get(&id);
+    let mir = ccx.mir_map().map.get(&id);
 
     let mut fcx = FunctionContext {
         mir: mir,
diff --git a/src/librustc_trans/trans/collector.rs b/src/librustc_trans/trans/collector.rs
index 6ec73788598..df86685e236 100644
--- a/src/librustc_trans/trans/collector.rs
+++ b/src/librustc_trans/trans/collector.rs
@@ -400,7 +400,7 @@ fn load_mir<'a, 'tcx: 'a>(ccx: &CrateContext<'a, 'tcx>,
 
     if def_id.is_local() {
         let node_id = ccx.tcx().map.as_local_node_id(def_id).unwrap();
-        let mir_opt = ccx.mir_map().get(&node_id);
+        let mir_opt = ccx.mir_map().map.get(&node_id);
         let mir = errors::expect(ccx.sess().diagnostic(),
                              mir_opt,
                              mir_not_found_error_message);
diff --git a/src/librustc_trans/trans/context.rs b/src/librustc_trans/trans/context.rs
index 38459c1ec3c..b2ebaac665b 100644
--- a/src/librustc_trans/trans/context.rs
+++ b/src/librustc_trans/trans/context.rs
@@ -15,7 +15,7 @@ use middle::cstore::LinkMeta;
 use middle::def::ExportMap;
 use middle::def_id::DefId;
 use middle::traits;
-use rustc_mir::mir_map::MirMap;
+use rustc::mir::mir_map::MirMap;
 use trans::adt;
 use trans::base;
 use trans::builder::Builder;