diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-09-17 12:56:31 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-09-21 22:15:51 -0700 |
| commit | 0169218047dc989acf9ea25e3122b9c659acb6b3 (patch) | |
| tree | 8b1cd720a9e38c745359581e74d216a04e39e5ef /src/libcollections | |
| parent | 087b9283a0ed8df68f47ab07a25e60bc6a3ca050 (diff) | |
| download | rust-0169218047dc989acf9ea25e3122b9c659acb6b3.tar.gz rust-0169218047dc989acf9ea25e3122b9c659acb6b3.zip | |
Fix fallout from Vec stabilization
Diffstat (limited to 'src/libcollections')
| -rw-r--r-- | src/libcollections/bitv.rs | 4 | ||||
| -rw-r--r-- | src/libcollections/slice.rs | 10 | ||||
| -rw-r--r-- | src/libcollections/str.rs | 3 | ||||
| -rw-r--r-- | src/libcollections/string.rs | 5 | ||||
| -rw-r--r-- | src/libcollections/vec.rs | 49 |
5 files changed, 23 insertions, 48 deletions
diff --git a/src/libcollections/bitv.rs b/src/libcollections/bitv.rs index 11affb9dfd5..60c9dfcff18 100644 --- a/src/libcollections/bitv.rs +++ b/src/libcollections/bitv.rs @@ -631,7 +631,7 @@ impl Bitv { let old_size = self.storage.len(); let size = (size + uint::BITS - 1) / uint::BITS; if old_size < size { - self.storage.grow(size - old_size, &0); + self.storage.grow(size - old_size, 0); } } @@ -687,7 +687,7 @@ impl Bitv { // Allocate new words, if needed if new_nwords > self.storage.len() { let to_add = new_nwords - self.storage.len(); - self.storage.grow(to_add, &full_value); + self.storage.grow(to_add, full_value); } // Adjust internal bit count self.nbits = new_nbits; diff --git a/src/libcollections/slice.rs b/src/libcollections/slice.rs index f93b5c89127..44fe962fad4 100644 --- a/src/libcollections/slice.rs +++ b/src/libcollections/slice.rs @@ -283,7 +283,11 @@ pub trait CloneableVector<T> { impl<'a, T: Clone> CloneableVector<T> for &'a [T] { /// Returns a copy of `v`. #[inline] - fn to_vec(&self) -> Vec<T> { Vec::from_slice(*self) } + fn to_vec(&self) -> Vec<T> { + let mut vector = Vec::with_capacity(self.len()); + vector.push_all(*self); + vector + } #[inline(always)] fn into_vec(self) -> Vec<T> { self.to_vec() } @@ -1039,7 +1043,7 @@ mod tests { fn test_grow() { // Test on-stack grow(). let mut v = vec![]; - v.grow(2u, &1i); + v.grow(2u, 1i); { let v = v.as_slice(); assert_eq!(v.len(), 2u); @@ -1048,7 +1052,7 @@ mod tests { } // Test on-heap grow(). - v.grow(3u, &2i); + v.grow(3u, 2i); { let v = v.as_slice(); assert_eq!(v.len(), 5u); diff --git a/src/libcollections/str.rs b/src/libcollections/str.rs index 88c683ef44e..f677b170bb3 100644 --- a/src/libcollections/str.rs +++ b/src/libcollections/str.rs @@ -67,6 +67,7 @@ use core::prelude::{range}; use {Deque, MutableSeq}; use hash; use ringbuf::RingBuf; +use slice::CloneableVector; use string::String; use unicode; use vec::Vec; @@ -754,7 +755,7 @@ pub trait StrAllocating: Str { #[inline] fn to_owned(&self) -> String { unsafe { - mem::transmute(Vec::from_slice(self.as_slice().as_bytes())) + mem::transmute(self.as_slice().as_bytes().to_vec()) } } diff --git a/src/libcollections/string.rs b/src/libcollections/string.rs index a12d403603f..bb66d271ee4 100644 --- a/src/libcollections/string.rs +++ b/src/libcollections/string.rs @@ -23,6 +23,7 @@ use core::raw::Slice as RawSlice; use {Mutable, MutableSeq}; use hash; +use slice::CloneableVector; use str; use str::{CharRange, StrAllocating, MaybeOwned, Owned}; use str::Slice as MaybeOwnedSlice; // So many `Slice`s... @@ -75,9 +76,7 @@ impl String { /// ``` #[inline] pub fn from_str(string: &str) -> String { - String { - vec: Vec::from_slice(string.as_bytes()) - } + String { vec: string.as_bytes().to_vec() } } /// Deprecated. Replaced by `string::raw::from_parts` diff --git a/src/libcollections/vec.rs b/src/libcollections/vec.rs index dc43dd5e53d..d5ca48e605a 100644 --- a/src/libcollections/vec.rs +++ b/src/libcollections/vec.rs @@ -273,16 +273,7 @@ impl<T> Vec<T> { } impl<T: Clone> Vec<T> { - /// Iterates over the `second` vector, copying each element and appending it to - /// the `first`. Afterwards, the `first` is then returned for use again. - /// - /// # Example - /// - /// ``` - /// let vec = vec![1i, 2i]; - /// let vec = vec.append([3i, 4i]); - /// assert_eq!(vec, vec![1, 2, 3, 4]); - /// ``` + /// Deprecated, call `extend` instead. #[inline] #[deprecated = "this function has been deprecated in favor of extend()"] pub fn append(mut self, second: &[T]) -> Vec<T> { @@ -290,21 +281,10 @@ impl<T: Clone> Vec<T> { self } - /// Constructs a `Vec` by cloning elements of a slice. - /// - /// # Example - /// - /// ``` - /// let slice = [1i, 2, 3]; - /// let vec = Vec::from_slice(slice); - /// ``` + /// Deprecated, call `to_vec()` instead #[inline] #[deprecated = "this function has been deprecated in favor of to_vec()"] - pub fn from_slice(values: &[T]) -> Vec<T> { - let mut vector = Vec::new(); - vector.push_all(values); - vector - } + pub fn from_slice(values: &[T]) -> Vec<T> { values.to_vec() } /// Constructs a `Vec` with copies of a value. /// @@ -442,9 +422,7 @@ impl<T: Clone> Vec<T> { #[unstable] impl<T:Clone> Clone for Vec<T> { - fn clone(&self) -> Vec<T> { - Vec::from_slice(self.as_slice()) - } + fn clone(&self) -> Vec<T> { self.as_slice().to_vec() } fn clone_from(&mut self, other: &Vec<T>) { // drop anything in self that will not be overwritten @@ -736,16 +714,7 @@ impl<T> Vec<T> { } } - /// Appends one element to the vector provided. The vector itself is then - /// returned for use again. - /// - /// # Example - /// - /// ``` - /// let vec = vec![1i, 2]; - /// let vec = vec.append_one(3); - /// assert_eq!(vec, vec![1, 2, 3]); - /// ``` + /// Deprecated, call `push` instead #[inline] #[deprecated = "call .push() instead"] pub fn append_one(mut self, x: T) -> Vec<T> { @@ -765,7 +734,7 @@ impl<T> Vec<T> { /// vec.truncate(2); /// assert_eq!(vec, vec![1, 2]); /// ``` - #[stable] + #[unstable = "waiting on failure semantics"] pub fn truncate(&mut self, len: uint) { unsafe { // drop any extra elements @@ -1123,7 +1092,7 @@ impl<T> Vec<T> { /// vec.insert(4, 5); /// assert_eq!(vec, vec![1, 4, 2, 3, 5]); /// ``` - #[stable] + #[unstable = "failure semantics need settling"] pub fn insert(&mut self, index: uint, element: T) { let len = self.len(); assert!(index <= len); @@ -1160,7 +1129,7 @@ impl<T> Vec<T> { /// // v is unchanged: /// assert_eq!(v, vec![1, 3]); /// ``` - #[stable] + #[unstable = "failure semantics need settling"] pub fn remove(&mut self, index: uint) -> Option<T> { let len = self.len(); if index < len { @@ -1192,11 +1161,13 @@ impl<T> Vec<T> { /// # Example /// /// ``` + /// # #![allow(deprecated)] /// let mut vec = vec![box 1i]; /// vec.push_all_move(vec![box 2, box 3, box 4]); /// assert_eq!(vec, vec![box 1, box 2, box 3, box 4]); /// ``` #[inline] + #[deprecated = "use .extend(other.into_iter())"] pub fn push_all_move(&mut self, other: Vec<T>) { self.extend(other.into_iter()); } |
