diff options
author | Paul Phillips <paulp@improving.org> | 2010-12-03 06:17:23 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-12-03 06:17:23 +0000 |
commit | cc1f6bca81c9f524952b4b42b45d8e36d8df6387 (patch) | |
tree | 5b2912a3c222616b8e23221e2871a04a9c1aac89 /src/library/scala/collection/immutable/Stream.scala | |
parent | 979c57cd8732a2f9c9de066d532971986bcdff7d (diff) | |
download | scala-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.scala | 8 |
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) |