Skip to content

Commit 68a0d0c

Browse files
committed
Add enqueueAll
1 parent 1f591c4 commit 68a0d0c

File tree

4 files changed

+45
-1
lines changed

4 files changed

+45
-1
lines changed

compat/src/main/scala-2.11/scala/collection/compat/package.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
package scala.collection
1414

1515
import scala.collection.generic.{CanBuildFrom, GenericOrderedCompanion, IsTraversableLike}
16+
import scala.collection.{immutable => i}
1617
import scala.{collection => c}
1718

1819
package object compat extends compat.PackageShared {
@@ -39,4 +40,8 @@ package object compat extends compat.PackageShared {
3940

4041
implicit def toSeqExtensionMethods[A](self: c.Seq[A]): SeqExtensionMethods[A] =
4142
new SeqExtensionMethods[A](self)
43+
44+
implicit def toImmutableQueueExtensionMethods[A](
45+
self: i.Queue[A]): ImmutableQueueExtensionMethods[A] =
46+
new ImmutableQueueExtensionMethods[A](self)
4247
}

compat/src/main/scala-2.11_2.12/scala/collection/compat/PackageShared.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,3 +366,8 @@ class MapViewExtensionMethods[K, V, C <: scala.collection.Map[K, V]](
366366
def filterKeys(p: K => Boolean): IterableView[(K, V), C] =
367367
self.filter { case (k, _) => p(k) }
368368
}
369+
370+
class ImmutableQueueExtensionMethods[A](private val self: i.Queue[A]) extends AnyVal {
371+
def enqueueAll[B >: A](iter: c.Iterable[B]): i.Queue[B] =
372+
self.enqueue(iter.to[i.Iterable])
373+
}

compat/src/main/scala-2.12/scala/collection/compat/package.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ package scala.collection
1414

1515
import scala.collection.generic.{CanBuildFrom, GenericOrderedCompanion, IsTraversableLike}
1616
import scala.{collection => c}
17-
import scala.collection.{mutable => m}
17+
import scala.collection.{immutable => i, mutable => m}
1818

1919
package object compat extends compat.PackageShared {
2020
implicit class MutableTreeMapExtensions2(private val fact: m.TreeMap.type) extends AnyVal {
@@ -50,4 +50,8 @@ package object compat extends compat.PackageShared {
5050

5151
implicit def toSeqExtensionMethods[A](self: c.Seq[A]): SeqExtensionMethods[A] =
5252
new SeqExtensionMethods[A](self)
53+
54+
implicit def toImmutableQueueExtensionMethods[A](
55+
self: i.Queue[A]): ImmutableQueueExtensionMethods[A] =
56+
new ImmutableQueueExtensionMethods[A](self)
5357
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Scala (https://www.scala-lang.org)
3+
*
4+
* Copyright EPFL and Lightbend, Inc.
5+
*
6+
* Licensed under Apache License 2.0
7+
* (http://www.apache.org/licenses/LICENSE-2.0).
8+
*
9+
* See the NOTICE file distributed with this work for
10+
* additional information regarding copyright ownership.
11+
*/
12+
13+
package test.scala.collection
14+
15+
import org.junit.Assert._
16+
import org.junit.Test
17+
18+
import scala.collection.compat._
19+
import scala.collection.immutable.Queue
20+
21+
class ImmutableQueueTest {
22+
23+
@Test
24+
def testEnqueueAll: Unit = {
25+
val q = Queue(1, 2)
26+
val i: Iterable[Int] = List(3, 4)
27+
val eq = q.enqueueAll(i)
28+
assertEquals(Queue(1, 2, 3, 4), eq)
29+
}
30+
}

0 commit comments

Comments
 (0)