From 548ebcaba0a9f6d5f36b30cc4d6869e44310163b Mon Sep 17 00:00:00 2001 From: Som Snytt Date: Thu, 1 Jan 2026 06:00:14 -0800 Subject: [PATCH 1/2] Array.range trusts NumericRange.count --- library/src/scala/Array.scala | 3 +-- tests/run/i24877.scala | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 tests/run/i24877.scala diff --git a/library/src/scala/Array.scala b/library/src/scala/Array.scala index 461abdef5803..8cefaf7afeb1 100644 --- a/library/src/scala/Array.scala +++ b/library/src/scala/Array.scala @@ -518,11 +518,10 @@ object Array { var n = 0 var i = start - while (if (step < 0) end < i else i < end) { + while n < array.length do array(n) = i i += step n += 1 - } array } diff --git a/tests/run/i24877.scala b/tests/run/i24877.scala new file mode 100644 index 000000000000..eedbc659ac3e --- /dev/null +++ b/tests/run/i24877.scala @@ -0,0 +1,4 @@ +@main def Test = + val res = Array.range(2, 5, Int.MaxValue) + assert(res.length == 1, s"array length was ${res.length}") + assert(res.head == 2, s"array(0) was ${res.head}") From 5855dd11c776832f79b2e016b660ed3943ef1748 Mon Sep 17 00:00:00 2001 From: Som Snytt Date: Thu, 8 Jan 2026 16:34:51 -0800 Subject: [PATCH 2/2] Avoid Scala.js bug compatible behavior --- tests/run/i24877.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/run/i24877.scala b/tests/run/i24877.scala index eedbc659ac3e..62bcb64acdc2 100644 --- a/tests/run/i24877.scala +++ b/tests/run/i24877.scala @@ -1,3 +1,5 @@ +// scalajs: --skip + @main def Test = val res = Array.range(2, 5, Int.MaxValue) assert(res.length == 1, s"array length was ${res.length}")