From 4fac52fdc2b67cef7009c1bc662f7b56d6371e21 Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Sat, 29 Mar 2014 23:13:46 +1100 Subject: [PATCH 1/8] Move EnumSet into libstd Since EnumSet isn't really a collection in that it doesn't actually store types of value --- src/{libcollections => libstd}/enum_set.rs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{libcollections => libstd}/enum_set.rs (100%) diff --git a/src/libcollections/enum_set.rs b/src/libstd/enum_set.rs similarity index 100% rename from src/libcollections/enum_set.rs rename to src/libstd/enum_set.rs From 50f465d1a6cb4f7d26ddb96f379a3bdff4e295ca Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Sat, 29 Mar 2014 23:21:25 +1100 Subject: [PATCH 2/8] Fixup some namespace changes in the move --- src/libcollections/lib.rs | 2 -- src/libstd/enum_set.rs | 4 ++-- src/libstd/lib.rs | 1 + 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/libcollections/lib.rs b/src/libcollections/lib.rs index a83804828e8b5..87a15c305e37f 100644 --- a/src/libcollections/lib.rs +++ b/src/libcollections/lib.rs @@ -31,7 +31,6 @@ pub use bitv::Bitv; pub use btree::BTree; pub use deque::Deque; pub use dlist::DList; -pub use enum_set::EnumSet; pub use hashmap::{HashMap, HashSet}; pub use list::List; pub use lru_cache::LruCache; @@ -45,7 +44,6 @@ pub mod bitv; pub mod btree; pub mod deque; pub mod dlist; -pub mod enum_set; pub mod hashmap; pub mod list; pub mod lru_cache; diff --git a/src/libstd/enum_set.rs b/src/libstd/enum_set.rs index 07f3181d218e5..4bc0353f6795c 100644 --- a/src/libstd/enum_set.rs +++ b/src/libstd/enum_set.rs @@ -13,7 +13,7 @@ //! This module defines a container which uses an efficient bit mask //! representation to hold C-like enum variants. -use std::num::Bitwise; +use super::num::Bitwise; #[deriving(Clone, Eq, TotalEq, Hash, Show)] /// A specialized Set implementation to use enum types. @@ -137,7 +137,7 @@ impl Iterator for Items { #[cfg(test)] mod test { - use std::cast; + use super::cast; use enum_set::{EnumSet, CLike}; diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index c130b89b6d455..81a73f0b3cc95 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -161,6 +161,7 @@ pub mod any; pub mod option; pub mod result; pub mod cell; +pub mod enum_set; /* Tasks and communication */ From 27ac3b25b66c6324602c659bb41ee565bfd7082e Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Sat, 29 Mar 2014 23:25:23 +1100 Subject: [PATCH 3/8] Use functionality needed by EnumSet --- src/libstd/enum_set.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libstd/enum_set.rs b/src/libstd/enum_set.rs index 4bc0353f6795c..ee8fc54d97297 100644 --- a/src/libstd/enum_set.rs +++ b/src/libstd/enum_set.rs @@ -14,6 +14,9 @@ //! representation to hold C-like enum variants. use super::num::Bitwise; +use option::{None, Some, Option}; +use ops::{BitOr,BitAnd,Sub}; +use super::iter::Iterator; #[deriving(Clone, Eq, TotalEq, Hash, Show)] /// A specialized Set implementation to use enum types. From ecacca3ab425ebdffa2119e8b93d061e5095709c Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Sat, 29 Mar 2014 23:33:26 +1100 Subject: [PATCH 4/8] Fix downstream users of enum_set --- src/librustc/middle/ty.rs | 2 +- src/libserialize/collection_impls.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index a86348947f138..5570f145acc4c 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -54,7 +54,7 @@ use syntax::{ast, ast_map}; use syntax::owned_slice::OwnedSlice; use syntax::abi::AbiSet; use syntax; -use collections::enum_set::{EnumSet, CLike}; +use std::enum_set::{EnumSet, CLike}; pub type Disr = u64; diff --git a/src/libserialize/collection_impls.rs b/src/libserialize/collection_impls.rs index 8631fef5168ab..65ded0f6a2594 100644 --- a/src/libserialize/collection_impls.rs +++ b/src/libserialize/collection_impls.rs @@ -17,7 +17,7 @@ use std::hash::{Hash, Hasher}; use {Decodable, Encodable, Decoder, Encoder}; use collections::{DList, RingBuf, TreeMap, TreeSet, Deque, HashMap, HashSet, TrieMap, TrieSet}; -use collections::enum_set::{EnumSet, CLike}; +use std::enum_set::{EnumSet, CLike}; impl< E, From 02e8b959e918bcbce472ad6d68edc73ad1da392f Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Sat, 29 Mar 2014 23:37:09 +1100 Subject: [PATCH 5/8] Update copyright As per CONTRIBUTING.md --- src/libstd/enum_set.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libstd/enum_set.rs b/src/libstd/enum_set.rs index ee8fc54d97297..75a9c33fd0b1b 100644 --- a/src/libstd/enum_set.rs +++ b/src/libstd/enum_set.rs @@ -1,4 +1,4 @@ -// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // From 5d454760a1f20ddac57944426d2642648d396f3f Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Sat, 29 Mar 2014 23:55:51 +1100 Subject: [PATCH 6/8] Fix scope of cast --- src/libstd/enum_set.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libstd/enum_set.rs b/src/libstd/enum_set.rs index 75a9c33fd0b1b..3734ce700c279 100644 --- a/src/libstd/enum_set.rs +++ b/src/libstd/enum_set.rs @@ -140,7 +140,7 @@ impl Iterator for Items { #[cfg(test)] mod test { - use super::cast; + use cast; use enum_set::{EnumSet, CLike}; From b9f2e81fe3f33d973441ad712248f32c85370899 Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Sun, 30 Mar 2014 00:26:10 +1100 Subject: [PATCH 7/8] Don't use super --- src/libstd/enum_set.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libstd/enum_set.rs b/src/libstd/enum_set.rs index 3734ce700c279..b329a2c4a7633 100644 --- a/src/libstd/enum_set.rs +++ b/src/libstd/enum_set.rs @@ -13,10 +13,10 @@ //! This module defines a container which uses an efficient bit mask //! representation to hold C-like enum variants. -use super::num::Bitwise; +use num::Bitwise; use option::{None, Some, Option}; use ops::{BitOr,BitAnd,Sub}; -use super::iter::Iterator; +use iter::Iterator; #[deriving(Clone, Eq, TotalEq, Hash, Show)] /// A specialized Set implementation to use enum types. From 9d2d87997c80bf06446cfe3c47a71c8e4a056e40 Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Sun, 30 Mar 2014 00:26:16 +1100 Subject: [PATCH 8/8] Import iter into the test module --- src/libstd/enum_set.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libstd/enum_set.rs b/src/libstd/enum_set.rs index b329a2c4a7633..46cc9b9d9bd8b 100644 --- a/src/libstd/enum_set.rs +++ b/src/libstd/enum_set.rs @@ -142,6 +142,7 @@ mod test { use cast; + use iter::Iterator; use enum_set::{EnumSet, CLike}; #[deriving(Eq, Show)]