Skip to content

Commit 3215ff3

Browse files
authored
Merge pull request #325 from samzilverberg/mutable-queue-compat-enqueueall
mutable.Queue.enqueueAll
2 parents 06f882f + 8c7f7ed commit 3215ff3

File tree

5 files changed

+52
-32
lines changed

5 files changed

+52
-32
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ package scala.collection
1515
import scala.collection.generic.{CanBuildFrom, GenericOrderedCompanion, IsTraversableLike}
1616

1717
import scala.runtime.Tuple2Zipped
18-
import scala.collection.{immutable => i}
18+
import scala.collection.{immutable => i, mutable => m}
1919
import scala.{collection => c}
2020

2121
package object compat extends compat.PackageShared {
@@ -58,4 +58,8 @@ package object compat extends compat.PackageShared {
5858
self: i.Queue[A]): ImmutableQueueExtensionMethods[A] =
5959
new ImmutableQueueExtensionMethods[A](self)
6060

61+
implicit def toMutableQueueExtensionMethods[A](
62+
self: m.Queue[A]): MutableQueueExtensionMethods[A] =
63+
new MutableQueueExtensionMethods[A](self)
64+
6165
}

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
@@ -430,3 +430,8 @@ class ImmutableQueueExtensionMethods[A](private val self: i.Queue[A]) extends An
430430
def enqueueAll[B >: A](iter: c.Iterable[B]): i.Queue[B] =
431431
self.enqueue(iter.to[i.Iterable])
432432
}
433+
434+
class MutableQueueExtensionMethods[Element](private val self: m.Queue[Element]) extends AnyVal {
435+
def enqueueAll(iter: c.Iterable[Element]): Unit =
436+
self.enqueue(iter.toIndexedSeq: _*)
437+
}

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

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

1515
import scala.collection.generic.{CanBuildFrom, GenericOrderedCompanion, IsTraversableLike}
1616
import scala.{collection => c}
17-
import scala.collection.{mutable => m}
1817
import scala.runtime.Tuple2Zipped
1918
import scala.collection.{immutable => i, mutable => m}
2019

@@ -67,4 +66,8 @@ package object compat extends compat.PackageShared {
6766
implicit def toImmutableQueueExtensionMethods[A](
6867
self: i.Queue[A]): ImmutableQueueExtensionMethods[A] =
6968
new ImmutableQueueExtensionMethods[A](self)
69+
70+
implicit def toMutableQueueExtensionMethods[A](
71+
self: m.Queue[A]): MutableQueueExtensionMethods[A] =
72+
new MutableQueueExtensionMethods[A](self)
7073
}

compat/src/test/scala/test/scala/collection/ImmutableQueueTest.scala

Lines changed: 0 additions & 30 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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 => i, mutable => m}
20+
21+
class QueueTest {
22+
23+
@Test
24+
def testImmutableEnqueueAll: Unit = {
25+
val q = i.Queue(1, 2)
26+
val iter: Iterable[Int] = List(3, 4)
27+
val eq = q.enqueueAll(iter)
28+
assertEquals(i.Queue(1, 2, 3, 4), eq)
29+
}
30+
31+
@Test
32+
def testMutableEnqueueAll: Unit = {
33+
val q = m.Queue(1, 2)
34+
val lst = i.List(3, 4)
35+
q.enqueueAll(lst)
36+
assertEquals(i.Queue(1, 2, 3, 4), q)
37+
}
38+
}

0 commit comments

Comments
 (0)