summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@typesafe.com>2014-12-11 09:07:46 +0100
committerLukas Rytz <lukas.rytz@typesafe.com>2014-12-11 09:07:46 +0100
commit53eab9a1911d8549121d7fd3c6c68872a8655cf4 (patch)
treeff672f58fff4858e7d11b451b84c83846365f25a
parent36b1014ac63205a38e73ae18a05ac6f956c3410f (diff)
parent9f2083b88e003a3f2a641460244c44b0f1f06821 (diff)
downloadscala-53eab9a1911d8549121d7fd3c6c68872a8655cf4.tar.gz
scala-53eab9a1911d8549121d7fd3c6c68872a8655cf4.tar.bz2
scala-53eab9a1911d8549121d7fd3c6c68872a8655cf4.zip
Merge pull request #4192 from Ichoran/issue/8950
SI-8950 SeqView and StreamView allow indexing out of a slice
-rw-r--r--src/library/scala/collection/SeqViewLike.scala2
-rw-r--r--src/library/scala/collection/mutable/IndexedSeqView.scala2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/library/scala/collection/SeqViewLike.scala b/src/library/scala/collection/SeqViewLike.scala
index ef6d2272cb..59e0e73e89 100644
--- a/src/library/scala/collection/SeqViewLike.scala
+++ b/src/library/scala/collection/SeqViewLike.scala
@@ -55,7 +55,7 @@ trait SeqViewLike[+A,
trait Sliced extends super.Sliced with Transformed[A] {
def length = iterator.size
def apply(idx: Int): A =
- if (idx + from < until) self.apply(idx + from)
+ if (idx >= 0 && idx + from < until) self.apply(idx + from)
else throw new IndexOutOfBoundsException(idx.toString)
override def foreach[U](f: A => U) = iterator foreach f
diff --git a/src/library/scala/collection/mutable/IndexedSeqView.scala b/src/library/scala/collection/mutable/IndexedSeqView.scala
index 31a4749960..7acdeeff18 100644
--- a/src/library/scala/collection/mutable/IndexedSeqView.scala
+++ b/src/library/scala/collection/mutable/IndexedSeqView.scala
@@ -50,7 +50,7 @@ self =>
trait Sliced extends super.Sliced with Transformed[A] {
override def length = endpoints.width
def update(idx: Int, elem: A) =
- if (idx + from < until) self.update(idx + from, elem)
+ if (idx >= 0 && idx + from < until) self.update(idx + from, elem)
else throw new IndexOutOfBoundsException(idx.toString)
}