about summary refs log tree commit diff
path: root/src/libcore/vec.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-08-30 10:39:28 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-08-30 10:39:28 -0700
commit9518fc79eaa9979721abcdb9eaa506a1140cf3fb (patch)
tree0c78930df57c3b619bd4065b1ff36c7825f814ef /src/libcore/vec.rs
parent45e46f5fc0e78f5855e8870a6e3eb2a0a7e5ae50 (diff)
cargo: Fix some lack of knowledge of basic algebraic identities
Diffstat (limited to 'src/libcore/vec.rs')
-rw-r--r--src/libcore/vec.rs20
1 files changed, 3 insertions, 17 deletions
diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs
index dcdea639084..baf6c7c8601 100644
--- a/src/libcore/vec.rs
+++ b/src/libcore/vec.rs
@@ -1443,23 +1443,9 @@ pure fn lt<T: Ord>(a: &[T], b: &[T]) -> bool {
     return a_len < b_len;
 }
 
-pure fn le<T: Ord>(a: &[T], b: &[T]) -> bool {
-    let (a_len, b_len) = (a.len(), b.len());
-    let mut end = uint::min(&a_len, &b_len);
-
-    let mut i = 0;
-    while i < end {
-        let (c_a, c_b) = (&a[i], &b[i]);
-        if *c_a < *c_b { return true; }
-        if *c_a > *c_b { return false; }
-        i += 1;
-    }
-
-    return a_len <= b_len;
-}
-
-pure fn ge<T: Ord>(a: &[T], b: &[T]) -> bool { !lt(b, a) }
-pure fn gt<T: Ord>(a: &[T], b: &[T]) -> bool { !le(b, a) }
+pure fn le<T: Ord>(a: &[T], b: &[T]) -> bool { !lt(b, a) }
+pure fn ge<T: Ord>(a: &[T], b: &[T]) -> bool { !lt(a, b) }
+pure fn gt<T: Ord>(a: &[T], b: &[T]) -> bool { lt(b, a)  }
 
 impl<T: Ord> &[T]: Ord {
     #[inline(always)]