There was an error while loading. Please reload this page.
NumericRange#reverse
1 parent 116bc18 commit fe9b1ffCopy full SHA for fe9b1ff
library/src/scala/collection/immutable/NumericRange.scala
@@ -153,7 +153,13 @@ sealed class NumericRange[T](
153
override def splitAt(n: Int): (NumericRange[T], NumericRange[T]) = (take(n), drop(n))
154
155
override def reverse: NumericRange[T] =
156
- if (isEmpty) this else new NumericRange.Inclusive(last, start, -step)
+ if (isEmpty) this
157
+ else {
158
+ val newStep = -step
159
+ if (num.sign(newStep) == num.sign(step)) {
160
+ throw new ArithmeticException("number type is unsigned, and .reverse requires a negative step")
161
+ } else new NumericRange.Inclusive(last, start, newStep)
162
+ }
163
164
import NumericRange.defaultOrdering
165
0 commit comments