diff options
| author | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2016-02-05 09:32:33 +0100 |
|---|---|---|
| committer | Oliver 'ker' Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2016-02-09 16:53:42 +0100 |
| commit | 41c892f5e141a4bd34252ec46f3b9debc3cdafdd (patch) | |
| tree | 1f8d0222b74e1600e89cbb0da35b7b119d75ae0c | |
| parent | 6630a0819553898c3fc0d060cc72a94d62ae1330 (diff) | |
| download | rust-41c892f5e141a4bd34252ec46f3b9debc3cdafdd.tar.gz rust-41c892f5e141a4bd34252ec46f3b9debc3cdafdd.zip | |
make `MirMap` a struct instead of a type alias for `NodeMap`
| -rw-r--r-- | src/librustc/lib.rs | 1 | ||||
| -rw-r--r-- | src/librustc/middle/cstore.rs | 5 | ||||
| -rw-r--r-- | src/librustc/mir/mir_map.rs | 17 | ||||
| -rw-r--r-- | src/librustc_driver/driver.rs | 2 | ||||
| -rw-r--r-- | src/librustc_metadata/csearch.rs | 3 | ||||
| -rw-r--r-- | src/librustc_metadata/encoder.rs | 10 | ||||
| -rw-r--r-- | src/librustc_mir/mir_map.rs | 30 | ||||
| -rw-r--r-- | src/librustc_mir/transform/erase_regions.rs | 4 | ||||
| -rw-r--r-- | src/librustc_trans/trans/base.rs | 4 | ||||
| -rw-r--r-- | src/librustc_trans/trans/collector.rs | 2 | ||||
| -rw-r--r-- | src/librustc_trans/trans/context.rs | 2 |
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; |
