diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-09-02 15:37:15 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-09-02 15:38:18 -0700 |
| commit | 087c5032a86ad2f2433c6e5f9dcc597ec01de004 (patch) | |
| tree | c397c9d080854d4be94730f2e9a7ce31ff067dc0 /src/libcore/vec.rs | |
| parent | 7fb1a4e2d1606f444d1ac40654b3ad11b081a07c (diff) | |
core: deny(vecs_implicity_copyable)
Diffstat (limited to 'src/libcore/vec.rs')
| -rw-r--r-- | src/libcore/vec.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs index 3f5051ac55b..0f99ec2a227 100644 --- a/src/libcore/vec.rs +++ b/src/libcore/vec.rs @@ -419,7 +419,7 @@ fn rsplit<T: copy>(v: &[T], f: fn(T) -> bool) -> ~[~[T]] { if (ln == 0u) { return ~[] } let mut end = ln; - let mut result = ~[]; + let mut result = ~[mut ]; while end > 0u { match rposition_between(v, 0u, end, f) { None => break, @@ -430,7 +430,8 @@ fn rsplit<T: copy>(v: &[T], f: fn(T) -> bool) -> ~[~[T]] { } } push(result, slice(v, 0u, end)); - reversed(result) + reverse(result); + return from_mut(move result); } /** @@ -443,7 +444,7 @@ fn rsplitn<T: copy>(v: &[T], n: uint, f: fn(T) -> bool) -> ~[~[T]] { let mut end = ln; let mut count = n; - let mut result = ~[]; + let mut result = ~[mut ]; while end > 0u && count > 0u { match rposition_between(v, 0u, end, f) { None => break, @@ -456,7 +457,8 @@ fn rsplitn<T: copy>(v: &[T], n: uint, f: fn(T) -> bool) -> ~[~[T]] { } } push(result, slice(v, 0u, end)); - reversed(result) + reverse(result); + return from_mut(result); } // Mutators @@ -1481,7 +1483,7 @@ impl<T: Ord> @[T]: Ord { impl<T: copy> ~[T]: add<&[const T],~[T]> { #[inline(always)] pure fn add(rhs: &[const T]) -> ~[T] { - append(self, rhs) + append(copy self, rhs) } } |
