diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2017-03-14 13:33:16 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-14 13:33:16 +1000 |
commit | 17e057bcc88e39382699aaad16a4d53b4fa57a5b (patch) | |
tree | 87d3cf8a0df0c4f87050fd354eb44444ffad6ea6 /src/library/scala/collection | |
parent | 3fadf69917c4e72f95b835fbd6bf69d2b775ee79 (diff) | |
parent | 0c6d4e5972aed33239bec3f0d5d074606adb4859 (diff) | |
download | scala-17e057bcc88e39382699aaad16a4d53b4fa57a5b.tar.gz scala-17e057bcc88e39382699aaad16a4d53b4fa57a5b.tar.bz2 scala-17e057bcc88e39382699aaad16a4d53b4fa57a5b.zip |
Merge pull request #5755 from rorygraves/2.12.x_map4
Improve the performance of Map4 to HashMap and Set4 to HashSet transitions
Diffstat (limited to 'src/library/scala/collection')
-rw-r--r-- | src/library/scala/collection/immutable/Map.scala | 2 | ||||
-rw-r--r-- | src/library/scala/collection/immutable/Set.scala | 2 |
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) |