summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/convert
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2014-01-13 10:10:34 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-01-13 10:10:34 -0800
commit503dfc54e9d1f30f6fd9fd0c4e3cd80aad6e2f1d (patch)
treeb3f60ec3845650f1b08747d90d9c421866ab701e /src/library/scala/collection/convert
parent40b5a4e6ed9681b1100f9971899b75f0b07d95d5 (diff)
parent973f69ac75507ec602f740b3c291ded2958ea87c (diff)
downloadscala-503dfc54e9d1f30f6fd9fd0c4e3cd80aad6e2f1d.tar.gz
scala-503dfc54e9d1f30f6fd9fd0c4e3cd80aad6e2f1d.tar.bz2
scala-503dfc54e9d1f30f6fd9fd0c4e3cd80aad6e2f1d.zip
Merge pull request #3302 from Ichoran/issue/6364
Resolves SI-6364, O(n) performance of wrapped set contains.
Diffstat (limited to 'src/library/scala/collection/convert')
-rw-r--r--src/library/scala/collection/convert/Wrappers.scala6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/library/scala/collection/convert/Wrappers.scala b/src/library/scala/collection/convert/Wrappers.scala
index 56f1802509..14ae57c43a 100644
--- a/src/library/scala/collection/convert/Wrappers.scala
+++ b/src/library/scala/collection/convert/Wrappers.scala
@@ -102,8 +102,14 @@ private[collection] trait Wrappers {
override def clone(): JListWrapper[A] = JListWrapper(new ju.ArrayList[A](underlying))
}
+ // Note various overrides to avoid performance gotchas.
class SetWrapper[A](underlying: Set[A]) extends ju.AbstractSet[A] {
self =>
+ override def contains(o: Object): Boolean = {
+ try { underlying.contains(o.asInstanceOf[A]) }
+ catch { case cce: ClassCastException => false }
+ }
+ override def isEmpty = underlying.isEmpty
def size = underlying.size
def iterator = new ju.Iterator[A] {
val ui = underlying.iterator