From cc1f6bca81c9f524952b4b42b45d8e36d8df6387 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 3 Dec 2010 06:17:23 +0000 Subject: Parameterizes TraversableFactory.range so it ca... Parameterizes TraversableFactory.range so it can be used with any integral type. Closes #3542, no review. --- src/library/scala/collection/immutable/Stream.scala | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/library/scala/collection/immutable/Stream.scala') 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) -- cgit v1.2.3