Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 800d653

Browse files
committed
Small fixes
1 parent 2110ac3 commit 800d653

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

compiler/rustc_index/src/bit_set.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,10 +271,10 @@ fn dense_sparse_intersect<T: Idx>(
271271
dense: &BitSet<T>,
272272
sparse: &SparseBitSet<T>,
273273
) -> (SparseBitSet<T>, bool) {
274-
let n = dense.count();
275274
let mut sparse_copy = sparse.clone();
276275
sparse_intersect(&mut sparse_copy, |el| !dense.contains(*el));
277-
(sparse_copy, dense.count() != n)
276+
let n = sparse_copy.len();
277+
(sparse_copy, n != dense.count())
278278
}
279279

280280
impl<T: Idx> BitRelations<HybridBitSet<T>> for BitSet<T> {
@@ -303,7 +303,10 @@ impl<T: Idx> BitRelations<HybridBitSet<T>> for BitSet<T> {
303303
match other {
304304
HybridBitSet::Sparse(sparse) => {
305305
let (updated, changed) = dense_sparse_intersect(self, sparse);
306-
*self = updated.to_dense();
306+
self.clear();
307+
for elem in updated.iter() {
308+
self.insert(*elem);
309+
}
307310
changed
308311
}
309312
HybridBitSet::Dense(dense) => self.intersect(dense),

0 commit comments

Comments
 (0)