summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-05-11 13:16:10 -0700
committerPaul Phillips <paulp@improving.org>2013-05-11 13:16:10 -0700
commit7f29f8512d4975cf3a5a0b536a8910e4e3b4316b (patch)
tree35925e6a23b5fc3f31799e2f48cd5020bd52c07e
parentc85a507ba815643faacd8e07270efbd83b700846 (diff)
parent6890f382baec625e01c3850243d826645c60dbe6 (diff)
downloadscala-7f29f8512d4975cf3a5a0b536a8910e4e3b4316b.tar.gz
scala-7f29f8512d4975cf3a5a0b536a8910e4e3b4316b.tar.bz2
scala-7f29f8512d4975cf3a5a0b536a8910e4e3b4316b.zip
Merge pull request #2470 from ihji/master
SI-7432 Range.min should throw NoSuchElementException on empty range
-rw-r--r--src/library/scala/collection/immutable/Range.scala4
-rw-r--r--test/files/run/range.scala11
2 files changed, 13 insertions, 2 deletions
diff --git a/src/library/scala/collection/immutable/Range.scala b/src/library/scala/collection/immutable/Range.scala
index 4c424b31f4..09f8143b55 100644
--- a/src/library/scala/collection/immutable/Range.scala
+++ b/src/library/scala/collection/immutable/Range.scala
@@ -82,14 +82,14 @@ extends scala.collection.AbstractSeq[Int]
override def min[A1 >: Int](implicit ord: Ordering[A1]): Int =
if (ord eq Ordering.Int) {
- if (step > 0) start
+ if (step > 0) head
else last
} else super.min(ord)
override def max[A1 >: Int](implicit ord: Ordering[A1]): Int =
if (ord eq Ordering.Int) {
if (step > 0) last
- else start
+ else head
} else super.max(ord)
protected def copy(start: Int, end: Int, step: Int): Range = new Range(start, end, step)
diff --git a/test/files/run/range.scala b/test/files/run/range.scala
index f08b2105d3..b81e67921a 100644
--- a/test/files/run/range.scala
+++ b/test/files/run/range.scala
@@ -16,6 +16,17 @@ object Test {
catch { case _: IllegalArgumentException => true }
)
assert(caught)
+ // #7432
+ val noElemAtMin = (
+ try { (10 until 10).min ; false }
+ catch { case _: NoSuchElementException => true }
+ )
+ assert(noElemAtMin)
+ val noElemAtMax = (
+ try { (10 until 10).max ; false }
+ catch { case _: NoSuchElementException => true }
+ )
+ assert(noElemAtMax)
}
case class GR[T](val x: T)(implicit val num: Integral[T]) {