Skip to content

Commit 5e9acae

Browse files
committed
Support Scala 3
1 parent 8985822 commit 5e9acae

File tree

8 files changed

+24
-13
lines changed

8 files changed

+24
-13
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
fail-fast: false
1111
matrix:
1212
java: [8, 11, 17]
13-
scala: [2.13.8]
13+
scala: [2.13.8, 3.1.0]
1414
runs-on: ubuntu-latest
1515
steps:
1616
- uses: actions/checkout@v2

build.sbt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
ThisBuild / scalaVersion := "2.13.8"
1+
ThisBuild / scalaVersion := "3.1.0"
2+
ThisBuild / crossScalaVersions := Seq((ThisBuild / scalaVersion).value, "2.13.8")
23

34
lazy val root = project.in(file("."))
45
.aggregate(collectionContrib.jvm, collectionContrib.js)
@@ -15,10 +16,20 @@ lazy val collectionContrib = crossProject(JVMPlatform, JSPlatform)
1516
.settings(ScalaModulePlugin.scalaModuleSettings)
1617
.settings(
1718
name := "scala-collection-contrib",
18-
versionPolicyIntention := Compatibility.BinaryCompatible,
19+
versionPolicyIntention := Compatibility.None,
1920
scalaModuleAutomaticModuleName := Some("scala.collection.contrib"),
20-
Compile / compile / scalacOptions ++= Seq("-opt-warnings", "-language:higherKinds", "-deprecation", "-feature", "-Xfatal-warnings", "-Wconf:origin=scala.collection.IterableOps.toIterable:s"),
21-
Compile / doc / scalacOptions ++= Seq("-implicits", "-groups", "-nowarn"),
21+
Compile / compile / scalacOptions ++= {
22+
CrossVersion.partialVersion(scalaVersion.value) match {
23+
case Some((2, _)) => Seq("-opt-warnings", "-Werror", "-Wconf:origin=scala.collection.IterableOps.toIterable:s")
24+
case Some((3, _)) => Seq("-Xfatal-warnings")
25+
}
26+
},
27+
Compile / doc / scalacOptions ++= {
28+
CrossVersion.partialVersion(scalaVersion.value) match {
29+
case Some((2, _)) => Seq("-implicits", "-groups", "-nowarn")
30+
case Some((3, _)) => Seq.empty
31+
}
32+
},
2233
testOptions += Tests.Argument(TestFrameworks.JUnit, "-q", "-v", "-s", "-a"),
2334
Test / parallelExecution := false, // why?
2435
libraryDependencies ++= Seq(

src/main/scala/scala/collection/decorators/package.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ package object decorators {
88
implicit def iteratorDecorator[A](it: Iterator[A]): IteratorDecorator[A] =
99
new IteratorDecorator[A](it)
1010

11-
implicit def IterableDecorator[C](coll: C)(implicit it: IsIterable[C]): IterableDecorator[C, it.type] =
11+
implicit def iterableDecorator[C](coll: C)(implicit it: IsIterable[C]): IterableDecorator[C, it.type] =
1212
new IterableDecorator(coll)(it)
1313

14-
implicit def SeqDecorator[C](coll: C)(implicit seq: IsSeq[C]): SeqDecorator[C, seq.type] =
14+
implicit def seqDecorator[C](coll: C)(implicit seq: IsSeq[C]): SeqDecorator[C, seq.type] =
1515
new SeqDecorator(coll)(seq)
1616

17-
implicit def MapDecorator[C](coll: C)(implicit map: IsMap[C]): MapDecorator[C, map.type] =
17+
implicit def mapDecorator[C](coll: C)(implicit map: IsMap[C]): MapDecorator[C, map.type] =
1818
new MapDecorator(coll)(map)
1919

2020
implicit def bitSetDecorator[C <: BitSet with BitSetOps[C]](bs: C): BitSetDecorator[C] =

src/main/scala/scala/collection/immutable/MultiDict.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ object MultiDict extends MapFactory[MultiDict] {
6969

7070
def from[K, V](source: IterableOnce[(K, V)]): MultiDict[K, V] =
7171
source match {
72-
case mm: MultiDict[K, V] => mm
72+
case mm: MultiDict[K, V] @unchecked => mm
7373
case _ => (newBuilder[K, V] ++= source).result()
7474
}
7575

src/main/scala/scala/collection/immutable/MultiSet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ object MultiSet extends IterableFactory[MultiSet] {
7878

7979
def from[A](source: IterableOnce[A]): MultiSet[A] =
8080
source match {
81-
case ms: MultiSet[A] => ms
81+
case ms: MultiSet[A] @unchecked => ms
8282
case _ => (newBuilder[A] ++= source).result()
8383
}
8484

src/main/scala/scala/collection/immutable/SortedMultiDict.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ object SortedMultiDict extends SortedMapFactory[SortedMultiDict] {
7272

7373
def from[K: Ordering, V](it: IterableOnce[(K, V)]): SortedMultiDict[K, V] =
7474
it match {
75-
case smm: SortedMultiDict[K, V] => smm
75+
case smm: SortedMultiDict[K, V] @unchecked => smm
7676
case _ => (newBuilder[K, V] ++= it).result()
7777
}
7878

src/main/scala/scala/collection/immutable/SortedMultiSet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ object SortedMultiSet extends SortedIterableFactory[SortedMultiSet] {
5555

5656
def from[A: Ordering](source: IterableOnce[A]): SortedMultiSet[A] =
5757
source match {
58-
case sms: SortedMultiSet[A] => sms
58+
case sms: SortedMultiSet[A] @unchecked => sms
5959
case _ => (newBuilder[A] ++= source).result()
6060
}
6161

src/main/scala/scala/collection/mutable/MultiSet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ trait MultiSet[A]
1616
override protected def newSpecificBuilder: mutable.Builder[A, MultiSet[A]] = iterableFactory.newBuilder
1717
override def empty: MultiSet[A] = iterableFactory.empty
1818

19-
override def knownSize = super[Growable].knownSize
19+
override def knownSize: Int = super[Growable].knownSize
2020
}
2121

2222
class MultiSetImpl[A] private[mutable] (val elems: Map[A, Int]) extends MultiSet[A] {

0 commit comments

Comments
 (0)