Skip to content

Commit 10c9a1e

Browse files
committed
Tweaks to conform with API set out in #818.
1 parent e297011 commit 10c9a1e

File tree

2 files changed

+18
-21
lines changed

2 files changed

+18
-21
lines changed

src/strawman/collections/CollectionStrawMan1.scala

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ object CollectionStrawMan1 {
2020
def iterator: Iterator[A]
2121
}
2222

23-
/** Iterator guaranteed to be usable multiple times */
24-
trait HasIterator[+A] extends CanIterate[A]
25-
2623
/** Base trait for instances that can construct a collection from an iterator */
2724
trait FromIterator[+C[X] <: Iterable[X]] {
2825
def fromIterator[B](it: Iterator[B]): C[B]
@@ -35,7 +32,7 @@ object CollectionStrawMan1 {
3532
}
3633

3734
/** Base trait for generic collections */
38-
trait Iterable[+A] extends HasIterator[A] with FromIterator[Iterable]
35+
trait Iterable[+A] extends CanIterate[A] with FromIterator[Iterable]
3936

4037
/** Base trait for sequence collections */
4138
trait Seq[+A] extends Iterable[A] with FromIterator[Seq] {
@@ -55,7 +52,7 @@ object CollectionStrawMan1 {
5552
def isEmpty: Boolean = !iterator.hasNext
5653
def head: A = iterator.next
5754
def view: View[A] = new View(iterator)
58-
def collect[C[X] <: Iterable[X]](fi: FromIterator[C]): C[A] = fi.fromIterator(iterator)
55+
def collectAs[C[X] <: Iterable[X]](fi: FromIterator[C]): C[A] = fi.fromIterator(iterator)
5956
}
6057

6158
/** Transforms returning same collection type */
@@ -213,13 +210,13 @@ object CollectionStrawMan1 {
213210
}
214211

215212
/** Concrete collection type: View */
216-
class View[+A](it: => Iterator[A]) extends HasIterator[A] {
213+
class View[+A](it: => Iterator[A]) extends CanIterate[A] {
217214
def iterator = it
218215
}
219216

220217
implicit class ViewOps[A](val v: View[A]) extends AnyVal with Ops[A] {
221218
def iterator = v.iterator
222-
def cache = collect(ArrayBuffer).view
219+
def cache = collectAs(ArrayBuffer).view
223220
}
224221

225222
implicit class ViewMonoTransforms[A](val v: View[A])

tests/run/CollectionTests.scala

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ object Test {
1414
val y3: Int = x3
1515
val x4 = xs.head
1616
val y4: Int = x4
17-
val x5 = xs.collect(List)
17+
val x5 = xs.collectAs(List)
1818
val y5: List[Int] = x5
1919
val (xs6, xs7) = xs.partition(_ % 2 == 0)
2020
val ys6: Seq[Int] = xs6
@@ -65,7 +65,7 @@ object Test {
6565
val y3: Int = x3
6666
val x4 = xs.head
6767
val y4: Int = x4
68-
val x5 = xs.collect(List)
68+
val x5 = xs.collectAs(List)
6969
val y5: List[Int] = x5
7070
val (xs6, xs7) = xs.partition(_ % 2 == 0)
7171
val ys6: View[Int] = xs6
@@ -92,16 +92,16 @@ object Test {
9292
println(x3)
9393
println(x4)
9494
println(x5)
95-
println(xs6.collect(List))
96-
println(xs7.collect(List))
97-
println(xs8.collect(List))
98-
println(xs9.collect(List))
99-
println(xs10.collect(List))
100-
println(xs11.collect(List))
101-
println(xs12.collect(List))
102-
println(xs13.collect(List))
103-
println(xs14.collect(List))
104-
println(xs15.collect(List))
95+
println(xs6.collectAs(List))
96+
println(xs7.collectAs(List))
97+
println(xs8.collectAs(List))
98+
println(xs9.collectAs(List))
99+
println(xs10.collectAs(List))
100+
println(xs11.collectAs(List))
101+
println(xs12.collectAs(List))
102+
println(xs13.collectAs(List))
103+
println(xs14.collectAs(List))
104+
println(xs15.collectAs(List))
105105
}
106106

107107
def stringOps(xs: String) = {
@@ -113,7 +113,7 @@ object Test {
113113
val y3: Int = x3
114114
val x4 = xs.head
115115
val y4: Int = x4
116-
val x5 = xs.collect(List)
116+
val x5 = xs.collectAs(List)
117117
val y5: List[Char] = x5
118118
val (xs6, xs7) = xs.partition(_ % 2 == 0)
119119
val ys6: String = xs6
@@ -160,7 +160,7 @@ object Test {
160160

161161
def main(args: Array[String]) = {
162162
val ints = Cons(1, Cons(2, Cons(3, Nil)))
163-
val intsBuf = ints.collect(ArrayBuffer)
163+
val intsBuf = ints.collectAs(ArrayBuffer)
164164
val intsView = ints.view
165165
seqOps(ints)
166166
seqOps(intsBuf)

0 commit comments

Comments
 (0)