summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/immutable/Stream.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-12-03 06:17:23 +0000
committerPaul Phillips <paulp@improving.org>2010-12-03 06:17:23 +0000
commitcc1f6bca81c9f524952b4b42b45d8e36d8df6387 (patch)
tree5b2912a3c222616b8e23221e2871a04a9c1aac89 /src/library/scala/collection/immutable/Stream.scala
parent979c57cd8732a2f9c9de066d532971986bcdff7d (diff)
downloadscala-cc1f6bca81c9f524952b4b42b45d8e36d8df6387.tar.gz
scala-cc1f6bca81c9f524952b4b42b45d8e36d8df6387.tar.bz2
scala-cc1f6bca81c9f524952b4b42b45d8e36d8df6387.zip
Parameterizes TraversableFactory.range so it ca...
Parameterizes TraversableFactory.range so it can be used with any integral type. Closes #3542, no review.
Diffstat (limited to 'src/library/scala/collection/immutable/Stream.scala')
-rw-r--r--src/library/scala/collection/immutable/Stream.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/library/scala/collection/immutable/Stream.scala b/src/library/scala/collection/immutable/Stream.scala
index 04fe6225b4..3f16c2c020 100644
--- a/src/library/scala/collection/immutable/Stream.scala
+++ b/src/library/scala/collection/immutable/Stream.scala
@@ -675,9 +675,13 @@ object Stream extends SeqFactory[Stream] {
loop(0)
}
- override def range(start: Int, end: Int, step: Int): Stream[Int] =
- if (if (step < 0) start <= end else end <= start) Empty
+ override def range[T: Integral](start: T, end: T, step: T): Stream[T] = {
+ val num = implicitly[Integral[T]]
+ import num._
+
+ if (if (step < zero) start <= end else end <= start) Empty
else new Cons(start, range(start + step, end, step))
+ }
private[immutable] def filteredTail[A](stream: Stream[A], p: A => Boolean) = {
new Stream.Cons(stream.head, stream.tail filter p)