Skip to content

Commit 86bd551

Browse files
committed
Addd missing domain size assertions
1 parent c735727 commit 86bd551

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

compiler/rustc_index/src/bit_set.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ fn dense_sparse_intersect<T: Idx>(
289289
// hybrid REL dense
290290
impl<T: Idx> BitRelations<BitSet<T>> for HybridBitSet<T> {
291291
fn union(&mut self, other: &BitSet<T>) -> bool {
292+
assert_eq!(self.domain_size(), other.domain_size);
292293
match self {
293294
HybridBitSet::Sparse(sparse) => {
294295
// `self` is sparse and `other` is dense. To
@@ -316,6 +317,7 @@ impl<T: Idx> BitRelations<BitSet<T>> for HybridBitSet<T> {
316317
}
317318

318319
fn subtract(&mut self, other: &BitSet<T>) -> bool {
320+
assert_eq!(self.domain_size(), other.domain_size);
319321
match self {
320322
HybridBitSet::Sparse(sparse) => {
321323
sequential_update(|elem| sparse.remove(elem), other.iter())
@@ -325,6 +327,7 @@ impl<T: Idx> BitRelations<BitSet<T>> for HybridBitSet<T> {
325327
}
326328

327329
fn intersect(&mut self, other: &BitSet<T>) -> bool {
330+
assert_eq!(self.domain_size(), other.domain_size);
328331
match self {
329332
HybridBitSet::Sparse(sparse) => sparse_intersect(sparse, |elem| other.contains(*elem)),
330333
HybridBitSet::Dense(dense) => dense.intersect(other),
@@ -385,7 +388,6 @@ impl<T: Idx> BitRelations<HybridBitSet<T>> for HybridBitSet<T> {
385388
// Both sets are sparse. Add the elements in
386389
// `other_sparse` to `self` one at a time. This
387390
// may or may not cause `self` to be densified.
388-
assert_eq!(self.domain_size(), other.domain_size());
389391
let mut changed = false;
390392
for elem in other_sparse.iter() {
391393
changed |= self.insert(*elem);

0 commit comments

Comments
 (0)