diff options
| author | Will Crichton <wcrichto@cs.stanford.edu> | 2021-08-27 11:17:27 -0700 |
|---|---|---|
| committer | Will Crichton <wcrichto@cs.stanford.edu> | 2021-08-27 11:17:27 -0700 |
| commit | 86bd551e4c8954330e5e0d71c09c4ecbf514a5b6 (patch) | |
| tree | da22b660fa12e1a223f30c2cc915d7ebda65a25e | |
| parent | c7357270b8b93ef23f6295abecf8ff27948881c3 (diff) | |
| download | rust-86bd551e4c8954330e5e0d71c09c4ecbf514a5b6.tar.gz rust-86bd551e4c8954330e5e0d71c09c4ecbf514a5b6.zip | |
Addd missing domain size assertions
| -rw-r--r-- | compiler/rustc_index/src/bit_set.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/rustc_index/src/bit_set.rs b/compiler/rustc_index/src/bit_set.rs index fad3b95cf43..8903ed9d9e2 100644 --- a/compiler/rustc_index/src/bit_set.rs +++ b/compiler/rustc_index/src/bit_set.rs @@ -289,6 +289,7 @@ fn dense_sparse_intersect<T: Idx>( // hybrid REL dense impl<T: Idx> BitRelations<BitSet<T>> for HybridBitSet<T> { fn union(&mut self, other: &BitSet<T>) -> bool { + assert_eq!(self.domain_size(), other.domain_size); match self { HybridBitSet::Sparse(sparse) => { // `self` is sparse and `other` is dense. To @@ -316,6 +317,7 @@ impl<T: Idx> BitRelations<BitSet<T>> for HybridBitSet<T> { } fn subtract(&mut self, other: &BitSet<T>) -> bool { + assert_eq!(self.domain_size(), other.domain_size); match self { HybridBitSet::Sparse(sparse) => { sequential_update(|elem| sparse.remove(elem), other.iter()) @@ -325,6 +327,7 @@ impl<T: Idx> BitRelations<BitSet<T>> for HybridBitSet<T> { } fn intersect(&mut self, other: &BitSet<T>) -> bool { + assert_eq!(self.domain_size(), other.domain_size); match self { HybridBitSet::Sparse(sparse) => sparse_intersect(sparse, |elem| other.contains(*elem)), HybridBitSet::Dense(dense) => dense.intersect(other), @@ -385,7 +388,6 @@ impl<T: Idx> BitRelations<HybridBitSet<T>> for HybridBitSet<T> { // Both sets are sparse. Add the elements in // `other_sparse` to `self` one at a time. This // may or may not cause `self` to be densified. - assert_eq!(self.domain_size(), other.domain_size()); let mut changed = false; for elem in other_sparse.iter() { changed |= self.insert(*elem); |
