diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-07-10 14:43:25 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-07-17 14:57:53 -0700 |
| commit | e20549ff192edec9d625f1119bcb077c3abaf070 (patch) | |
| tree | 9cf88e584f36dc0d7f9f29a2fae55f0203bbc39c /src/libextra | |
| parent | 99d44d24c7744361b352499b5f54b8f0bab876ec (diff) | |
| download | rust-e20549ff192edec9d625f1119bcb077c3abaf070.tar.gz rust-e20549ff192edec9d625f1119bcb077c3abaf070.zip | |
librustc: Remove all uses of the `Copy` bound.
Diffstat (limited to 'src/libextra')
| -rw-r--r-- | src/libextra/par.rs | 4 | ||||
| -rw-r--r-- | src/libextra/serialize.rs | 5 | ||||
| -rw-r--r-- | src/libextra/sort.rs | 17 | ||||
| -rw-r--r-- | src/libextra/timer.rs | 6 |
4 files changed, 12 insertions, 20 deletions
diff --git a/src/libextra/par.rs b/src/libextra/par.rs index 1c686843ab0..74ebf525e00 100644 --- a/src/libextra/par.rs +++ b/src/libextra/par.rs @@ -85,7 +85,7 @@ fn map_slices<A:Clone + Send,B:Clone + Send>( } /// A parallel version of map. -pub fn map<A:Copy + Clone + Send,B:Copy + Clone + Send>( +pub fn map<A:Clone + Send,B:Clone + Send>( xs: &[A], fn_factory: &fn() -> ~fn(&A) -> B) -> ~[B] { vec::concat(map_slices(xs, || { let f = fn_factory(); @@ -96,7 +96,7 @@ pub fn map<A:Copy + Clone + Send,B:Copy + Clone + Send>( } /// A parallel version of mapi. -pub fn mapi<A:Copy + Clone + Send,B:Copy + Clone + Send>( +pub fn mapi<A:Clone + Send,B:Clone + Send>( xs: &[A], fn_factory: &fn() -> ~fn(uint, &A) -> B) -> ~[B] { let slices = map_slices(xs, || { diff --git a/src/libextra/serialize.rs b/src/libextra/serialize.rs index 9fec58e7495..53db93313a6 100644 --- a/src/libextra/serialize.rs +++ b/src/libextra/serialize.rs @@ -650,10 +650,7 @@ impl< } } -impl< - S: Encoder, - T: Encodable<S> + Copy -> Encodable<S> for DList<T> { +impl<S: Encoder, T: Encodable<S>> Encodable<S> for @mut DList<T> { fn encode(&self, s: &mut S) { do s.emit_seq(self.len()) |s| { let mut i = 0; diff --git a/src/libextra/sort.rs b/src/libextra/sort.rs index 8a21ea0bd3b..a11b819dda1 100644 --- a/src/libextra/sort.rs +++ b/src/libextra/sort.rs @@ -24,12 +24,12 @@ type Le<'self, T> = &'self fn(v1: &T, v2: &T) -> bool; * Has worst case O(n log n) performance, best case O(n), but * is not space efficient. This is a stable sort. */ -pub fn merge_sort<T:Copy + Clone>(v: &[T], le: Le<T>) -> ~[T] { +pub fn merge_sort<T:Clone>(v: &[T], le: Le<T>) -> ~[T] { type Slice = (uint, uint); return merge_sort_(v, (0u, v.len()), le); - fn merge_sort_<T:Copy + Clone>(v: &[T], slice: Slice, le: Le<T>) -> ~[T] { + fn merge_sort_<T:Clone>(v: &[T], slice: Slice, le: Le<T>) -> ~[T] { let begin = slice.first(); let end = slice.second(); @@ -44,7 +44,7 @@ pub fn merge_sort<T:Copy + Clone>(v: &[T], le: Le<T>) -> ~[T] { merge_sort_(v, b, |x,y| le(x,y))); } - fn merge<T:Copy + Clone>(le: Le<T>, a: &[T], b: &[T]) -> ~[T] { + fn merge<T:Clone>(le: Le<T>, a: &[T], b: &[T]) -> ~[T] { let mut rs = vec::with_capacity(a.len() + b.len()); let a_len = a.len(); let mut a_ix = 0; @@ -183,7 +183,7 @@ static MIN_GALLOP: uint = 7; static INITIAL_TMP_STORAGE: uint = 128; #[allow(missing_doc)] -pub fn tim_sort<T:Copy + Clone + Ord>(array: &mut [T]) { +pub fn tim_sort<T:Clone + Ord>(array: &mut [T]) { let size = array.len(); if size < 2 { return; @@ -227,7 +227,7 @@ pub fn tim_sort<T:Copy + Clone + Ord>(array: &mut [T]) { ms.merge_force_collapse(array); } -fn binarysort<T:Copy + Clone + Ord>(array: &mut [T], start: uint) { +fn binarysort<T:Clone + Ord>(array: &mut [T], start: uint) { let size = array.len(); let mut start = start; assert!(start <= size); @@ -419,7 +419,7 @@ fn MergeState<T>() -> MergeState<T> { } } -impl<T:Copy + Clone + Ord> MergeState<T> { +impl<T:Clone + Ord> MergeState<T> { fn push_run(&mut self, run_base: uint, run_len: uint) { let tmp = RunState{base: run_base, len: run_len}; self.runs.push(tmp); @@ -739,10 +739,7 @@ fn copy_vec<T:Clone>(dest: &mut [T], } #[inline] -fn shift_vec<T:Copy + Clone>(dest: &mut [T], - s1: uint, - s2: uint, - len: uint) { +fn shift_vec<T:Clone>(dest: &mut [T], s1: uint, s2: uint, len: uint) { assert!(s1+len <= dest.len()); let tmp = dest.slice(s2, s2+len).to_owned(); diff --git a/src/libextra/timer.rs b/src/libextra/timer.rs index d957ac43801..1cfbeb9e514 100644 --- a/src/libextra/timer.rs +++ b/src/libextra/timer.rs @@ -118,10 +118,8 @@ pub fn sleep(iotask: &IoTask, msecs: uint) { * on the provided port in the allotted timeout period, then the result will * be a `Some(T)`. If not, then `None` will be returned. */ -pub fn recv_timeout<T:Copy + Send>(iotask: &IoTask, - msecs: uint, - wait_po: &Port<T>) - -> Option<T> { +pub fn recv_timeout<T:Send>(iotask: &IoTask, msecs: uint, wait_po: &Port<T>) + -> Option<T> { let (timeout_po, timeout_ch) = stream::<()>(); let mut timeout_po = timeout_po; delayed_send(iotask, msecs, &timeout_ch, ()); |
