about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2017-09-27 22:18:38 -0300
committerSantiago Pastorino <spastorino@gmail.com>2017-10-04 23:50:53 -0300
commitc8549a158648db323690fbb42356042f6b5d956b (patch)
tree50173d30cfa622b1bd95c3a39b32c1171d7afd44
parent3d230af80b01ebe62d27de8436832d0e7ab9ed94 (diff)
downloadrust-c8549a158648db323690fbb42356042f6b5d956b.tar.gz
rust-c8549a158648db323690fbb42356042f6b5d956b.zip
Generate Idx in nll using newtype_index!
-rw-r--r--src/Cargo.lock1
-rw-r--r--src/librustc_mir/Cargo.toml1
-rw-r--r--src/librustc_mir/lib.rs3
-rw-r--r--src/librustc_mir/transform/nll/mod.rs18
4 files changed, 7 insertions, 16 deletions
diff --git a/src/Cargo.lock b/src/Cargo.lock
index 26be463f6bb..77e33855f23 100644
--- a/src/Cargo.lock
+++ b/src/Cargo.lock
@@ -1668,6 +1668,7 @@ dependencies = [
  "rustc_const_math 0.0.0",
  "rustc_data_structures 0.0.0",
  "rustc_errors 0.0.0",
+ "serialize 0.0.0",
  "syntax 0.0.0",
  "syntax_pos 0.0.0",
 ]
diff --git a/src/librustc_mir/Cargo.toml b/src/librustc_mir/Cargo.toml
index 936fd5a774d..b7a576babeb 100644
--- a/src/librustc_mir/Cargo.toml
+++ b/src/librustc_mir/Cargo.toml
@@ -17,5 +17,6 @@ rustc_const_eval = { path = "../librustc_const_eval" }
 rustc_const_math = { path = "../librustc_const_math" }
 rustc_data_structures = { path = "../librustc_data_structures" }
 rustc_errors = { path = "../librustc_errors" }
+serialize = { path = "../libserialize" }
 syntax = { path = "../libsyntax" }
 syntax_pos = { path = "../libsyntax_pos" }
diff --git a/src/librustc_mir/lib.rs b/src/librustc_mir/lib.rs
index d0b9849986b..553fec20217 100644
--- a/src/librustc_mir/lib.rs
+++ b/src/librustc_mir/lib.rs
@@ -30,7 +30,8 @@ extern crate bitflags;
 extern crate graphviz as dot;
 #[macro_use]
 extern crate rustc;
-extern crate rustc_data_structures;
+#[macro_use] extern crate rustc_data_structures;
+extern crate serialize as rustc_serialize;
 extern crate rustc_errors;
 #[macro_use]
 extern crate syntax;
diff --git a/src/librustc_mir/transform/nll/mod.rs b/src/librustc_mir/transform/nll/mod.rs
index f06441f77e2..c6acc53f5fa 100644
--- a/src/librustc_mir/transform/nll/mod.rs
+++ b/src/librustc_mir/transform/nll/mod.rs
@@ -19,6 +19,8 @@ use rustc::util::nodemap::FxHashSet;
 use rustc_data_structures::indexed_vec::{IndexVec, Idx};
 use syntax_pos::DUMMY_SP;
 use std::collections::HashMap;
+use std::fmt::{self, Debug, Formatter};
+use std::u32;
 
 #[allow(dead_code)]
 struct NLLVisitor<'a, 'gcx: 'a + 'tcx, 'tcx: 'a> {
@@ -155,18 +157,4 @@ struct Region {
     points: FxHashSet<Location>,
 }
 
-#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd, Debug)]
-pub struct RegionIndex(pub u32);
-
-impl Idx for RegionIndex {
-    #[inline]
-    fn new(idx: usize) -> Self {
-        assert!(idx <= ::std::u32::MAX as usize);
-        RegionIndex(idx as u32)
-    }
-
-    #[inline]
-    fn index(self) -> usize {
-        self.0 as usize
-    }
-}
+newtype_index!(RegionIndex, "region_index");