about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorJesse Jones <jesse9jones@gmail.com>2012-11-17 10:21:14 -0800
committerJesse Jones <jesse9jones@gmail.com>2012-11-17 10:21:14 -0800
commit27cca5b61b5daaec6f07b9e24c368a595df58060 (patch)
treecbf1d44a703a74d2761fa50612aa632692d10af2 /src/libstd
parentdc5ff64abb142413156b569cc32c83e605232c43 (diff)
Made merge_sort pure
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sort.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libstd/sort.rs b/src/libstd/sort.rs
index 4f06cc40c22..451d5e805d0 100644
--- a/src/libstd/sort.rs
+++ b/src/libstd/sort.rs
@@ -13,10 +13,10 @@ type Le<T> = pure 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>(v: &[const T], le: Le<T>) -> ~[T] {
+pub pure fn merge_sort<T: Copy>(v: &[const T], le: Le<T>) -> ~[T] {
     type Slice = (uint, uint);
 
-    return merge_sort_(v, (0u, len(v)), le);
+    unsafe {return merge_sort_(v, (0u, len(v)), le);}
 
     fn merge_sort_<T: Copy>(v: &[const T], slice: Slice, le: Le<T>)
         -> ~[T] {