summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRory Graves <rory.graves@fieldmark.co.uk>2017-03-04 08:03:39 +0100
committerRory Graves <rory.graves@fieldmark.co.uk>2017-03-04 08:08:40 +0100
commit0c6d4e5972aed33239bec3f0d5d074606adb4859 (patch)
treea5f3f751e4ef07ed6021a19f8850658c4a2342fd /src
parentaefc8f4936e35b4f835fa2ec70d56443bbd7fa06 (diff)
downloadscala-0c6d4e5972aed33239bec3f0d5d074606adb4859.tar.gz
scala-0c6d4e5972aed33239bec3f0d5d074606adb4859.tar.bz2
scala-0c6d4e5972aed33239bec3f0d5d074606adb4859.zip
Performance improvements for Map4 to HashMap nad Set4 to HashSet transitions
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/collection/immutable/Map.scala2
-rw-r--r--src/library/scala/collection/immutable/Set.scala2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/library/scala/collection/immutable/Map.scala b/src/library/scala/collection/immutable/Map.scala
index cbdf7b39f5..4107b6414d 100644
--- a/src/library/scala/collection/immutable/Map.scala
+++ b/src/library/scala/collection/immutable/Map.scala
@@ -198,7 +198,7 @@ object Map extends ImmutableMapFactory[Map] {
else if (key == key2) new Map4(key1, value1, key2, value, key3, value3, key4, value4)
else if (key == key3) new Map4(key1, value1, key2, value2, key3, value, key4, value4)
else if (key == key4) new Map4(key1, value1, key2, value2, key3, value3, key4, value)
- else new HashMap + ((key1, value1), (key2, value2), (key3, value3), (key4, value4), (key, value))
+ else (new HashMap).updated(key1,value1).updated(key2, value2).updated(key3, value3).updated(key4, value4).updated(key, value)
def + [V1 >: V](kv: (K, V1)): Map[K, V1] = updated(kv._1, kv._2)
def - (key: K): Map[K, V] =
if (key == key1) new Map3(key2, value2, key3, value3, key4, value4)
diff --git a/src/library/scala/collection/immutable/Set.scala b/src/library/scala/collection/immutable/Set.scala
index 047ea736bd..0f16f97cb0 100644
--- a/src/library/scala/collection/immutable/Set.scala
+++ b/src/library/scala/collection/immutable/Set.scala
@@ -193,7 +193,7 @@ object Set extends ImmutableSetFactory[Set] {
elem == elem1 || elem == elem2 || elem == elem3 || elem == elem4
def + (elem: A): Set[A] =
if (contains(elem)) this
- else new HashSet[A] + (elem1, elem2, elem3, elem4, elem)
+ else new HashSet[A] + elem1 + elem2 + elem3 + elem4 + elem
def - (elem: A): Set[A] =
if (elem == elem1) new Set3(elem2, elem3, elem4)
else if (elem == elem2) new Set3(elem1, elem3, elem4)