message: loop gen_bigint retries
diff: @@ -52,6 +52,7 @@ impl<R: Rng> RandBigInt for R {
  }
  fn gen_bigint(&mut self, bit_size: usize) -> BigInt {
  + loop {
  // Generate a random BigUint...
  let biguint = self.gen_biguint(bit_size);
  // ...and then randomly assign it a Sign...
  @@ -61,7 +62,7 @@ impl<R: Rng> RandBigInt for R {
  // the probability of generating a zero BigInt would be
  // double that of any other number.
  if self.gen() {
  - return self.gen_bigint(bit_size);
  + continue;
  } else {
  NoSign
  }
  @@ -70,7 +71,8 @@ impl<R: Rng> RandBigInt for R {
  } else {
  Minus
  };
  - BigInt::from_biguint(sign, biguint)
  + return BigInt::from_biguint(sign, biguint);
  + }
  }
  fn gen_biguint_below(&mut self, bound: &BigUint) -> BigUint {
  