Skip to content

Commit 758188c

Browse files
authored
Merge pull request scala/scala#10444 from nicolasstucki/add-explicit-result-types-part-2
Add explicit result type to some non-private methods
2 parents 6d28de3 + 6c3d002 commit 758188c

27 files changed

+102
-86
lines changed

library/src/scala/PartialFunction.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,10 @@ object PartialFunction {
270270
if (!fallbackOccurred(z)) z else f2.applyOrElse(x, default)
271271
}
272272

273-
override def orElse[A1 <: A, B1 >: B](that: PartialFunction[A1, B1]) =
273+
override def orElse[A1 <: A, B1 >: B](that: PartialFunction[A1, B1]): OrElse[A1, B1] =
274274
new OrElse[A1, B1] (f1, f2 orElse that)
275275

276-
override def andThen[C](k: B => C) =
276+
override def andThen[C](k: B => C): OrElse[A, C] =
277277
new OrElse[A, C] (f1 andThen k, f2 andThen k)
278278
}
279279

@@ -368,8 +368,8 @@ object PartialFunction {
368368
def isDefinedAt(x: Any) = false
369369
def apply(x: Any) = throw new MatchError(x)
370370
override def orElse[A1, B1](that: PartialFunction[A1, B1]) = that
371-
override def andThen[C](k: Nothing => C) = this
372-
override val lift = (x: Any) => None
371+
override def andThen[C](k: Nothing => C): PartialFunction[Any, Nothing] = this
372+
override val lift: Any => None.type = (x: Any) => None
373373
override def runWith[U](action: Nothing => U) = constFalse
374374
}
375375

library/src/scala/collection/Iterable.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -916,16 +916,16 @@ object Iterable extends IterableFactory.Delegate[Iterable](immutable.Iterable) {
916916
override def iterator = Iterator.single(a)
917917
override def knownSize = 1
918918
override def head = a
919-
override def headOption = Some(a)
919+
override def headOption: Some[A] = Some(a)
920920
override def last = a
921-
override def lastOption = Some(a)
922-
override def view = new View.Single(a)
921+
override def lastOption: Some[A] = Some(a)
922+
override def view: View.Single[A] = new View.Single(a)
923923
override def take(n: Int) = if (n > 0) this else Iterable.empty
924924
override def takeRight(n: Int) = if (n > 0) this else Iterable.empty
925925
override def drop(n: Int) = if (n > 0) Iterable.empty else this
926926
override def dropRight(n: Int) = if (n > 0) Iterable.empty else this
927-
override def tail = Iterable.empty
928-
override def init = Iterable.empty
927+
override def tail: Iterable[Nothing] = Iterable.empty
928+
override def init: Iterable[Nothing] = Iterable.empty
929929
}
930930
}
931931

library/src/scala/collection/IterableOnce.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import scala.collection.mutable.StringBuilder
1919
import scala.language.implicitConversions
2020
import scala.math.{Numeric, Ordering}
2121
import scala.reflect.ClassTag
22-
import scala.runtime.AbstractFunction2
22+
import scala.runtime.{AbstractFunction1, AbstractFunction2}
2323

