summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library/scala/collection/BitSetLike.scala2
-rw-r--r--test/files/run/bitsets.scala13
2 files changed, 15 insertions, 0 deletions
diff --git a/src/library/scala/collection/BitSetLike.scala b/src/library/scala/collection/BitSetLike.scala
index 72a6713ffd..034ed2b24a 100644
--- a/src/library/scala/collection/BitSetLike.scala
+++ b/src/library/scala/collection/BitSetLike.scala
@@ -69,6 +69,8 @@ trait BitSetLike[+This <: BitSetLike[This] with SortedSet[Int]] extends SortedSe
s
}
+ override def isEmpty: Boolean = 0 until nwords forall (i => word(i) == 0)
+
implicit def ordering: Ordering[Int] = Ordering.Int
def rangeImpl(from: Option[Int], until: Option[Int]): This = {
diff --git a/test/files/run/bitsets.scala b/test/files/run/bitsets.scala
index 0ea43fcb95..d55f9e4e83 100644
--- a/test/files/run/bitsets.scala
+++ b/test/files/run/bitsets.scala
@@ -37,6 +37,19 @@ object TestMutable {
Console.println("mi1 = " + ms1.toImmutable)
Console.println("mi2 = " + ms2.toImmutable)
Console.println
+
+ val N = 257
+ val gen = 3
+ val bs = BitSet((1 until N): _*)
+ (1 until N).foldLeft(gen) {
+ case (acc, i) =>
+ assert(bs.size == N-i, s"Bad size for $bs, expected ${N-i} actual ${bs.size}")
+ assert(!bs.isEmpty, s"Unexpected isEmpty for $bs")
+ bs -= acc
+ acc*gen % N
+ }
+ assert(bs.size == 0, s"Expected size == 0 for $bs")
+ assert(bs.isEmpty, s"Expected isEmpty for $bs")
}
object TestMutable2 {