···1313 fn next_luby(&mut self) {
1414 // there is no siple cast of usize to isize that is safe
1515 // without a lot of casts, this works due to two's complement
1616- if self.u & (!self.u + 1) == self.v {
1616+ if self.u & self.u.wrapping_neg() == self.v {
1717 self.u += 1;
1818 self.v = 1;
1919 } else {