diff options
| author | Santiago Pastorino <spastorino@gmail.com> | 2017-09-27 22:18:38 -0300 |
|---|---|---|
| committer | Santiago Pastorino <spastorino@gmail.com> | 2017-10-04 23:50:53 -0300 |
| commit | c8549a158648db323690fbb42356042f6b5d956b (patch) | |
| tree | 50173d30cfa622b1bd95c3a39b32c1171d7afd44 | |
| parent | 3d230af80b01ebe62d27de8436832d0e7ab9ed94 (diff) | |
| download | rust-c8549a158648db323690fbb42356042f6b5d956b.tar.gz rust-c8549a158648db323690fbb42356042f6b5d956b.zip | |
Generate Idx in nll using newtype_index!
| -rw-r--r-- | src/Cargo.lock | 1 | ||||
| -rw-r--r-- | src/librustc_mir/Cargo.toml | 1 | ||||
| -rw-r--r-- | src/librustc_mir/lib.rs | 3 | ||||
| -rw-r--r-- | src/librustc_mir/transform/nll/mod.rs | 18 |
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"); |
