diff --git a/lib/std/collections/bitset.c3 b/lib/std/collections/bitset.c3 index e46c536e1..cb6beb6d3 100644 --- a/lib/std/collections/bitset.c3 +++ b/lib/std/collections/bitset.c3 @@ -106,10 +106,15 @@ fn void GrowableBitSet.set(&self, usz i) { usz q = i / BITS; usz r = i % BITS; - if (q >= self.data.len()) + usz current_len = self.data.len(); + if (q >= current_len) { usz n = q + 1; self.data.reserve(n); + if (n - 1 >= current_len) + { + self.data.entries[current_len .. (n - 1)] = 0; + } self.data.size = n; } self.data.set(q, self.data[q] | (1 << r)); diff --git a/test/unit/stdlib/collections/bitset.c3 b/test/unit/stdlib/collections/bitset.c3 index e56867295..a31e63ca6 100644 --- a/test/unit/stdlib/collections/bitset.c3 +++ b/test/unit/stdlib/collections/bitset.c3 @@ -47,7 +47,6 @@ fn void! set_get() } def GrowableBitSet = GrowableBitSet(); - fn void! growable_set_get() { GrowableBitSet bs;