From d27b1a57b183ca3b2810af37c59025ed32d47829 Mon Sep 17 00:00:00 2001 From: Michel Davit Date: Mon, 13 Feb 2023 13:41:35 +0100 Subject: [PATCH 1/3] Make ArraySeq extends IndexedSeqOptimized --- .../scala/collection/compat/immutable/ArraySeq.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compat/src/main/scala-2.11_2.12/scala/collection/compat/immutable/ArraySeq.scala b/compat/src/main/scala-2.11_2.12/scala/collection/compat/immutable/ArraySeq.scala index d70c1d8a..31ac2452 100644 --- a/compat/src/main/scala-2.11_2.12/scala/collection/compat/immutable/ArraySeq.scala +++ b/compat/src/main/scala-2.11_2.12/scala/collection/compat/immutable/ArraySeq.scala @@ -15,7 +15,7 @@ package scala.collection.compat.immutable import java.util.Arrays import scala.annotation.unchecked.uncheckedVariance -import scala.collection.AbstractSeq +import scala.collection.{AbstractSeq, IndexedSeqOptimized} import scala.collection.generic._ import scala.collection.immutable.IndexedSeq import scala.collection.mutable.{ArrayBuilder, Builder, WrappedArrayBuilder} @@ -34,7 +34,7 @@ import scala.util.hashing.MurmurHash3 * @define mayNotTerminateInf * @define willNotTerminateInf */ -abstract class ArraySeq[+T] extends AbstractSeq[T] with IndexedSeq[T] { +abstract class ArraySeq[+T] extends AbstractSeq[T] with IndexedSeq[T] with IndexedSeqOptimized[T, ArraySeq[T]] { override protected[this] def thisCollection: ArraySeq[T] = this From 76f76fdbbe6a670c646c4956af52f3f601c47b61 Mon Sep 17 00:00:00 2001 From: Michel Davit Date: Tue, 14 Feb 2023 11:12:32 +0100 Subject: [PATCH 2/3] Run scalafmt --- .../scala/collection/compat/immutable/ArraySeq.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/compat/src/main/scala-2.11_2.12/scala/collection/compat/immutable/ArraySeq.scala b/compat/src/main/scala-2.11_2.12/scala/collection/compat/immutable/ArraySeq.scala index 31ac2452..d3daa1b3 100644 --- a/compat/src/main/scala-2.11_2.12/scala/collection/compat/immutable/ArraySeq.scala +++ b/compat/src/main/scala-2.11_2.12/scala/collection/compat/immutable/ArraySeq.scala @@ -34,7 +34,10 @@ import scala.util.hashing.MurmurHash3 * @define mayNotTerminateInf * @define willNotTerminateInf */ -abstract class ArraySeq[+T] extends AbstractSeq[T] with IndexedSeq[T] with IndexedSeqOptimized[T, ArraySeq[T]] { +abstract class ArraySeq[+T] + extends AbstractSeq[T] + with IndexedSeq[T] + with IndexedSeqOptimized[T, ArraySeq[T]] { override protected[this] def thisCollection: ArraySeq[T] = this From 9d64f5c21764f664ab8a92bd88f50caa4dd7cb8a Mon Sep 17 00:00:00 2001 From: Lukas Rytz Date: Wed, 12 Apr 2023 11:27:47 +0200 Subject: [PATCH 3/3] test --- .../test/scala/test/scala/collection/ArraySeqTest.scala | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/compat/src/test/scala/test/scala/collection/ArraySeqTest.scala b/compat/src/test/scala/test/scala/collection/ArraySeqTest.scala index f2d8204a..23b4c581 100644 --- a/compat/src/test/scala/test/scala/collection/ArraySeqTest.scala +++ b/compat/src/test/scala/test/scala/collection/ArraySeqTest.scala @@ -72,4 +72,11 @@ class ArraySeqTest { Assert.assertEquals(ArraySeq[T](), array.slice(1, 1)) Assert.assertEquals(ArraySeq[T](), array.slice(2, 1)) } + + @Test def ArraySeqIndexedSeqOptimized(): Unit = { + val x = ArraySeq(1, 2) + val y = ArraySeq(3, 4) + val z: ArraySeq[Int] = x ++ y + assert(z.toList == List(1, 2, 3, 4)) + } }