Skip to content
This repository was archived by the owner on Dec 22, 2021. It is now read-only.

Commit 01d3f3a

Browse files
authored
Merge pull request #470 from scala/wip/fix-set-factories
Fix the iterableFactory of mutable Sets
2 parents 701a25f + 176f407 commit 01d3f3a

File tree

6 files changed

+12
-7
lines changed

6 files changed

+12
-7
lines changed

collections/src/main/scala/strawman/collection/Set.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ trait Set[A]
2828

2929
override def hashCode(): Int = Set.setHash(toIterable)
3030

31+
override def iterableFactory: IterableFactory[IterableCC] = Set
32+
3133
def empty: IterableCC[A] = iterableFactory.empty
3234
}
3335

collections/src/main/scala/strawman/collection/immutable/Seq.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ trait Seq[+A] extends Iterable[A]
1010

1111
override final def toSeq: this.type = this
1212

13-
override def iterableFactory: SeqFactory[Seq] = Seq
13+
override def iterableFactory: SeqFactory[IterableCC] = Seq
1414
}
1515

1616
/**
@@ -43,7 +43,7 @@ trait IndexedSeq[+A] extends Seq[A]
4343

4444
final override def toIndexedSeq: IndexedSeq[A] = this
4545

46-
override def iterableFactory: SeqFactory[IndexedSeq] = IndexedSeq
46+
override def iterableFactory: SeqFactory[IterableCC] = IndexedSeq
4747
}
4848

4949
object IndexedSeq extends SeqFactory.Delegate[IndexedSeq](Vector)
@@ -57,7 +57,7 @@ trait LinearSeq[+A]
5757
with collection.LinearSeq[A]
5858
with LinearSeqOps[A, LinearSeq, LinearSeq[A]] {
5959

60-
override def iterableFactory: SeqFactory[LinearSeq] = LinearSeq
60+
override def iterableFactory: SeqFactory[IterableCC] = LinearSeq
6161
}
6262

6363
object LinearSeq extends SeqFactory.Delegate[LinearSeq](List)

collections/src/main/scala/strawman/collection/immutable/Set.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import scala.{Any, Boolean, Int, deprecatedName, `inline`, None, Option, Seriali
88

99
/** Base trait for immutable set collections */
1010
trait Set[A] extends Iterable[A] with collection.Set[A] with SetOps[A, Set, Set[A]] {
11-
override def iterableFactory: IterableFactory[Set] = Set
11+
override def iterableFactory: IterableFactory[IterableCC] = Set
1212
}
1313

1414
/** Base trait for immutable set operations

collections/src/main/scala/strawman/collection/mutable/IndexedSeq.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ trait IndexedSeq[T] extends Seq[T]
55
with strawman.collection.IndexedSeq[T]
66
with IndexedSeqOps[T, IndexedSeq, IndexedSeq[T]] {
77

8-
override def iterableFactory: SeqFactory[IndexedSeq] = IndexedSeq
8+
override def iterableFactory: SeqFactory[IterableCC] = IndexedSeq
99
}
1010

1111
object IndexedSeq extends SeqFactory.Delegate[IndexedSeq](ArrayBuffer)

collections/src/main/scala/strawman/collection/mutable/Seq.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ trait Seq[A]
1111
with collection.Seq[A]
1212
with SeqOps[A, Seq, Seq[A]] {
1313

14-
override def iterableFactory: SeqFactory[Seq] = Seq
14+
override def iterableFactory: SeqFactory[IterableCC] = Seq
1515
}
1616

1717
/**

collections/src/main/scala/strawman/collection/mutable/Set.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ import scala.{Boolean, Int, None, Option, Some, Unit, `inline`, deprecated}
99
trait Set[A]
1010
extends Iterable[A]
1111
with collection.Set[A]
12-
with SetOps[A, Set, Set[A]]
12+
with SetOps[A, Set, Set[A]] {
13+
14+
override def iterableFactory: IterableFactory[IterableCC] = Set
15+
}
1316

1417
/**
1518
* @define coll mutable set

0 commit comments

Comments
 (0)