Skip to content

Commit 43ca97f

Browse files
committed
Add explicit result type to some non-private methods
Add explicit result type to methods where Scala 2 and Scala 3 disagree with the inferred type. The aim is to have the same type in the Scala 2 pickles and the Scala 3 TASTy. These where identified in #17975
1 parent 49835f4 commit 43ca97f

File tree

10 files changed

+27
-27
lines changed

10 files changed

+27
-27
lines changed

library/src/scala/collection/View.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ object View extends IterableFactory[View] {
164164

165165
@SerialVersionUID(3L)
166166
class LeftPartitionMapped[A, A1, A2](underlying: SomeIterableOps[A], f: A => Either[A1, A2]) extends AbstractView[A1] {
167-
def iterator = new AbstractIterator[A1] {
167+
def iterator: AbstractIterator[A1] = new AbstractIterator[A1] {
168168
private[this] val self = underlying.iterator
169169
private[this] var hd: A1 = _
170170
private[this] var hdDefined: Boolean = false
@@ -189,7 +189,7 @@ object View extends IterableFactory[View] {
189189

190190
@SerialVersionUID(3L)
191191
class RightPartitionMapped[A, A1, A2](underlying: SomeIterableOps[A], f: A => Either[A1, A2]) extends AbstractView[A2] {
192-
def iterator = new AbstractIterator[A2] {
192+
def iterator: AbstractIterator[A2] = new AbstractIterator[A2] {
193193
private[this] val self = underlying.iterator
194194
private[this] var hd: A2 = _
195195
private[this] var hdDefined: Boolean = false

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
3333
def next() = underlying.next()
3434
def hasMoreElements = underlying.hasNext
3535
def nextElement() = underlying.next()
36-
override def remove() = throw new UnsupportedOperationException
36+
override def remove(): Nothing = throw new UnsupportedOperationException
3737
override def equals(other: Any): Boolean = other match {
3838
case that: IteratorWrapper[_] => this.underlying == that.underlying
3939
case _ => false
@@ -85,7 +85,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
8585
with StrictOptimizedIterableOps[A, Iterable, Iterable[A]]
8686
with Serializable {
8787
def iterator = underlying.iterator.asScala
88-
override def iterableFactory = mutable.ArrayBuffer
88+
override def iterableFactory: mutable.ArrayBuffer.type = mutable.ArrayBuffer
8989
override def isEmpty: Boolean = !underlying.iterator().hasNext
9090
override def equals(other: Any): Boolean = other match {
9191
case that: JIterableWrapper[_] => this.underlying == that.underlying
@@ -103,7 +103,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
103103
override def size = underlying.size
104104
override def knownSize: Int = if (underlying.isEmpty) 0 else super.knownSize
105105
override def isEmpty = underlying.isEmpty
106-
override def iterableFactory = mutable.ArrayBuffer
106+
override def iterableFactory: mutable.ArrayBuffer.type = mutable.ArrayBuffer
107107
override def equals(other: Any): Boolean = other match {
108108
case that: JCollectionWrapper[_] => this.underlying == that.underlying
109109
case _ => false
@@ -165,7 +165,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
165165
this
166166
}
167167
def remove(from: Int, n: Int): Unit = underlying.subList(from, from+n).clear()
168-
override def iterableFactory = mutable.ArrayBuffer
168+
override def iterableFactory: mutable.ArrayBuffer.type = mutable.ArrayBuffer
169169
override def subtractOne(elem: A): this.type = { underlying.remove(elem.asInstanceOf[AnyRef]); this }
170170
}
171171

@@ -448,7 +448,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
448448

449449
override def isEmpty: Boolean = underlying.isEmpty
450450
override def knownSize: Int = if (underlying.isEmpty) 0 else super.knownSize
451-
override def empty = new JMapWrapper(new ju.HashMap[K, V])
451+
override def empty: JMapWrapper[K, V] = new JMapWrapper(new ju.HashMap[K, V])
452452
}
453453

454454
@SerialVersionUID(3L)
@@ -495,7 +495,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
495495

496496
override def isEmpty: Boolean = underlying.isEmpty
497497
override def knownSize: Int = if (underlying.isEmpty) 0 else super.knownSize
498-
override def empty = new JConcurrentMapWrapper(new juc.ConcurrentHashMap[K, V])
498+
override def empty: JConcurrentMapWrapper[K, V] = new JConcurrentMapWrapper(new juc.ConcurrentHashMap[K, V])
499499

500500
def putIfAbsent(k: K, v: V): Option[V] = Option(underlying.putIfAbsent(k, v))
501501

@@ -581,7 +581,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
581581

582582
override def clear() = iterator.foreach(entry => underlying.remove(entry._1))
583583

584-
override def mapFactory = mutable.HashMap
584+
override def mapFactory: mutable.HashMap.type = mutable.HashMap
585585
}
586586

587587
@SerialVersionUID(3L)
@@ -626,7 +626,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
626626

627627
override def clear() = underlying.clear()
628628

629-
override def empty = new JPropertiesWrapper(new ju.Properties)
629+
override def empty: JPropertiesWrapper = new JPropertiesWrapper(new ju.Properties)
630630

631631
def getProperty(key: String) = underlying.getProperty(key)
632632

@@ -636,7 +636,7 @@ private[collection] object JavaCollectionWrappers extends Serializable {
636636
def setProperty(key: String, value: String) =
637637
underlying.setProperty(key, value)
638638

639-
override def mapFactory = mutable.HashMap
639+
override def mapFactory: mutable.HashMap.type = mutable.HashMap
640640
}
641641

642642
/** Thrown when certain Map operations attempt to put a null value. */

library/src/scala/collection/immutable/TreeSet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ final class TreeSet[A] private[immutable] (private[immutable] val tree: RB.Tree[
4848

4949
def this()(implicit ordering: Ordering[A]) = this(null)(ordering)
5050

51-
override def sortedIterableFactory = TreeSet
51+
override def sortedIterableFactory: TreeSet.type = TreeSet
5252

5353
private[this] def newSetOrSelf(t: RB.Tree[A, Any]) = if(t eq tree) this else new TreeSet[A](t)
5454

library/src/scala/collection/mutable/LinkedHashMap.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ object LinkedHashMap extends MapFactory[LinkedHashMap] {
485485
newlhm
486486
}
487487

488-
def newBuilder[K, V] = new GrowableBuilder(empty[K, V])
488+
def newBuilder[K, V]: GrowableBuilder[(K, V), LinkedHashMap[K, V]] = new GrowableBuilder(empty[K, V])
489489

490490
/** Class for the linked hash map entry, used internally.
491491
*/

library/src/scala/collection/mutable/LinkedHashSet.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ object LinkedHashSet extends IterableFactory[LinkedHashSet] {
323323
newlhs
324324
}
325325

326-
def newBuilder[A] = new GrowableBuilder(empty[A])
326+
def newBuilder[A]: GrowableBuilder[A, LinkedHashSet[A]] = new GrowableBuilder(empty[A])
327327

328328
/** Class for the linked hash set entry, used internally.
329329
*/

library/src/scala/collection/mutable/TreeMap.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ sealed class TreeMap[K, V] private (tree: RB.Tree[K, V])(implicit val ordering:
3838
with SortedMapFactoryDefaults[K, V, TreeMap, Iterable, Map]
3939
with DefaultSerializable {
4040

41-
override def sortedMapFactory = TreeMap
41+
override def sortedMapFactory: TreeMap.type = TreeMap
4242

4343
/**
4444
* Creates an empty `TreeMap`.

library/src/scala/concurrent/duration/Duration.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ final class FiniteDuration(val length: Long, val unit: TimeUnit) extends Duratio
708708
*/
709709
def mul(factor: Long): FiniteDuration = this * factor
710710

711-
def unary_- = Duration(-length, unit)
711+
def unary_- : FiniteDuration = Duration(-length, unit)
712712

713713
final def isFinite = true
714714

library/src/scala/math/BigDecimal.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ extends ScalaNumber with ScalaNumericConversions with Serializable with Ordered[
466466

467467
def isWhole = scale <= 0 || bigDecimal.stripTrailingZeros.scale <= 0
468468

469-
def underlying = bigDecimal
469+
def underlying: java.math.BigDecimal = bigDecimal
470470

471471

472472
/** Compares this BigDecimal with the specified BigDecimal for equality.

library/src/scala/math/Ordering.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ trait Ordering[T] extends Comparator[T] with PartialOrdering[T] with Serializabl
7676
/** Returns whether a comparison between `x` and `y` is defined, and if so
7777
* the result of `compare(x, y)`.
7878
*/
79-
def tryCompare(x: T, y: T) = Some(compare(x, y))
79+
def tryCompare(x: T, y: T): Some[Int] = Some(compare(x, y))
8080

8181
/** Returns an integer whose sign communicates how x compares to y.
8282
*

library/src/scala/sys/process/ProcessBuilderImpl.scala

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ private[process] trait ProcessBuilderImpl {
100100
}
101101

102102
private[scala] abstract class AbstractBuilder extends ProcessBuilder with Sink with Source {
103-
protected def toSource = this
104-
protected def toSink = this
103+
protected def toSource: AbstractBuilder = this
104+
protected def toSink: AbstractBuilder = this
105105

106106
private[this] val defaultStreamCapacity = 4096
107107

@@ -209,11 +209,11 @@ private[process] trait ProcessBuilderImpl {
209209
}
210210

211211
private[process] class URLImpl(url: URL) extends URLBuilder with Source {
212-
protected def toSource = new URLInput(url)
212+
protected def toSource: URLInput = new URLInput(url)
213213
}
214214
private[process] class FileImpl(base: File) extends FileBuilder with Sink with Source {
215-
protected def toSource = new FileInput(base)
216-
protected def toSink = new FileOutput(base, false)
215+
protected def toSource: FileInput = new FileInput(base)
216+
protected def toSink: FileOutput = new FileOutput(base, false)
217217

218218
def #<<(f: File): ProcessBuilder = #<<(new FileInput(f))
219219
def #<<(u: URL): ProcessBuilder = #<<(new URLInput(u))
@@ -248,27 +248,27 @@ private[process] trait ProcessBuilderImpl {
248248
toError: Boolean
249249
) extends SequentialBuilder(first, second, if (toError) "#|!" else "#|") {
250250

251-
override def createProcess(io: ProcessIO) = new PipedProcesses(first, second, io, toError)
251+
override def createProcess(io: ProcessIO): PipedProcesses = new PipedProcesses(first, second, io, toError)
252252
}
253253

254254
private[process] class AndBuilder(
255255
first: ProcessBuilder,
256256
second: ProcessBuilder
257257
) extends SequentialBuilder(first, second, "#&&") {
258-
override def createProcess(io: ProcessIO) = new AndProcess(first, second, io)
258+
override def createProcess(io: ProcessIO): AndProcess = new AndProcess(first, second, io)
259259
}
260260

261261
private[process] class OrBuilder(
262262
first: ProcessBuilder,
263263
second: ProcessBuilder
264264
) extends SequentialBuilder(first, second, "#||") {
265-
override def createProcess(io: ProcessIO) = new OrProcess(first, second, io)
265+
override def createProcess(io: ProcessIO): OrProcess = new OrProcess(first, second, io)
266266
}
267267

268268
private[process] class SequenceBuilder(
269269
first: ProcessBuilder,
270270
second: ProcessBuilder
271271
) extends SequentialBuilder(first, second, "###") {
272-
override def createProcess(io: ProcessIO) = new ProcessSequence(first, second, io)
272+
override def createProcess(io: ProcessIO): ProcessSequence = new ProcessSequence(first, second, io)
273273
}
274274
}

0 commit comments

Comments
 (0)