diff options
author | Paul Phillips <paulp@improving.org> | 2013-05-11 13:16:10 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-05-11 13:16:10 -0700 |
commit | 7f29f8512d4975cf3a5a0b536a8910e4e3b4316b (patch) | |
tree | 35925e6a23b5fc3f31799e2f48cd5020bd52c07e | |
parent | c85a507ba815643faacd8e07270efbd83b700846 (diff) | |
parent | 6890f382baec625e01c3850243d826645c60dbe6 (diff) | |
download | scala-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.scala | 4 | ||||
-rw-r--r-- | test/files/run/range.scala | 11 |
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]) { |