Skip to content

Commit dcccf82

Browse files
committed
Fixing bitvset is_disjoint, fixes #16587
1 parent 40c4516 commit dcccf82

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/libcollections/bitv.rs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1522,7 +1522,7 @@ impl Set<uint> for BitvSet {
15221522

15231523
#[inline]
15241524
fn is_disjoint(&self, other: &BitvSet) -> bool {
1525-
self.intersection(other).count() > 0
1525+
self.intersection(other).next().is_none()
15261526
}
15271527

15281528
#[inline]
@@ -2264,6 +2264,24 @@ mod tests {
22642264
assert!(set1.is_subset(&set2)); // { 2 } { 2, 4 }
22652265
}
22662266

2267+
#[test]
2268+
fn test_bitv_set_is_disjoint() {
2269+
let a = BitvSet::from_bitv(from_bytes([0b10100010]));
2270+
let b = BitvSet::from_bitv(from_bytes([0b01000000]));
2271+
let c = BitvSet::new();
2272+
let d = BitvSet::from_bitv(from_bytes([0b00110000]));
2273+
2274+
assert!(!a.is_disjoint(&d));
2275+
assert!(!d.is_disjoint(&a));
2276+
2277+
assert!(a.is_disjoint(&b))
2278+
assert!(a.is_disjoint(&c))
2279+
assert!(b.is_disjoint(&a))
2280+
assert!(b.is_disjoint(&c))
2281+
assert!(c.is_disjoint(&a))
2282+
assert!(c.is_disjoint(&b))
2283+
}
2284+
22672285
#[test]
22682286
fn test_bitv_set_intersect_with() {
22692287
// Explicitly 0'ed bits

0 commit comments

Comments
 (0)