Skip to content

Commit fd65cbc

Browse files
committed
Fix condition where subtraction can overflow
1 parent 2beea80 commit fd65cbc

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/library/scala/collection/immutable/Vector.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ private sealed abstract class VectorImpl[+A](_prefix1: Arr1) extends Vector[A](_
286286
val hi = mmin(until, length)
287287
val newlen = hi - lo
288288
if(newlen == length) this
289-
else if(newlen <= 0) Vector0
289+
else if(hi <= lo) Vector0
290290
else slice0(lo, hi)
291291
}
292292
}

test/junit/scala/collection/immutable/VectorTest.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,11 @@ class VectorTest {
370370
}
371371
}
372372

373+
@Test
374+
def testSlice3: Unit = {
375+
assertEquals(Vector(1).slice(1, -2147483648), Vector())
376+
}
377+
373378
@Test
374379
def testTail: Unit = for(size <- verySmallSizes) {
375380
var i = 0

0 commit comments

Comments
 (0)