summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-10-28 14:41:00 +0000
committerMartin Odersky <odersky@gmail.com>2009-10-28 14:41:00 +0000
commit0ce248ef65575dce910c82e5714d808851557669 (patch)
tree289a451fe6a621cd4fbc7345f1ec3094c3e819d2 /src/library
parentcf53536f9e1b668e9e05c280db84ef2eb502765c (diff)
downloadscala-0ce248ef65575dce910c82e5714d808851557669.tar.gz
scala-0ce248ef65575dce910c82e5714d808851557669.tar.bz2
scala-0ce248ef65575dce910c82e5714d808851557669.zip
Fixed #1342.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/collection/TraversableViewLike.scala7
-rw-r--r--src/library/scala/collection/immutable/Range.scala18
2 files changed, 21 insertions, 4 deletions
diff --git a/src/library/scala/collection/TraversableViewLike.scala b/src/library/scala/collection/TraversableViewLike.scala
index 2f33776b74..8177658026 100644
--- a/src/library/scala/collection/TraversableViewLike.scala
+++ b/src/library/scala/collection/TraversableViewLike.scala
@@ -145,16 +145,15 @@ self =>
override def ++[B >: A, That](that: Traversable[B])(implicit bf: CanBuildFrom[This, B, That]): That = {
newAppended(that).asInstanceOf[That]
-// was: val b = bf(repr)
-// if (b.isInstanceOf[NoBuilder[_]]) newAppended(that).asInstanceOf[That]
-// else super.++[B, That](that)(bf)
+// was: if (bf.isInstanceOf[ByPassCanBuildFrom]) newAppended(that).asInstanceOf[That]
+// else super.++[B, That](that)(bf)
}
override def ++[B >: A, That](that: Iterator[B])(implicit bf: CanBuildFrom[This, B, That]): That = ++[B, That](that.toStream)
override def map[B, That](f: A => B)(implicit bf: CanBuildFrom[This, B, That]): That = {
newMapped(f).asInstanceOf[That]
-// was: val b = bf(repr)
+// val b = bf(repr)
// if (b.isInstanceOf[NoBuilder[_]]) newMapped(f).asInstanceOf[That]
// else super.map[B, That](f)(bf)
}
diff --git a/src/library/scala/collection/immutable/Range.scala b/src/library/scala/collection/immutable/Range.scala
index 54a871decf..18b457e090 100644
--- a/src/library/scala/collection/immutable/Range.scala
+++ b/src/library/scala/collection/immutable/Range.scala
@@ -101,6 +101,9 @@ class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int]
final override def reverse: Range = new Range.Inclusive(last, start, -step)
+ /** Make range inclusive.
+ * @pre if (step > 0) end != MaxInt else end != MinInt
+ */
def inclusive = new Range.Inclusive(start, end, step)
def contains(x: Int): Boolean =
@@ -136,9 +139,24 @@ object Range {
override protected def copy(start: Int, end: Int, step: Int): Range = new Inclusive(start, end, step)
}
+ /** Make a range from `start` until `end` (exclusive) with step value 1.
+ */
def apply(start: Int, end: Int, step: Int): Range = new Range(start, end, step)
+
+ /** Make an range from `start` to `end` inclusive with step value 1.
+ * @pre end != MaxInt
+ */
def apply(start: Int, end: Int): Range with ByOne = new Range(start, end, 1) with ByOne
+
+ /** Make an inclusive range from start to end with given step value.
+ * @pre step != 0
+ * @pre if (step > 0) end != MaxInt else end != MinInt
+ */
def inclusive(start: Int, end: Int, step: Int): Range.Inclusive = new Inclusive(start, end, step)
+
+ /** Make an inclusive range from start to end with step value 1.
+ * @pre end != MaxInt
+ */
def inclusive(start: Int, end: Int): Range.Inclusive with ByOne = new Inclusive(start, end, 1) with ByOne
trait ByOne extends Range {