瀏覽代碼

bigint: use full cmp results for checked_sub

Josh Stone 9 年之前
父節點
當前提交
c9e15aef2d
共有 1 個文件被更改,包括 4 次插入3 次删除
  1. 4 3
      src/bigint.rs

+ 4 - 3
src/bigint.rs

@@ -971,10 +971,11 @@ impl CheckedAdd for BigUint {
 impl CheckedSub for BigUint {
 impl CheckedSub for BigUint {
     #[inline]
     #[inline]
     fn checked_sub(&self, v: &BigUint) -> Option<BigUint> {
     fn checked_sub(&self, v: &BigUint) -> Option<BigUint> {
-        if *self < *v {
-            return None;
+        match self.cmp(v) {
+            Less => None,
+            Equal => Some(Zero::zero()),
+            Greater => Some(self.sub(v)),
         }
         }
-        return Some(self.sub(v));
     }
     }
 }
 }