diff options
author | Paul Phillips <paulp@improving.org> | 2011-01-04 01:17:05 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-01-04 01:17:05 +0000 |
commit | 266a2ca1c4ed1c655989c2435a9e83650b06f79a (patch) | |
tree | 59a330e06b7d0b575423ce649fb61e832fc59298 /src/library/scala/collection/immutable/ListSet.scala | |
parent | 7d0e5ac4bb93009c9ae1392bd9a7b3628dee4e2a (diff) | |
download | scala-266a2ca1c4ed1c655989c2435a9e83650b06f79a.tar.gz scala-266a2ca1c4ed1c655989c2435a9e83650b06f79a.tar.bz2 scala-266a2ca1c4ed1c655989c2435a9e83650b06f79a.zip |
Modified generic companion apply to call empty ...
Modified generic companion apply to call empty if there are no
arguments, so something like Set() does not generate unnecessary
garbage. Also found some immutable classes which don't reuse an empty
object for emptiness, and gave them one. No review.
Diffstat (limited to 'src/library/scala/collection/immutable/ListSet.scala')
-rw-r--r-- | src/library/scala/collection/immutable/ListSet.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/library/scala/collection/immutable/ListSet.scala b/src/library/scala/collection/immutable/ListSet.scala index 8547ba195b..ec0f2ff5a1 100644 --- a/src/library/scala/collection/immutable/ListSet.scala +++ b/src/library/scala/collection/immutable/ListSet.scala @@ -23,9 +23,11 @@ import mutable.{ ListBuffer, Builder } object ListSet extends ImmutableSetFactory[ListSet] { /** setCanBuildFromInfo */ implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, ListSet[A]] = setCanBuildFrom[A] - override def empty[A] = new ListSet[A] + override def empty[A] = EmptyListSet.asInstanceOf[ListSet[A]] override def newBuilder[A]: Builder[A, ListSet[A]] = new ListSetBuilder[A] + private object EmptyListSet extends ListSet[Any] { } + /** A custom builder because forgetfully adding elements one at * a time to a list backed set puts the "squared" in N^2. There is a * temporary space cost, but it's improbable a list backed set could |