2424
/**
2525
* A template trait for collections which can be traversed either once only
@@ -1134,8 +1134,8 @@ trait IterableOnceOps[+A, +CC[_], +C] extends Any { this: IterableOnce[A] =>
11341134
def collectFirst[B](pf: PartialFunction[A, B]): Option[B] = {
11351135
// Presumably the fastest way to get in and out of a partial function is for a sentinel function to return itself
11361136
// (Tested to be lower-overhead than runWith. Would be better yet to not need to (formally) allocate it)
1137-
val sentinel: scala.Function1[A, Any] = new scala.runtime.AbstractFunction1[A, Any] {
1138-
def apply(a: A) = this
1137+
val sentinel: scala.Function1[A, Any] = new AbstractFunction1[A, Any] {
1138+
def apply(a: A): AbstractFunction1[A, Any] = this
11391139
}
11401140
val it = iterator
11411141
while (it.hasNext) {

library/src/scala/collection/Iterator.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -972,7 +972,7 @@ object Iterator extends IterableFactory[Iterator] {
972972
def hasNext = false
973973
def next() = throw new NoSuchElementException("next on empty iterator")
974974
override def knownSize: Int = 0
975-
override protected def sliceIterator(from: Int, until: Int) = this
975+
override protected def sliceIterator(from: Int, until: Int): AbstractIterator[Nothing] = this
976976
}
977977

978978
/** Creates a target $coll from an existing source collection

library/src/scala/collection/LazyZipOps.scala

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ final class LazyZip2[+El1, +El2, C1] private[collection](src: C1, coll1: Iterabl
3535

3636
def map[B, C](f: (El1, El2) => B)(implicit bf: BuildFrom[C1, B, C]): C = {
3737
bf.fromSpecific(src)(new AbstractView[B] {
38-
def iterator = new AbstractIterator[B] {
38+
def iterator: AbstractIterator[B] = new AbstractIterator[B] {
3939
private[this] val elems1 = coll1.iterator
4040
private[this] val elems2 = coll2.iterator
4141
def hasNext = elems1.hasNext && elems2.hasNext
@@ -48,7 +48,7 @@ final class LazyZip2[+El1, +El2, C1] private[collection](src: C1, coll1: Iterabl
4848

4949
def flatMap[B, C](f: (El1, El2) => Iterable[B])(implicit bf: BuildFrom[C1, B, C]): C = {
5050
bf.fromSpecific(src)(new AbstractView[B] {
51-
def iterator = new AbstractIterator[B] {
51+
def iterator: AbstractIterator[B] = new AbstractIterator[B] {
5252
private[this] val elems1 = coll1.iterator
5353
private[this] val elems2 = coll2.iterator
5454
private[this] var _current: Iterator[B] = Iterator.empty
@@ -67,7 +67,7 @@ final class LazyZip2[+El1, +El2, C1] private[collection](src: C1, coll1: Iterabl
6767

6868
def filter[C](p: (El1, El2) => Boolean)(implicit bf: BuildFrom[C1, (El1, El2), C]): C = {
6969
bf.fromSpecific(src)(new AbstractView[(El1, El2)] {
70-
def iterator = new AbstractIterator[(El1, El2)] {
70+
def iterator: AbstractIterator[(El1, El2)] = new AbstractIterator[(El1, El2)] {
7171
private[this] val elems1 = coll1.iterator
7272
private[this] val elems2 = coll2.iterator
7373
private[this] var _current: (El1, El2) = _
@@ -113,7 +113,7 @@ final class LazyZip2[+El1, +El2, C1] private[collection](src: C1, coll1: Iterabl
113113
}
114114

115115
private def toIterable: View[(El1, El2)] = new AbstractView[(El1, El2)] {
116-
def iterator = new AbstractIterator[(El1, El2)] {
116+
def iterator: AbstractIterator[(El1, El2)] = new AbstractIterator[(El1, El2)] {
117117
private[this] val elems1 = coll1.iterator
118118
private[this] val elems2 = coll2.iterator
119119
def hasNext = elems1.hasNext && elems2.hasNext
@@ -163,7 +163,7 @@ final class LazyZip3[+El1, +El2, +El3, C1] private[collection](src: C1,
163163

164164
def map[B, C](f: (El1, El2, El3) => B)(implicit bf: BuildFrom[C1, B, C]): C = {
165165
bf.fromSpecific(src)(new AbstractView[B] {
166-
def iterator = new AbstractIterator[B] {
166+
def iterator: AbstractIterator[B] = new AbstractIterator[B] {
167167
private[this] val elems1 = coll1.iterator
168168
private[this] val elems2 = coll2.iterator
169169
private[this] val elems3 = coll3.iterator
@@ -177,7 +177,7 @@ final class LazyZip3[+El1, +El2, +El3, C1] private[collection](src: C1,
177177

178178
def flatMap[B, C](f: (El1, El2, El3) => Iterable[B])(implicit bf: BuildFrom[C1, B, C]): C = {
179179
bf.fromSpecific(src)(new AbstractView[B] {
180-
def iterator = new AbstractIterator[B] {
180+
def iterator: AbstractIterator[B] = new AbstractIterator[B] {
181181
private[this] val elems1 = coll1.iterator
182182
private[this] val elems2 = coll2.iterator
183183
private[this] val elems3 = coll3.iterator
@@ -197,7 +197,7 @@ final class LazyZip3[+El1, +El2, +El3, C1] private[collection](src: C1,
197197

198198
def filter[C](p: (El1, El2, El3) => Boolean)(implicit bf: BuildFrom[C1, (El1, El2, El3), C]): C = {
199199
bf.fromSpecific(src)(new AbstractView[(El1, El2, El3)] {
200-
def iterator = new AbstractIterator[(El1, El2, El3)] {
200+
def iterator: AbstractIterator[(El1, El2, El3)] = new AbstractIterator[(El1, El2, El3)] {
201201
private[this] val elems1 = coll1.iterator
202202
private[this] val elems2 = coll2.iterator
203203
private[this] val elems3 = coll3.iterator
@@ -249,7 +249,7 @@ final class LazyZip3[+El1, +El2, +El3, C1] private[collection](src: C1,
249249
}
250250

251251
private def toIterable: View[(El1, El2, El3)] = new AbstractView[(El1, El2, El3)] {
252-
def iterator = new AbstractIterator[(El1, El2, El3)] {
252+
def iterator: AbstractIterator[(El1, El2, El3)] = new AbstractIterator[(El1, El2, El3)] {
253253
private[this] val elems1 = coll1.iterator
254254
private[this] val elems2 = coll2.iterator
255255
private[this] val elems3 = coll3.iterator
@@ -295,7 +295,7 @@ final class LazyZip4[+El1, +El2, +El3, +El4, C1] private[collection](src: C1,
295295

296296
def map[B, C](f: (El1, El2, El3, El4) => B)(implicit bf: BuildFrom[C1, B, C]): C = {
297297
bf.fromSpecific(src)(new AbstractView[B] {
298-
def iterator = new AbstractIterator[B] {
298+
def iterator: AbstractIterator[B] = new AbstractIterator[B] {
299299
private[this] val elems1 = coll1.iterator
300300
private[this] val elems2 = coll2.iterator
301301
private[this] val elems3 = coll3.iterator
@@ -310,7 +310,7 @@ final class LazyZip4[+El1, +El2, +El3, +El4, C1] private[collection](src: C1,
310310

311311
def flatMap[B, C](f: (El1, El2, El3, El4) => Iterable[B])(implicit bf: BuildFrom[C1, B, C]): C = {
312312
bf.fromSpecific(src)(new AbstractView[B] {
313-
def iterator = new AbstractIterator[B] {
313+
def iterator: AbstractIterator[B] = new AbstractIterator[B] {
314314
private[this] val elems1 = coll1.iterator
315315
private[this] val elems2 = coll2.iterator
316316
private[this] val elems3 = coll3.iterator
@@ -331,7 +331,7 @@ final class LazyZip4[+El1, +El2, +El3, +El4, C1] private[collection](src: C1,
331331

332332
def filter[C](p: (El1, El2, El3, El4) => Boolean)(implicit bf: BuildFrom[C1, (El1, El2, El3, El4), C]): C = {
333333
bf.fromSpecific(src)(new AbstractView[(El1, El2, El3, El4)] {
334-
def iterator = new AbstractIterator[(El1, El2, El3, El4)] {
334+
def iterator: AbstractIterator[(El1, El2, El3, El4)] = new AbstractIterator[(El1, El2, El3, El4)] {
335335
private[this] val elems1 = coll1.iterator
336336
private[this] val elems2 = coll2.iterator
337337
private[this] val elems3 = coll3.iterator
@@ -387,7 +387,7 @@ final class LazyZip4[+El1, +El2, +El3, +El4, C1] private[collection](src: C1,
387387
}
388388

389389
private def toIterable: View[(El1, El2, El3, El4)] = new AbstractView[(El1, El2, El3, El4)] {
390-
def iterator = new AbstractIterator[(El1, El2, El3, El4)] {
390+
def iterator: AbstractIterator[(El1, El2, El3, El4)] = new AbstractIterator[(El1, El2, El3, El4)] {
391391
private[this] val elems1 = coll1.iterator
392392
private[this] val elems2 = coll2.iterator
393393
private[this] val elems3 = coll3.iterator

library/src/scala/collection/concurrent/TrieMap.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ private[concurrent] object INode {
438438
private[concurrent] final class FailedNode[K, V](p: MainNode[K, V]) extends MainNode[K, V] {
439439
WRITE_PREV(p)
440440

441-
def string(lev: Int) = throw new UnsupportedOperationException
441+
def string(lev: Int): Nothing = throw new UnsupportedOperationException
442442

443443
def cachedSize(ct: AnyRef): Int = throw new UnsupportedOperationException
444444

library/src/scala/collection/convert/JavaCollectionWrappers.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
6666
trait IterableWrapperTrait[A] extends ju.AbstractCollection[A] {
6767
val underlying: Iterable[A]
6868
def size = underlying.size
69-
override def iterator = new IteratorWrapper(underlying.iterator)
69+
override def iterator: IteratorWrapper[A] = new IteratorWrapper(underlying.iterator)
7070
override def isEmpty = underlying.isEmpty
7171
}
7272

@@ -178,7 +178,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
178178
}
179179
override def isEmpty = underlying.isEmpty
180180
def size = underlying.size
181-
def iterator = new ju.Iterator[A] {
181+
def iterator: ju.Iterator[A] = new ju.Iterator[A] {
182182
val ui = underlying.iterator
183183
var prev: Option[A] = None
184184
def hasNext = ui.hasNext
@@ -264,13 +264,13 @@ private[collection] object JavaCollectionWrappers extends Serializable {
264264
override def entrySet: ju.Set[ju.Map.Entry[K, V]] = new ju.AbstractSet[ju.Map.Entry[K, V]] {
265265
def size = self.size
266266

267-
def iterator = new ju.Iterator[ju.Map.Entry[K, V]] {
267+
def iterator: ju.Iterator[ju.Map.Entry[K, V]] = new ju.Iterator[ju.Map.Entry[K, V]] {
268268
val ui = underlying.iterator
269269
var prev : Option[K] = None
270270

271271
def hasNext = ui.hasNext
272272

273-
def next() = {
273+
def next(): ju.Map.Entry[K, V] = {
274274
val (k, v) = ui.next()
275275
prev = Some(k)
276276
new ju.Map.Entry[K, V] {

library/src/scala/collection/immutable/ArraySeq.scala

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
325325

326326
@SerialVersionUID(3L)
327327
final class ofRef[T <: AnyRef](val unsafeArray: Array[T]) extends ArraySeq[T] {
328-
def elemTag = ClassTag[T](unsafeArray.getClass.getComponentType)
328+
def elemTag: ClassTag[T] = ClassTag[T](unsafeArray.getClass.getComponentType)
329329
def length: Int = unsafeArray.length
330330
@throws[ArrayIndexOutOfBoundsException]
331331
def apply(i: Int): T = unsafeArray(i)
@@ -355,7 +355,8 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
355355

356356
@SerialVersionUID(3L)
357357
final class ofByte(val unsafeArray: Array[Byte]) extends ArraySeq[Byte] {
358-
protected def elemTag = ClassTag.Byte
358+
// Type erases to `ManifestFactory.ByteManifest`, but can't annotate that because it's not accessible
359+
protected def elemTag: ClassTag.Byte.type = ClassTag.Byte
359360
def length: Int = unsafeArray.length
360361
@throws[ArrayIndexOutOfBoundsException]
361362
def apply(i: Int): Byte = unsafeArray(i)
@@ -396,7 +397,8 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
396397

397398
@SerialVersionUID(3L)
398399
final class ofShort(val unsafeArray: Array[Short]) extends ArraySeq[Short] {
399-
protected def elemTag = ClassTag.Short
400+
// Type erases to `ManifestFactory.ShortManifest`, but can't annotate that because it's not accessible
401+
protected def elemTag: ClassTag.Short.type = ClassTag.Short
400402
def length: Int = unsafeArray.length
401403
@throws[ArrayIndexOutOfBoundsException]
402404
def apply(i: Int): Short = unsafeArray(i)
@@ -437,7 +439,8 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
437439

438440
@SerialVersionUID(3L)
439441
final class ofChar(val unsafeArray: Array[Char]) extends ArraySeq[Char] {
440-
protected def elemTag = ClassTag.Char
442+
// Type erases to `ManifestFactory.CharManifest`, but can't annotate that because it's not accessible
443+
protected def elemTag: ClassTag.Char.type = ClassTag.Char
441444
def length: Int = unsafeArray.length
442445
@throws[ArrayIndexOutOfBoundsException]
443446
def apply(i: Int): Char = unsafeArray(i)
@@ -481,7 +484,8 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
481484

482485
@SerialVersionUID(3L)
483486
final class ofInt(val unsafeArray: Array[Int]) extends ArraySeq[Int] {
484-
protected def elemTag = ClassTag.Int
487+
// Type erases to `ManifestFactory.IntManifest`, but can't annotate that because it's not accessible
488+
protected def elemTag: ClassTag.Int.type = ClassTag.Int
485489
def length: Int = unsafeArray.length
486490
@throws[ArrayIndexOutOfBoundsException]
487491
def apply(i: Int): Int = unsafeArray(i)
@@ -522,7 +526,8 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
522526

523527
@SerialVersionUID(3L)
524528
final class ofLong(val unsafeArray: Array[Long]) extends ArraySeq[Long] {
525-
protected def elemTag = ClassTag.Long
529+
// Type erases to `ManifestFactory.LongManifest`, but can't annotate that because it's not accessible
530+
protected def elemTag: ClassTag.Long.type = ClassTag.Long
526531
def length: Int = unsafeArray.length
527532
@throws[ArrayIndexOutOfBoundsException]
528533
def apply(i: Int): Long = unsafeArray(i)
@@ -563,7 +568,8 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
563568

564569
@SerialVersionUID(3L)
565570
final class ofFloat(val unsafeArray: Array[Float]) extends ArraySeq[Float] {
566-
protected def elemTag = ClassTag.Float
571+
// Type erases to `ManifestFactory.FloatManifest`, but can't annotate that because it's not accessible
572+
protected def elemTag: ClassTag.Float.type = ClassTag.Float
567573
def length: Int = unsafeArray.length
568574
@throws[ArrayIndexOutOfBoundsException]
569575
def apply(i: Int): Float = unsafeArray(i)
@@ -597,7 +603,8 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
597603

598604
@SerialVersionUID(3L)
599605
final class ofDouble(val unsafeArray: Array[Double]) extends ArraySeq[Double] {
600-
protected def elemTag = ClassTag.Double
606+
// Type erases to `ManifestFactory.DoubleManifest`, but can't annotate that because it's not accessible
607+
protected def elemTag: ClassTag.Double.type = ClassTag.Double
601608
def length: Int = unsafeArray.length
602609
@throws[ArrayIndexOutOfBoundsException]
603610
def apply(i: Int): Double = unsafeArray(i)
@@ -631,7 +638,8 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
631638

632639
@SerialVersionUID(3L)
633640
final class ofBoolean(val unsafeArray: Array[Boolean]) extends ArraySeq[Boolean] {
634-
protected def elemTag = ClassTag.Boolean
641+
// Type erases to `ManifestFactory.BooleanManifest`, but can't annotate that because it's not accessible
642+
protected def elemTag: ClassTag.Boolean.type = ClassTag.Boolean
635643
def length: Int = unsafeArray.length
636644
@throws[ArrayIndexOutOfBoundsException]
637645
def apply(i: Int): Boolean = unsafeArray(i)
@@ -669,7 +677,8 @@ object ArraySeq extends StrictOptimizedClassTagSeqFactory[ArraySeq] { self =>
669677

670678
@SerialVersionUID(3L)
671679
final class ofUnit(val unsafeArray: Array[Unit]) extends ArraySeq[Unit] {
672-
protected def elemTag = ClassTag.Unit
680+
// Type erases to `ManifestFactory.UnitManifest`, but can't annotate that because it's not accessible
681+
protected def elemTag: ClassTag.Unit.type = ClassTag.Unit
673682
def length: Int = unsafeArray.length
674683
@throws[ArrayIndexOutOfBoundsException]
675684
def apply(i: Int): Unit = unsafeArray(i)

library/src/scala/collection/immutable/BitSet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ sealed abstract class BitSet
4141
override protected def newSpecificBuilder: Builder[Int, BitSet] = bitSetFactory.newBuilder
4242
override def empty: BitSet = bitSetFactory.empty
4343

44-
def bitSetFactory = BitSet
44+
def bitSetFactory: BitSet.type = BitSet
4545

4646
protected[collection] def fromBitMaskNoCopy(elems: Array[Long]): BitSet = BitSet.fromBitMaskNoCopy(elems)
4747

library/src/scala/collection/immutable/HashMap.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2157,7 +2157,7 @@ private final class MapKeyValueTupleHashIterator[K, V](rootNode: MapNode[K, V])
21572157
private[this] var hash = 0
21582158
private[this] var value: V = _
21592159
override def hashCode(): Int = MurmurHash3.tuple2Hash(hash, value.##, MurmurHash3.productSeed)
2160-
def next() = {
2160+
def next(): MapKeyValueTupleHashIterator[K, V] = {
21612161
if (!hasNext)
21622162
throw new NoSuchElementException
21632163

library/src/scala/collection/immutable/HashSet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1837,7 +1837,7 @@ private final class HashCollisionSetNode[A](val originalHash: Int, val hash: Int
18371837
override def hashCode(): Int =
18381838
throw new UnsupportedOperationException("Trie nodes do not support hashing.")
18391839

1840-
override def copy() = new HashCollisionSetNode[A](originalHash, hash, content)
1840+
override def copy(): HashCollisionSetNode[A] = new HashCollisionSetNode[A](originalHash, hash, content)
18411841

18421842
override def concat(that: SetNode[A], shift: Int): SetNode[A] = that match {
18431843
case hc: HashCollisionSetNode[A] =>

library/src/scala/collection/immutable/RedBlackTree.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -864,7 +864,7 @@ private[collection] object RedBlackTree {
864864
}
865865

866866
private[this] class EqualsIterator[A: Ordering, B](tree: Tree[A, B]) extends TreeIterator[A, B, Unit](tree, None) {
867-
override def nextResult(tree: Tree[A, B]) = ???
867+
override def nextResult(tree: Tree[A, B]): Nothing = ???
868868

869869
def sameKeys[X](that:EqualsIterator[A,X]): Boolean = {
870870
var equal = true

library/src/scala/collection/mutable/AnyRefMap.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -592,8 +592,8 @@ object AnyRefMap {
592592

593593
implicit def toBuildFrom[K <: AnyRef, V](factory: AnyRefMap.type): BuildFrom[Any, (K, V), AnyRefMap[K, V]] = ToBuildFrom.asInstanceOf[BuildFrom[Any, (K, V), AnyRefMap[K, V]]]
594594
private[this] object ToBuildFrom extends BuildFrom[Any, (AnyRef, AnyRef), AnyRefMap[AnyRef, AnyRef]] {
595-
def fromSpecific(from: Any)(it: IterableOnce[(AnyRef, AnyRef)]) = AnyRefMap.from(it)
596-
def newBuilder(from: Any) = AnyRefMap.newBuilder[AnyRef, AnyRef]
595+
def fromSpecific(from: Any)(it: IterableOnce[(AnyRef, AnyRef)]): AnyRefMap[AnyRef, AnyRef] = AnyRefMap.from(it)
596+
def newBuilder(from: Any): ReusableBuilder[(AnyRef, AnyRef), AnyRefMap[AnyRef, AnyRef]] = AnyRefMap.newBuilder[AnyRef, AnyRef]
597597
}
598598

599599
implicit def iterableFactory[K <: AnyRef, V]: Factory[(K, V), AnyRefMap[K, V]] = toFactory[K, V](this)

0 commit comments

Comments
 (0)